微信JSAPI支付接口,支付完成后关闭当前窗口

一、把demo里的这一段:

复制代码

success: function (res) {
// 支付成功后的回调函数
if (res.err_msg == "get_brand_wcpay_request:ok") {
alert("微信支付成功!");
} else if (res.err_msg == "get_brand_wcpay_request:cancel") {
alert("用户取消支付!");
} else {
WeixinJSBridge.log(res.err_msg);
alert(res.err_code + res.err_desc + res.err_msg);
// alert(res.err_msg);
// alert("支付失败!");
}

}

复制代码

改成:

复制代码

success: function (res) {
// 支付成功后的回调函数
if (res.errMsg == "chooseWXPay:ok") {

WeixinJSBridge.call('closeWindow');
} else if (res.errMsg == "chooseWXPay:cancel") {

WeixinJSBridge.call('closeWindow');
} else {
WeixinJSBridge.log(res.errMsg);
}
}

复制代码

注意两点:

(1)需要调用WeixinJSBridge.call('closeWindow');才能关闭当前窗口,而不是window.close()

(2)res.err_msg要改成res.errMsg

二、把demo里的这一段:

复制代码

               function callpay()
               {
                   
                   if (typeof (WeixinJSBridge) == "undefined")
                   {
                       if (document.addEventListener)
                       {
                           alert('添加监听1')
                           document.addEventListener('WeixinJSBridgeReady', jsApiCall, false);
                       }
                       else if (document.attachEvent)
                       {
                           alert('添加监听2')
                           document.attachEvent('WeixinJSBridgeReady', jsApiCall);
                           document.attachEvent('onWeixinJSBridgeReady', jsApiCall);
                       }
                   }
                   else
                   {
                       jsApiCall();
                   }
               }

复制代码

改成:

复制代码

function callpay()
               {
                   if (typeof (WeixinJSBridge) == "undefined")
                   {
                       if (document.addEventListener)
                       {
                           alert('添加监听1')
                           document.addEventListener('WeixinJSBridgeReady', function () {
                               jsApiCall();
                           }, false);

                       }
                       else if (document.attachEvent)
                       {
                           alert('添加监听2')
                           document.attachEvent('WeixinJSBridgeReady', function () {
                               jsApiCall();
                           });
                           document.attachEvent('onWeixinJSBridgeReady', function () {
                               jsApiCall();
                           });
                       }
                   }
                   else
                   {
                       jsApiCall();
                   } 
               }

复制代码

最主要就是把jsApiCall()用function包裹起来,要不然执行不到jsApiCall的回调函数,这个跟微信支付的异步回调有关系。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值