微信支付:H5吊起支付API,不显示“确认支付、输入密码”界面

使用公众号进行支付,官方开发帮助文档:

https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_1

其业务流程如下:

技术分享

按照业务流程进行开发,依据官方的例子,不能弹出选择支付方式及输入密码,页面js代码如下:

              //调用微信JS api 支付
               function jsApiCall()
               {
                   WeixinJSBridge.invoke(
                   ‘getBrandWCPayRequest‘,
                   <%=wxJsApiParam%>,//josn串
function (res)
{
    WeixinJSBridge.log(res.err_msg);
    alert(res.err_code + res.err_desc + res.err_msg);
 }
);
               }

               function callpay()
               {
                   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();
                   }
js调用是通过服务端button按钮实现,如:
<asp:Button ID="submit" runat="server" Text="立即支付" OnClientClick="callpay()" style="width:210px; height:50px; border-radius: 15px;background-color:#00CD00; border:0px #FE6714 solid; cursor: pointer;  color:white;  font-size:16px;" />

原因分析:
点击submit按钮,页面直接回传了,页面状态已改变,WeixinJSBridge.invoke未能实现异步调用。
解决办法:
方案一:把submit服务端button更换为html客户端button
方案二:修改js代码,防止服务端button回传,增加如下语句window.event.returnValue = false; 
        function jsApiCall()
        {
            try {
                WeixinJSBridge.invoke(
‘getBrandWCPayRequest‘,
<%= WxJsApiParam %> ,
function(res) {
    WeixinJSBridge.log(res.err_msg);
    alert(res.err_code + res.err_desc + res.err_msg);
}
                );
            } catch (e) {
                alert(e);
            }
        }

        function callpay()
        {
            try {
                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();
                }
            } catch (e) {
                alert(e);
            }
            window.event.returnValue = false;
            return false;
        }

效果展示:

技术分享技术分享技术分享技术分享

微信支付:H5吊起支付API,不显示“确认支付、输入密码”界面

原文:http://www.cnblogs.com/zsy/p/5336651.html

以上是微信支付:H5吊起支付API,不显示“确认支付、输入密码”界面的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>