微信公衆號支付簽名驗證錯誤chooseWXPay:fail

最近用nodejs開發微信公衆號支付功能後臺,明明後臺已經簽名校驗成功了(簽名相關可參照我的上一篇文章),支付的prepay_id都已經拿到了,但是返回給H5,H5調起微信支付面板時一直報chooseWXPay:fail,關鍵是android機閃了下支付面板,然後就沒了,連個錯誤彈框都沒,而ios就彈支付簽名驗證失敗,搞了我大半天,才搞定。

通過微信https://api.mch.weixin.qq.com/pay/unifiedorder接口成功返回prepay_id, nonce_str, sign 等參數,然後將這些參數返回給H5,h5調微信支付接口,然後就一直報支付簽名驗證失敗了。

1.我的問題是,微信接口返回的 簽名(sign) 不能直接給h5,需要再次簽名!!!!https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_7&index=6


h5調起微信支付參數

再次簽名:paySign=MD5(appId=${appid}&nonceStr=${nonceStr}&package=prepay_id=${prepay_id}&signType=MD5&timeStamp=${timeStamp}&key=${key}).toString().toUpperCase();   得到簽名paySign連同timeStamp,appid,nonceStr一併返回給H5,

需要注意的是:再次簽名中的時間戳是秒,timeStamp中的S是大寫,而H5請求支付時timestamp中的s是小寫

2.當然,有些人時因爲支付授權目錄配置錯誤,需要檢查h5支付授權目錄是否正確,網上很多說是要配置到二級或三級目錄,但發現它們的開發配置文檔是之前的,8月1號後支付都移到微信支付平臺了,而且官方也沒提示要配置到二級或三級了,估計這個也坑了很多人,我這邊情況就配置了審覈過的域名,這個應該要根據項目而定。這塊我沒遇到問題就不寫,怕寫得不對就埋坑了。


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