微信支付时,安卓机调用 jsapi可以支付,IOS就不行,点击立即支付,直接返回原立即支付页面,跟刷新页面差不多,解决方案很简单:两句话而已。
不得不说,微信支付坑太多了,我擦。。。。。
<script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
<asp:Button ID="btnSubmit" runat="server" Text="立即支付" OnClientClick="javascript:callpay();return false;" />
js:
//调用微信JS api 支付
function jsApiCall(){
WeixinJSBridge.invoke(
'getBrandWCPayRequest',<%=wxJsApiParam%>,function (res){
if (res.err_msg == "get_brand_wcpay_request:ok") {
alert("微信支付成功!");
} else if (res.err_msg == "get_brand_wcpay_request:cancel") {
alert("用户取消支付!");
} else {
alert(res.err_msg);
alert("支付失败!");
}
}
);
}
function callpay(){
//WeixinJSBridge.invoke()
if (typeof WeixinJSBridge == "undefined")
{
if (document.addEventListener)
{
document.addEventListener('WeixinJSBridgeReady', jsApiCall, false);
}
else if (document.attachEvent)
{
document.attachEvent('WeixinJSBridgeReady', jsApiCall);
document.attachEvent('onWeixinJSBridgeReady', jsApiCall);
}
}
else
{
jsApiCall();
}
}
html:
<body>
<form id="form2" runat="server" style="text-align:center;">
<img class="logo_g" src="../Templates/vshop/t7/images/logo.png" />
<asp:Button ID="btnSubmit" runat="server" Text="立即支付" OnClientClick="javascript:callpay();return false;" />
</form>
</body>