公众号微信支付,且报“当前url未注册”的问题解决办法

先对接后台给的接口,拿到微信支付所需要的参数,再执行下列的函数

jsApiCall(appId, timeStamp, nonceStr, wxpackage, signType, paySign, successFun, errorFun) {
        WeixinJSBridge.invoke(
            'getBrandWCPayRequest', {
            "debug": true,
            "appId": appId, //公众号名称,由商户传入
            "timeStamp": timeStamp, //时间戳,自1970年以来的秒数
            "nonceStr": nonceStr, //随机串
            "package": wxpackage,
            "signType": signType, //微信签名方式:
            "paySign": paySign //微信签名
        },
            function (res) {
                //alert(JSON.stringify(res));
                WeixinJSBridge.log(res.err_msg);
                if (res.err_msg == 'get_brand_wcpay_request:ok') {
                    successFun();
                } else {
                    errorFun();
                }
            }
        );
    }

successFun是支付成功的回调函数
errorFun是支付失败的回调函数

遇到问题:vue项目微信支付报“当前url未注册”的问题
因为vue单页面项目会在url中加#号,会导致我们配置的支付根目录与实际目录不符
比如配置的支付根目录是:http://www.xx.com/
当我们要支付的时候页面地址可能是:http://www.xx.com/#/pay,这样就会报这个错误。
解决方法:将‘#’替换成‘?#’

if (window.location.href.indexOf("?#") < 0) {
      window.location.href = window.location.href.replace("#", "?#");
    }

你可能感兴趣的:(公众号微信支付,且报“当前url未注册”的问题解决办法)