微信jsapi支付失败 当前页面的URL未注册

问题描述:已经设置了jsapi支付授权目录,微信jsapi支付失败 当前页面的URL未注册,增加 history.pushState(null,null,"/weixin/"); 解决问题

如图:借的图,实际设置的是 http://www.xxxx.com/weixin/

https://img4.sycdn.imooc.com/5c8f524a00017b1f06140179.jpg

支付提示:

未改之前:

    <script src='<?=SITE_URL?>/js/jquery.min.js'></script>
    <script type="text/javascript">
        //调用微信JS api 支付
        function jsApiCall() {
            WeixinJSBridge.invoke(
                'getBrandWCPayRequest',
                <?=$jsApiParameters; ?>,
                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();
            }
        }
    </script>

 

修改之后:

    <title>微信获取</title>
    <script src='<?=SITE_URL?>/js/jquery.min.js'></script>
    <script type="text/javascript">
        history.pushState(null,null,"/weixin/");//解决设置了支付目录还提示url未注册
        //调用微信JS api 支付
        function jsApiCall() {
            WeixinJSBridge.invoke(
                'getBrandWCPayRequest',
                <?=$jsApiParameters; ?>,
                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();
            }
        }
    </script>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 微信JSAPI支付是一种使用微信内置浏览器或微信客户端内的网页进行支付的方式。流程如下: 1. 用户在商户的网站或应用内点击支付按钮,触发支付请求。 2. 商户服务器收到支付请求后,向微信支付服务器发起下单请求,并将支付信息传递给微信支付服务器。 3. 微信支付服务器收到下单请求后,会根据商户提交的信息生成支付二维码或支付链接。 4. 商户服务器收到微信支付服务器的响应后,将支付二维码或支付链接发送给用户浏览器。 5. 用户浏览器打开支付二维码或支付链接,跳转到微信内置浏览器或微信客户端进行支付。 6. 用户在微信内置浏览器或微信客户端内输入支付密码或通过其他认证方式进行支付。 7. 微信支付服务器收到用户的支付信息后,会向商户服务器发送支付通知。 8. 商户服务器收到支付通知后,会对订单进行处理,并向用户 ### 回答2: 微信JSAPI支付是指通过微信公众号或小程序内的网页调用微信支付接口实现支付功能的流程。 1. 用户点击支付按钮后,公众号或小程序调用微信支付接口向微信服务器发起支付请求。 2. 微信服务器返回预支付交易会话标识prepay\_id给公众号或小程序。 3. 公众号或小程序将prepay\_id和其他支付参数通过JSAPI方式传递给前端页面。 4. 前端页面通过微信JSAPI提供的支付接口,调用微信客户端进行支付。 5. 用户在微信客户端确认支付后,微信服务器会将支付结果通知给公众号或小程序服务器。 6. 公众号或小程序服务器接收到支付结果通知后,进行订单处理,更新订单状态。 7. 公众号或小程序服务器向微信服务器返回处理结果,微信服务器会将处理结果通知给微信客户端。 8. 微信客户端收到支付结果通知后,提示支付成功或失败,并跳转至指定页面。 整个过程中,涉及到的主要步骤有:发起支付请求、获取预支付交易会话标识、传递参数给前端、调用微信客户端支付、接收支付结果通知、处理订单、返回处理结果给微信服务器、微信客户端显示支付结果。 微信JSAPI支付能够为公众号或小程序提供方便、安全的支付体验,使用户能够快速完成支付操作,同时也提供了支付结果的即时通知和订单处理的接口,方便商户进行后续操作。 ### 回答3: 微信JSAPI支付流程是指通过微信公众号或小程序内页面上的网页进行支付的流程。具体流程如下: 1. 用户在微信公众号或小程序内选择商品并确认下单。 2. 商户服务器将订单信息提交给微信服务器,包括商品描述、订单号、金额等信息,并生成预支付交易会话标识prepay_id。 3. 商户服务器将prepay_id返回给前端页面。 4. 前端页面调用微信JSAPI支付接口,传入prepay_id以及其他支付相关参数(如时间戳、随机字符串等)。 5. 微信服务器校验参数,并生成支付签名。 6. 微信服务器将支付签名返回给前端页面。 7. 前端页面调用微信JSAPI支付接口,传入支付签名以及其他支付相关参数。 8. 用户在微信客户端确认支付并输入支付密码。 9. 微信服务器接收支付结果,并返回给商户服务器。 10. 商户服务器校验支付结果,更新订单状态,并返回相应的支付结果给用户。 需要注意的是,为了确保支付的安全性,商户服务器需要对支付结果进行校验,并对订单状态进行更新,以防止重复支付支付金额被修改等情况的发生。 以上就是微信JSAPI支付的主要流程。微信JSAPI支付相对于其他支付方式来说,使用便捷,支持在微信内进行快速支付,适用于微信公众号和小程序等场景。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值