小程序web-view调用小程序支付通道

web-view没法使用微信公众号的支付通道调起微信支付 

但是可以借用小程序的支付通道

1.在网页中引入最新的SDK

2. 点击支付时判断是否在小程序框体内, 带入参数跳转到小程序页面

if (window.__wxjs_environment === 'miniprogram') {
  wx.miniProgram.navigateTo({
    url: '/pages/wxpay/wxpay?orderid=' + id
  })
}

3. 小程序支付页面获取传入的参数,待支付完成后再调用回退指令返回web-view

Page({
  onLoad: function(options) {
    console.log(options)
    this.getData(options)
  },
  getData: function($data) {
    var that = this
    wx.request({
      url: 'getData_api',
      method: 'POST',
      data: $data,
      success: (res) => {
        console.log(res)
        that.pay(res.data.data)
      }
    })
  },
  pay: function($data) {
    console.log($data)
    var that = this
    wx.requestPayment({
      timeStamp: $data.timeStamp,
      nonceStr: $data.nonceStr,
      package: $data.package,
      signType: 'MD5',
      paySign: $data.paySign,
      success: function(res) {
        // 支付成功
        that.navback()
      },
      fail: function(res) {
        if (res.errMsg === "requestPayment:fail cancel") {
          // 用户取消支付
          that.navback()
          return
        }
        if (res.errMsg === "requestPayment:fail") {
          console.log(res.err_desc) // 错误信息
          that.navback()
          return
        }
      }
    })
  },
  navback: () => {
    setTimeout(function() {
      wx.navigateBack({ delta: 1 })
    }, 1000)
  }
})





你可能感兴趣的:(小程序,web-view,pay,微信支付)