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

测试服整个流程都是对的

微信支付V3,nativePay模式支付成功后,回调解析通知密文失败_第1张图片

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

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

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

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

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

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

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

微信支付V3,nativePay模式支付成功后,回调解析通知密文失败_第2张图片

详细: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 证书保存路径 指的是最后生成文件本地保存的路径

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

微信支付V3,nativePay模式支付成功后,回调解析通知密文失败_第3张图片

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

你可能感兴趣的:(微信扫码支付,java)