通过微信扫码,在微信浏览器内打开网页,提交订单并进行微信支付的前端代码
jQuery:
VUE项目:
// 确定支付 pay(msg){ //console.log('用户选择的支付方式===' + msg) var that = this; console.log('用户uid===' + that.uid) console.log('订单号oid===' + that.oid) if(msg[0] == 2){ // that.$vux.loading.show({ // text: '支付跳转中' // }); that.wePay() }else{ that.$vux.toast.text('请选择支付方式', 'middle'); } }, // 微信支付 wePay(){ var that = this; that.$vux.loading.show({ text: '支付跳转中~' }); that.$axios.post('webPay/?oid=' + that.oid + '&price=' + that.price).then(response => { that.msg = response; that.$vux.loading.hide() that.callpay(response.data) }) .catch((error) => { // alert(error) setTimeout(function(){ //that.$vux.loading.hide() that.closePayModal(); that.$vux.toast.show("支付失败 ",'middle'); // that.$router.push({name: 'index'}); },1000) }) }, callpay(data){ var that = this; if (typeof WeixinJSBridge == "undefined"){ if( document.addEventListener ){ document.addEventListener('WeixinJSBridgeReady', that.jsApiCall(data), false); }else if (document.attachEvent){ document.attachEvent('WeixinJSBridgeReady', that.jsApiCall(data)); document.attachEvent('onWeixinJSBridgeReady', that.jsApiCall(data)); } }else{ that.jsApiCall(data); } }, jsApiCall(data){ var that = this; var new_data = JSON.parse(decodeURIComponent(data)); //此处很关键, WeixinJSBridge.invoke( 'getBrandWCPayRequest', new_data, function(res){ if(res.err_msg == "get_brand_wcpay_request:ok" ){ location.href = "{:url('/order_status')}"; // 使用以上方式判断前端返回,微信团队郑重提示: //res.err_msg将在用户支付成功后返回ok,但并不保证它绝对可靠。 }else{ alert("支付失败!"); } } ); }