微信支付V3使用过程中的坑
发表于:2023-05-29 22:31:44浏览:1453次
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
- $platformCertificateFilePath = ‘file://cert/ wechatpay_40C98208FExxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx .pem’; 你的初始化改成生成的证书就行了,
注意:腾讯的文档一直都是很简单需要爬坑,$platformCertificateFilePath 对应的不是下载的证书而是你生成的哪个证书,很多人都卡在了这里,如果使用错了证书就会提示
"The `certs(2F68B0097C6A5EA9F7557F8Dxxxxxxxxxx)` contains the merchant's certificate serial number(2F68B0097C6A5EA9F755xxxxxxxxx) which is not allowed here." 类似这种提示,解决了就搞定了