微信公衆號支付javascript
使用的vuex,在mutations中html
wechatPay (state, data) { state.payObject = data console.log('微信支付開始請求') if (wechat) { wx.chooseWXPay({ timestamp: state.payObject.timeStamp, // 支付簽名時間戳 nonceStr: state.payObject.nonceStr, // 支付簽名隨機串,不長於 32 位 package: state.payObject.package, // 統一支付接口返回的prepay_id參數值 signType: state.payObject.signType, // 簽名方式使用新版支付需傳入'MD5' paySign: state.payObject.paySign, // 支付簽名 success: function (res) { alert('成功') alert(JSON.stringify(res)) }, cancel: function (res) { alert('已取消支付') alert(JSON.stringify(res)) }, fail: function (res) { alert(JSON.stringify(res)) } }) } }
在支付頁面中commit前端
// 存儲微信支付數據data let data = res.body.data console.log('即將跳轉微信支付') this.$store.commit({ timeStamp: data.timeStamp, nonceStr: data.nonceStr, type: 'wechatPay', package: data.package, signType: data.signType, paySign: data.paySign })
這是由於不能在在微信開發者工具上測試,須要真機測試
須要配置正確的支付受權目錄,vue的單頁應用直接配置爲域名就行。 例如訪問頁面爲https://abc.123.com/app-test/index.html#/a/b 微信支付的受權目錄設置爲https://abc.123.com/便可 其餘須要配置爲調用支付的上一級目錄,以/結束
須要後臺看一下openId配置