用vue开发项目,微信支付成功后页面不跳转

AaronYuan
  • 1.5k
   getWxPayData(){
        this.OrderShow = true;
        var vm = this;
        let postData = this.$qs.stringify({
            type:100
        })

        this.$axios({
            method: 'post',
            url:httpUrl.wxPay,
            data:postData,
            headers: {
                'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
            },
        }).then((res)=>{
            vm.weixinPay(res.data);
        });
    },
    weixinPay(data){
        var vm= this;
        if (typeof WeixinJSBridge == "undefined"){//微信浏览器内置对象。参考微信官方文档
            if( document.addEventListener ){
                document.addEventListener('WeixinJSBridgeReady', vm.onBridgeReady(data), false);
            }else if (document.attachEvent){
                document.attachEvent('WeixinJSBridgeReady', vm.onBridgeReady(data));
                document.attachEvent('onWeixinJSBridgeReady',vm.onBridgeReady(data));
            }
        }else{
            vm.onBridgeReady(data);
        }
    },
    onBridgeReady:function(data) {
        const vm = this;
        WeixinJSBridge.invoke(
            'getBrandWCPayRequest', {
                "appId": data.appId,     //公众号名称,由商户传入
                "timeStamp": data.timeStamp, //时间戳,自1970年以来的秒数
                "nonceStr": data.nonceStr, //随机串
                "package": data.package,
                "signType": data.signType, //微信签名方式:
                "paySign": data.paySign //微信签名
            },
            function (res) {
                alert("1:"+res.err_msg);
                alert("2:"+res.err_msg+"=get_brand_wcpay_request:ok");
                // 使用以上方式判断前端返回,微信团队郑重提示:res.err_msg将在用户支付成功后返回ok,但并不保证它绝对可靠。
                if (res.err_msg == "get_brand_wcpay_request:ok") {
                    alert("3:"+"get_brand_wcpay_request:ok");
                    vm.$router.push('/sign_ht');
                } else if (res.err_msg == "get_brand_wcpay_request:fail") {
                    this.$router.push({
                        path:'/wxpay_result',
                        query: {
                            err_msg:res.err_msg
                        }
                    });
                }else {
                    vm.$router.push('/activity_detail');
                }
            }
        );
    }

弹出三个alert,但是手机上值弹出alert("1:"+res.err_msg);
后面两个都没有弹出。。。。。

回复
阅读 5.6k
4 个回答
halflifewfr
  • 2
新手上路,请多包涵

function (res) 修改为 (res) =>
应该是 function 影响的 this 的问题,使用箭头函数就可以了。

燳唲
  • 1
新手上路,请多包涵

我也遇到同样的问题,求大神解答,我是在ionic环境下~

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏