微信支付: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;
        }

效果展示:

时间: 2025-01-19 23:58:47

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

企业号微信支付 公众号支付 H5调起支付API示例代码 JSSDK C# .NET

先看效果: 1.本文演示的是微信[企业号]的H5页面微信支付 2.本项目基于开源微信框架WeiXinMPSDK开发:https://github.com/JeffreySu/WeiXinMPSDK 感谢作者苏志巍的开源精神 一.准备部分 相关参数: AppId:公众号的唯一标识(登陆微信企业号后台 - 设置 - 账号信息 - CorpID) AppSecret:(微信企业号后台 - 设置 - 权限管理 - 新建一个拥有所有应用权限的普通管理组 - Secret) Key:商户API密钥(登陆微信

SHOPKEE 微信支付,订单状态显示未支付 修复

公众号支付 --> H5调起支付API 1 function onBridgeReady(){ 2 WeixinJSBridge.invoke( 3 'getBrandWCPayRequest', { 4 "appId" : "wx2421b1c4370ec43b", //公众号名称,由商户传入 5 "timeStamp":" 1395712654", //时间戳,自1970年以来的秒数 6 "nonceStr

微信公众号支付H5调用支付详解

最近项目需要微信支付,然后看了下微信公众号支付,,虽然不难,但是细节还是需要注意的,用了大半天时间写了个demo,并且完整的测试了一下支付流程,下面分享一下微信公众号支付的经验. 一.配置公众号微信支付 需要我们配置微信公众号支付地址和测试白名单. 比如:支付JS页面的地址为 http://www.xxx.com/shop/pay/ 那此处配置www.xxx.com/shop/pay/ 二.开发流程 借用微信公众号支付api(地址 http://pay.weixin.qq.com/wiki/do

微信支付-公众号支付H5调用支付详解

微信公众号支付 最近项目需要微信支付,然后看了下微信公众号支付,,虽然不难,但是细节还是需要注意的,用了大半天时间写了个demo,并且完整的测试了一下支付流程,下面分享一下微信公众号支付的经验. 一.配置公众号微信支付 需要我们配置微信公众号支付地址和测试白名单. 比如:支付JS页面的地址为 http://www.xxx.com/shop/pay/ 那此处配置www.xxx.com/shop/pay/ 二.开发流程 借用微信公众号支付api(地址 http://pay.weixin.qq.com

微信支付开发(1) JS API支付

关键字:微信支付 微信支付v3 jsapi支付 统一支付 Native支付 prepay_id 作者:方倍工作室 原文: http://blog.csdn.net/pondbay/article/details/40536677 本文介绍微信支付下的jsapi实现流程 前言 微信支付现在分为v2版和v3版,2014年9月10号之前申请的为v2版,之后申请的为v3版.V3版的微信支付没有paySignKey参数.v2的相关介绍请参考方倍工作室的其他文章.本文介绍的微信支付v3. 流程实现 1. O

vue 微信内H5调起支付

在微信内H5调起微信支付,主要依赖于一个微信的内置对象WeixinJSBridge,这个对象在其他浏览器中无效. 主要代码: import axios from 'axios'; export default { methods:{ wxpay() { axios.post(url,data) .then((res) => { if(res.code == 200) { const pay_params = res.data.jsApiParameters if (typeof WeixinJS

基于微信的SDK的学习与使用——实现产品支付(一)

声明本篇博客为作者原创,本篇是继支付宝支付之后本人又学习的第二种支付实现,本篇着重于原理与注意事项的学习. 参考  参考 微信支付的开发文档相比支付宝的比较简单,但是使用功能丝毫也不含糊,我觉得简单易读的文档是吸引开发者做出喜好选择的第一步.但是个人觉得,微信支付与支付宝的支付的实现思路大致雷同,并不能说是微信另开思路进行支付创新. 微信支付的官方文档中提供了扫码支付.公众号支付.App支付支付模式.开发者要实现用微信支付的功能,需要商户向微信官方申请微信支付权限,商户获得权限后,将支付账户信息

H5拉起云闪付免签支付源码云闪付11点后收款源码

最新xposed Hook云闪付研究成果: 2019-12-24日更新:最新支持云闪付H5支付,使用手机浏览器打开(测试地址),生码后点击H5唤起云闪付进行支付,无需扫码. 2019-12-23日更新:最近11点后云闪付无法生码,解决办法:最新支持云闪付静态码支付回调监听,让云闪付24小时都可收款(静态码回调测试地址) 2019-12-14日更新:云闪付的xposed程序之前用的是6.18的版本,前段时间突然不能用了,提示要升级到最新的7.0版本.之前这个云闪付的个人免签支付程序一直跑的挺好,云

微信:微信扫码支付、调用统一下单接口、网站支付 + springmvc

一.场景:公司需要在网站上进行微信支付. 二.API:使用微信开放平台的接入微信支付 -扫码支付.微信支付开发者平台链接 三.分析: 接入扫码支付(包含PC网站支付)包含三个阶段,问这里只讲使用,也就是第2阶段的<启动设计和开发>. 点击查看开发者文档(扫码支付)后,这里感觉微信的文档没有支付宝好理解(稍微吐槽下~~~),不过我们忽略一切,直接进入模式二:模式二最简单直接,不需要在商户后台进行配置,推荐大家使用,微信也说流程更为简单,我这里也讲的是模式二,模式一大家有兴趣可以自行研究下. 如上