vue

Vue 移动端微信内H5调起支付(WeixinJSBridge内

2020-11-30  本文已影响0人  子语喵

下面是前端的写法

StartWeiXinPay(pay_params) {
  if (typeof WeixinJSBridge === 'undefined') {
    if (document.addEventListener) {
      alert(1);
      document.addEventListener('WeixinJSBridgeReady', this.onBridgeReady(pay_params), false)
    } else if (document.attachEvent) {
       alert(2);
      document.attachEvent('WeixinJSBridgeReady', this.onBridgeReady(pay_params))
      document.attachEvent('onWeixinJSBridgeReady', this.onBridgeReady(pay_params))
    }
  } else {
    this.onBridgeReady(pay_params)
  }
},

onBridgeReady(pay_params) {
  var that = this
  WeixinJSBridge.invoke(
    'getBrandWCPayRequest', {
      'appId': pay_params.appId, // 公众号名称,由商户传入
      'timeStamp': pay_params.timeStamp, // 时间戳,自1970年以来的秒数
      'nonceStr': pay_params.nonceStr, // 随机串
      'package': pay_params.package, //统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=***)
      'signType': pay_params.signType, // 微信签名方式:
      'paySign': pay_params.paySign // 微信签名
    },
    function(res) {
      if (res.err_msg == 'get_brand_wcpay_request:ok') {
        // 使用以上方式判断前端返回,微信团队郑重提示:res.err_msg将在用户支付成功后返回    ok,但并不保证它绝对可靠。
        alert('支付成功')
      } else {
        alert('支付失败')
      }
    }
  )
},
注意 支付成功后不能用get_brand_wcpay_request:ok 作为支付成功的凭证 需要查询订单或者填通知notify_url字段让微信发起异步支付通知才算支付成功
上一篇下一篇

猜你喜欢

热点阅读