阅读 1294

vue 模式下h5微信支付

微信公众号配置网页授权域名:填写网址域名

微信开发者平台配置url:

访问url:http://www.bc.com/pay/pay
支付授权目录:http://www.bc.com/pay/

访问url:http://www.bc.com/pay
支付授权目录:http://www.bc.com/

访问url:http://www.bc.com/pay/pay?num=2136
支付授权目录:http://www.bc.com/pay/

微信单页面在最好用history模式。

用户同意授权,获取code

请求链接:https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#we-chat_redirect

        weixinPay:function(data){
          var vm= this;
          if (typeof WeixinJSBridge == "undefined"){//微信浏览器内置对象。参考微信官方文档
            if( document.addEventListener ){
              document.addEventListener('WeixinJSBridgeReady', vm.onBridgeReady(data), false);
            }else if (document.attachEvent){
              document.attachEvent('WeixinJSBridgeReady', vm.onBridgeReady(data));
              document.attachEvent('onWeixinJSBridgeReady',vm.onBridgeReady(data));
            }
          }else{
            vm.onBridgeReady(data);
          }
        },
        onBridgeReady:function(data){
          var  vm = this;
          WeixinJSBridge.invoke(
            'getBrandWCPayRequest',{
              debug:true,
              "appId":data.appId,     //公众号名称,由商户传入
              "timeStamp":data.timeStamp, //时间戳,自1970年以来的秒数
              "nonceStr":data.nonceStr, //随机串
              "package":data.package,
              "signType":data.signType, //微信签名方式:
              "paySign":data.paySign, //微信签名
              //这里的信息从后台返回的接口获得。
              jsApiList: [
                'chooseWXPay'
              ]
            },
            function(res){
              // 使用以上方式判断前端返回,微信团队郑重提示:res.err_msg将在用户支付成功后返回ok,但并不保证它绝对可靠。
              if(res.err_msg == "get_brand_wcpay_request:ok" ){
                if(vm.fromRoute == 'personal'){
                  window.location.href = vm.BASE_URL + 'index.html#/depositResult'
                }else {
                  vm.confirmTry();
                }
              }else{
                alert("取消支付!");
              }
            }
          );
        }
        ```复制代码