WeixinJSBridge.invoke(
'getBrandWCPayRequest',
{${result}},//josn串
function (res)
{
if(res.err_msg == "get_brand_wcpay_request:ok"){
location.href="/pay/pay/wxpay?action=h5pay&out_trade_no=${code}";
}
else if(res.err_msg == "get_brand_wcpay_request:cancel"){
alert('支付取消'+res.err_msg);
}
else{
alert("支付未成功!"+res.err_msg+res.err_desc );
}
}
);
在微信公众号中打开页面,页面加载完成后我们就会调用该方法进行支付处理,按照预期,该方法会调起微信支付。
微信支付完成后应进行回调进入js回调方法,res.err_msg 应为:get_brand_wcpay_request:ok或get_brand_wcpay_request:cancel
但是在实际使用中发现会出现页面加载完成未调起微信支付时即调用回调方法 ,回调参数值为
{'err_msg':'pre_verify_jsapi:ok'}
之后能正常弹出支付密码窗口,完成支付后不能正常触发回调方法。
微信支付版本为V2
发现问题的微信app版本为:version 8.0.16
function onBridgeReady(){ WeixinJSBridge.invoke( 'getBrandWCPayRequest', { "appId":"wx2421b1c4370ec43b", //公众号ID,由商户传入 "timeStamp":"1395712654", //时间戳,自1970年以来的秒数 "nonceStr":"e61463f8efa94090b1f366cccfbbb444", //随机串 "package":"prepay_id=u802345jgfjsdfgsdg888", "signType":"MD5", //微信签名方式: "paySign":"70EA570631E4BB79628FBCA90534C63FF7FADD89" //微信签名 }, function(res){ if(res.err_msg == "get_brand_wcpay_request:ok" ){ // 使用以上方式判断前端返回,微信团队郑重提示: //res.err_msg将在用户支付成功后返回ok,但并不保证它绝对可靠。 } }); } 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{ onBridgeReady(); }
https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_7&index=6
代码比对比对看看,是不是漏了注册 `WeixinJSBridgeReady` Listenner
我也遇到了,请问有解决方案吗