官方的demo有不少小问题导致支付成功后,依然留在支付页面,而且很奇怪,getBrandWCPayRequest方法的回调根本就不进去。
一直以为是自己的问题,后来在发现是demo的问题。
找到了文档解决方法
文章列出来了一下几点
1 除了上面说到的引用<script src=”http://res.wx.qq.com/open/js/jweixin-1.0.0.js”></script>以外
登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名” “res.wx.qq.com”
(这一项我没有测试是不是必须)
2(必须)JsApiPayPage.aspx页面JS错误写法
if (typeof WeixinJSBridge == “undefined”) 改成
if (typeof(‘WeixinJSBridge’) == “undefined”)
3(必须)还是JsApiPayPage.aspx页面Button的OnClientClick事件
OnClientClick=”callpay()”改成
OnClientClick=”javascript:callpay();return false;”
但我发现第一点不需要,也就是不需要添加js文件jweixin-1.0.0.js
另外在支付成功后添加一下代码就可以关闭交易页面
WeixinJSBridge.invoke('closeWindow', {}, function (res) { });
function (res) { if (res.err_msg =="get_brand_wcpay_request:ok") { // alert("支付成功err_code=" + res.err_code + ",err_desc=" + res.err_desc + ",err_msg=" + res.err_msg); WeixinJSBridge.invoke('closeWindow', {}, function (res) { }); } else if (res.err_msg == "get_brand_wcpay_request:cancel") { // alert("用户取消err_code=" + res.err_code + ",err_desc=" + res.err_desc + ",err_msg=" + res.err_msg); } else { alert(" 支付失败err_code=" + res.err_code + ",err_desc=" + res.err_desc + ",err_msg=" + res.err_msg); } }
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/5288.html