參數問題
安全目錄問題
微信支付具體的代碼參考官方文檔,可是在使用的時候仍是碰見一個坑。小程序
WeixinJSBridge.invoke('getBrandWCPayRequest', payload, function (res) { });
wx.chooseWXPay(payload);
使用寫法二的時候不能成功喚起支付,調試的時候發現timeStamp
是undefined
,跟蹤發現以下問題:
server給的payload
格式以下:安全
nonceStr: "***" package: "prepay_id=***" paySign: "***" signType: "MD5" timeStamp: "***"
須要注意的位置是timeStamp
,看文檔須要的鍵名是timeStamp
,可是實際在jssdk中經過f(a)
方法的調用時是經過timestamp
獲取的微信
chooseWXPay: function(a) { c(p.chooseWXPay, f(a), a) }
function f(a) { return { timeStamp: a.timestamp + "", nonceStr: a.nonceStr, "package": a["package"], paySign: a.paySign, signType: a.signType || "SHA1" } }
server給定timestamp,fe手動添加timestamp
err_msg
errMsg
spa單頁url中新增了其它參數,再繼續支付會出現報錯 「access_denied」app
開始調試的時候把 debug: true
不少錯誤信息真機調試會彈出來,調試起來方便一些。 {errMsg: chooseWXPay:fail}
須要配置一下安全目錄。
多個商戶號的狀況下,必定要找到對應的公衆號來配置目錄。學習
服務號已經有了,直接關聯的小程序的APPID,這些地方都不會引發問題。關聯之後也會生成一個商戶號,開發的時候仍是使用主商戶號就好了。易錯點:簽名時key不是appSecret,這點錯了會致使「簽名驗證失敗」。微信支付