前言
以前調微信支付,直接把demo粘過來改改,或者從老項目粘過來,這次接手一個一年之前的項目,說微信支付沒調通,好吧,我就調吧
正文
1:之前的body寫的是中文,改成英文
結果:失敗(不過這一步很必要)
2:傳遞的xml編碼換為UTF-8
結果:失敗(編碼應該為 ISO8859-1 )
3.前面不行,就去微信官方簽名方式測試 https://pay.weixin.qq.com/wiki/tools/signverify/
結果:微信說我沒有錯,但就是運行的時候失敗(可以自己驗證一下,如果失敗就說明簽名算法錯誤)
4.沒辦法了,就去找人要微信支付商戶的賬號和密碼,然后對比了appId,對比了商戶id,重新設置了商戶key
結果:還是不行(這一步整了tm一天)
5.最后搜了幾篇論壇,從頭看到尾,方法都試了,也不能用,點開了一篇推薦鏈接,說xml拼接的順序也能影響結果(mmp)
https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=9_1# 微信支付的參數頁面
5.1按照上面頁面里的給參數的順序進行排序
結果:還是不行
5.2然后往下扒拉扒拉,發現有一個這個
然后我備份了一下之前的排序方式,按照這個來,多余的刪,少的加,順序一模一樣
結果:成功了(竟然tmd成功了,wc就因為這個排序..........)
結論
騰訊跟阿里單就技術態度這一點差的不是一點半點
微信掃碼支付:https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_5
微信簽約支付:https://pay.weixin.qq.com/wiki/doc/api/pap.php?chapter=18_13&index=5
支付寶掃碼支付:https://docs.open.alipay.com/270
支付寶簽約支付:https://docs.alipay.com/pre-open/20170601105911096277/cmgtz2