微信支付

    this.$axios({
          method: "post",
          url: "/mobile/order/submit",
          params: {
            goods: this.good_list,
            addr_id: this.address.id,
            remark: this.remark,
            pay_type: this.radio,
            send_time: this.date
          }
        })
          .then(res => {//提交成功后需要后台返回appId,timeStamp,nonceStr,package,paySign五个参数我的在res.data里
                  this.obj_data = res.data;
                  this.wxPay(this.obj_data);
                })
                .catch(err => {});
 wxPay(obj_data) {
      //需要先判断是否是微信浏览器,并且微信内置包是否加载完成
      //有时会出现当触发事件的时候微信内置包还未加载完成,必须加上下面判断
      if (typeof WeixinJSBridge == "undefined") {
        if (document.addEventListener) {
          document.addEventListener(
            "WeixinJSBridgeReady",
            onBridgeReady,
            false
          );
        } else if (document.attachEvent) {
          document.attachEvent("WeixinJSBridgeReady", onBridgeReady);
          document.attachEvent("onWeixinJSBridgeReady", onBridgeReady);
        }
      } else {
        //执行下面方法
        //传入下面参数,这些参数需要从后台获取
        setTimeout(() => {//在这使用获取的5个参数
          this.onBridgeReady(
            obj_data.appId,
            obj_data.timeStamp,
            obj_data.nonceStr,
            obj_data.package,
            obj_data.paySign
          );
        }, 500);
      }
    },
    onBridgeReady(appIds, timeStamps, nonceStrs, packages, paySigns) {
      WeixinJSBridge.invoke(
        "getBrandWCPayRequest",
        {
          appId: appIds, //需要在微信绑定商户号,成功之后会生成有appid
          timeStamp: timeStamps, //时间戳,自1970年以来的秒数,前端需要从后台获取该数据
          nonceStr: nonceStrs, //随机串,前端需要从后台获取该数据
          package: packages, //前端需要从后台获取该数据
          signType: "MD5", //微信签名方式,默认为"MD5",也可以从后台获取
          paySign: paySigns //微信签名,前端需要从后台获取该数据
        },
        function(res) {
          //这个步骤非常重要,调试期间会报上相应的错误信息,因为微信调试工具是无法实际支付的,并且微信上是无法调试的,只能在这里alert
          if (res.err_msg == "get_brand_wcpay_request:ok") {
            //购买成功之后需要做的事...
            this.$router.push({
              path: "/secess",
              query: { random: Math.random() }
            });
          } // 使用以上方式判断前端返回,微信团队郑重提示:res.err_msg将在用户支付成功后返回ok,但并不保证它绝对可靠。
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值