微信支付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 證書保存路徑 指的是最後生成文件本地保存的路徑

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

這樣就能獲取到平臺序列號了,回調解密也沒有問題了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章