接入微信支付接口api v3的踩坑

文章讲述了作者在系统接入微信商家转账功能时遇到的问题,包括微信关闭了企业付款到零钱接口,改为商家转账到零钱,以及在处理微信SDK签名和证书下载时遇到的复杂性。作者比较了微信与支付宝SDK的开发者体验,并提供了下载微信支付证书的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

系统要接入一个从商户向用户转帐的功能,原本是企业付款到零钱,但是微信近来关了这个接口,只能接入商家转账到零钱,真是不知道这两个有什么区别,也可能是微信甩锅的一贯套路,把自己的风险排除干净,有风险都是用户的责任。
接口不外乎都是post或get一个url,自己写也可以,但是微信的签名策略真是个大坑,摸索了一天愣是签名不对,最终还是放弃了。
用了微信的sdk,最好用composer下载sdk,sdk因为引用了太多的第三方库,一个一个的下载绝对会吐血。之前用到的另外一个这样的sdk的公司是京东,真是有异曲同工之妙。
忍不住又要吐槽一下,好好的国内企业,sdk遍地英文注释,难道这些不是中国人开发的?还发布到github上,难道不知道国内有时候会墙。这点真是没法和支付宝比,在我一个开发者来说,支付宝可能是会站在开发者的立场开发sdk,开发者能轻松上手。微信估计是怕国人用的太多,所以把sdk搞得变态一点

打开sdk的gitbub地址,这会我这打不开了,截一个自己项目的图片
在这里插入图片描述
platformCertificateFilePath是微信的支付证书,不是商户的证书,要用另外一个地址下载,下载方法放到文章最后
platformCertificateFilePath是微信的支付证书,不是商户的证书,要用另外一个地址下载,下载方法放到文章最后
platformCertificateFilePath是微信的支付证书,不是商户的证书,要用另外一个地址下载,下载方法放到文章最后
这里折腾了好久,如果使用商户的apiclient_cert.pem会报错,The certs(xxxxx) contains the merchant‘s certificate serial number(xxxxxxx) which is not allowed here.
在这里插入图片描述
其他按照github的sdkdemo填写就行了。

下载微信支付证书
在sdk文件夹中bin目录下有一个CertificateDownloader.php和README.md。
在这里插入图片描述
按照参数说明,在终端运行

php ./bin/CertificateDownloader.php -k ${apiV3key} -m ${mchId} -f ${mchPrivateKeyFilePath} -s ${mchSerialNo} -o ${outputFilePath}

会输出证书内容,也会存储到outputFilePath指定的目录

另外需要注意,merchantPrivateKeyFilePath和platformCertificateFilePath这两个参数值如果是证书文件一定要以file://开头+证书完整路径,或者用-----BEGIN CERTIFICATE-----开头的证书内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值