badroot 2019-06-28
在微信内H5调起微信支付,主要依赖于一个微信的内置对象WeixinJSBridge,这个对象在其他浏览器中无效。
主要代码:
import axios from 'axios'; export default { methods:{ wxpay() { axios.post(url,data) .then((res) => { if(res.code == 200) { const pay_params = res.data.jsApiParameters if (typeof WeixinJSBridge == "undefined"){ if( document.addEventListener ){ document.addEventListener('WeixinJSBridgeReady', onBridgeReady, false); }else if (document.attachEvent){ document.attachEvent('WeixinJSBridgeReady', onBridgeReady); document.attachEvent('onWeixinJSBridgeReady', onBridgeReady); } }else{ this.onBridgeReady(pay_params); } }else{ alert('微信支付调起失败!'); } }).catch((err) => { console.log(err); }) }, onBridgeReady(params) { const pay_params = JSON.parse(params); WeixinJSBridge.invoke( 'getBrandWCPayRequest', { "appId": pay_params.appId, //公众号名称,由商户传入 "timeStamp": pay_params.timeStamp, //时间戳,自1970年以来的秒数 "nonceStr": pay_params.nonceStr, //随机串 "package": pay_params.package, "signType": pay_params.signType, //微信签名方式: "paySign": pay_params.paySign //微信签名 }, function(res){ if(res.err_msg == "get_brand_wcpay_request:ok" ){ alert('支付成功!'); } }); }, } }
以上就是微信内H5调起支付的方法~