微信支付V3,nativePay模式支付成功后,回调解析通知密文失败

测试服整个流程都是对的

任何东西没改,放上正式服,就有问题了

支付完成后,微信回调过来的serialNo和解析出来的平台证书序列号一直不一样,导致解析加密串失败,没法判断是哪个产品支付成功。

最终找到这个https://developers.weixin.qq.com/community/develop/doc/000e4a0d5dc1486acc19c6fd15bc00?_at=1569021781371 解决了问题

调用微信统一支付V3接口 需要这几个参数

mchId  商户Id     
serialNo  商户API 证书序列号
platSerialNo  平台序列号
keyPath  apiclient_key.pem 证书路径

最容易混淆的就是商户API 证书序列号平台序列号

商户 API 证书序列号(微信支付平台上面的)

详细:https://blog.csdn.net/qq_31708763/article/details/103382529

平台序列号(这个东西需要去https://github.com/wechatpay-apiv3/CertificateDownloader/releases这里下载)

下载后是个CertificateDownloader-1.1.jar 然后直接cmd 运行这个jar包 后面拼上参数

执行:“java -jar CertificateDownloader-1.1.jar -f 商户私钥文件路径 -k 证书解密的密钥 -m 商户号 -o 证书保存路径 -s 商户证书序列号”就行了。

例:java -jar CertificateDownloader-1.1.jar -f E:\\wxzhengshu\\WXCertUtil\\cert\\1605643458_20210121_cert\\apiclient_key.pem -k xxxx -m xxxx -o E:\\wxzhengshu\\WXCertUtil\\cert\\1605643458_20210121_cert -s xxxxx
这条命令的参数搞清楚3点:“商户私钥文件路径”是账号中心->API安全->API证书中设置并下载的证书(就是其中的apiclient_key.pem,下载还会获得apiclient_cert.pem,我之前把这个当做支付证书了,其实不是,apiclient_cert.pem这用不着),“商户证书序列号”这个东西也是设置API证书那里知道;“证书解密的密钥”在账号中心->API安全->APIv3密钥中设置的(注意api密钥和apiv3密钥是2个东西)。
执行完了是个类似wechatpay_250393205B4A9CC12900B44B65E04B9751CE95.pem的文件。o 证书保存路径 指的是最后生成文件本地保存的路径

最后生成后的文件放到服务器上,用微信提供的方法

这样就能获取到平台序列号了,回调解密也没有问题了

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值