您的当前位置:首页>全部文章>文章详情

微信支付V3使用过程中的坑

发表于:2023-05-29 22:31:44浏览:668次TAG: #微信支付V3
Cannot load privateKey from(string), please take care about the \$thing input.
出现这个错误说明你的证书的路径使用的是不对的,正确的是用路径是 file://***.pem 例如   $merchantPrivateKeyFilePath = 'file://cert/apiclient_key.pem';  只需要把证书的路径替换就好了

证书序列号 别搞错了,证书序列号使用的是点开API证书列表出现的哪个40个字节序列号别搞错了
最坑的就是那的 【// 从本地文件中加载「微信支付平台证书」,用来验证微信支付应答的签名】 官方说的,这个证书不是征程的pem是通过key 生成的 生成的教程是

1.使用composer 下载扩展 composer require wechatpay/wechatpay

2.composer exec -l 使用命令行查看是否有 - CertificateDownloader.php 如果没有就是不成功

3.执行成功的命令

php -f vendor/bin/CertificateDownloader.php -- -k 你的apiV3key的内容  -m 你的商户号 -f 你的apiclient_key.pem的路径 -s  你的证书序列号  -o 你的证书输出目录

4.如果没有错误在你的输入目录就可以看到证书 wechatpay_40C98208FExxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.pem

  1. $platformCertificateFilePath = ‘file://cert/ wechatpay_40C98208FExxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx .pem’; 你的初始化改成生成的证书就行了,

注意:腾讯的文档一直都是很简单需要爬坑,$platformCertificateFilePath 对应的不是下载的证书而是你生成的哪个证书,很多人都卡在了这里,如果使用错了证书就会提示

"The `certs(2F68B0097C6A5EA9F7557F8Dxxxxxxxxxx)` contains the merchant's certificate serial     number(2F68B0097C6A5EA9F755xxxxxxxxx) which is not allowed here." 类似这种提示,解决了就搞定了