官方sdk地址:https://github.com/wechatpay-apiv3/wechatpay-php
记录踩坑点:
1.三种微信支付证书文件
a.key.pem 私钥证书
b cert.pem 平台证书
c plat.pem 商户api证书 公钥文件。这个需要生成。

上图分别对应 平台证书 和私钥证书
2.plat.pem 生成脚本路径

如上图所示,需要按readme的要求填写对应的参数。生成证书
注意:
生成证书文件的时候需要把对应的序列号保留。这个序列号与支付证书的序列号不同。签名需要用到。
3.微信支付接入踩坑点
a.需要先开启fileinfo扩展支持
网上有教程 在php7的安装包源文件中找到fileinfo 然后phpize config链接 make makeinstall等等。
b.需要把php的禁用函数移除proc_open proc_process_status(貌似是这个名字)
然后就可以 composer require wechatpay/wechatpay
命令执行后调试环境就ok了
c.官方sdk有缺失一个重要的环节
instance的定义和初始化
d.加载证书路径 的坑
路径前面一定要加上file:// 否则RSA无法加载秘钥文件,例如同样一个证书文件,得这么写
5.调起支付 签名参数

这四个参数缺一不可
6.回调处理踩坑
回调header拿到的参数如下所示,不是sdk写的那些
wechatpay-signature
wechatpay-timestamp
wechatpay-serial
wechatpay-nonce
请求体解密后的参数如下所示 已经转数组格式了
array (
'mchid' => '1626702297',
'appid' => 'wx4a0c941f2ba2cdb1',
'out_trade_no' => 'MM_946171661694606067',
'transaction_id' => '4200001589202208288083217709',
'trade_type' => 'JSAPI',
'trade_state' => 'SUCCESS',
'trade_state_desc' => '支付成功',
'bank_type' => 'OTHERS',
'attach' => '',
'success_time' => '2022-08-28T21:50:15+08:00',
'payer' =>
array (
'openid' => 'o48dj5CgPxY6zZ63GgEa-cDHs7Yk',
),
'amount' =>
array (
'total' => 10,
'payer_total' => 10,
'currency' => 'CNY',
'payer_currency' => 'CNY',
),
)作者:李世民 创建时间:2022-11-05 20:19
最后编辑:李世民 更新时间:2022-11-05 20:19
最后编辑:李世民 更新时间:2022-11-05 20:19