微信小程序拉起支付

1:获取用户的open_id

复制代码
 getOpenid(options, authorization) {
    const that = this
    let app_id = ' '  //这里是小程序的app_id
    wx.login({
      success: function (res) {
      // 调用后端接口获取
        http.getReq(********+ `/?code=${res.code}&app_id=${app_id}`, function (res) {
          console.log(res.data.openid) // 获取到的openid
        })
      }
    })
  },

2:获取用户的手机号
获取用户手机号链接

3:获取小程序的支付信息(调用后端接口)

复制代码
// 这段可以在H5内实现,也可以在微信小程序内实现
 appletPay() {
        const that = this
        appletPayApi({
          mchno: ' ',//这里是支付的商户号
          open_id: ' ', // 小程序用户的open_id
          way_code: "WX_LITE",
          total_amount: Number(that.total_amount),//支付金额
          order_num: 'yszcz' + new Date().getTime(),//订单号
          phone_number: that.phone_number, //手机号
          subject:"充值",
          payment_type:0
        }).then(res => {
          if (res.message === 'success') {
            console.log(res)
            const payData = JSON.parse(res.data.payData)
            const param = {
              appId: payData.appId,
              nonceStr: payData.nonceStr,
              package: payData.package.split('=')[1],
              paySign: payData.paySign,
              signType: payData.signType,
              timeStamp: payData.timeStamp,
              payDetailId: res.data.payOrderId,
              callbackUrl: 'https://fatsha.eloadspider.com/#/recharge?is_pay=success',
              failBackUrl: 'https://fatsha.eloadspider.com/#/recharge?is_pay=error',
              full_payment: Number(that.total_amount),
              open_id: that.open_id,
              phone_number: that.phone_number,
              pay_order_id: res.data.payOrderId,
            }
            console.log(param)
            const obj = {
              payParam: param,
              tokenModel: 'yszcz'
            }
            // 这里是微信小程序的
            this.wxPay(payParam, tokenModel) // 唤起微信支付
          } else {
            instance('获取支付信息失败')
          }
        })
      },

// 微信小程序内的唤起微信支付窗口

复制代码
 // 唤起微信支付窗口
    wxPay(payParam, tokenModel) {
        let that = this
        wx.requestPayment({
            'timeStamp': payParam.timeStamp,
            'nonceStr': payParam.nonceStr,
            'package': 'prepay_id=' + payParam.package,
            'signType': payParam.signType,//'MD5',
            'paySign': payParam.paySign,
            'success': function (res) {
                // 成功后需要处理的业务
                
            },
            'fail': function (res) {
                // 失败后需要处理的业务
            },
            'complete': function (res) {
                if (res.errMsg == 'requestPayment:fail cancel') {
                   // 失败后需要处理的业务
                }
            },
        })
    },
相关推荐
律宏阔7 小时前
微信小程序 + Taro + TDesign 去掉 [&&&],让普通 Tailwind 类接管局部样式
前端·微信小程序·taro
律宏阔7 小时前
微信小程序 + Taro + 多语言实现与国际化检查实录
前端·微信小程序·taro
李纲明1 天前
微信小程序 getSystemInfo 提示已废弃、屏幕高度算错胶囊还对不齐?getWindowInfo 和 getDeviceInfo 怎么接才稳
javascript·微信小程序·小程序·小程序开发·devdiy
dreams_dream1 天前
微信小程序-使用npm包
微信小程序·小程序·npm
L1mbo1 天前
Lite模式 缓解微信开发者工具卡顿,附 uni-app 实践方案
前端·微信小程序
caoliaoerweima2 天前
草料二维码小程序上线活码编辑器:手机上也能编辑活码了
智能手机·小程序·编辑器·草料二维码
大数据技术派2 天前
等了一周,我的摸鱼小程序终于微信认证通过了
微信小程序
CSharp精选营3 天前
记一次家庭物品管理的折腾:从“收纳”到“可检索”
微信小程序·aicoding·屋册有序·物品收纳管理·家庭收纳管理工具
dreams_dream4 天前
微信小程序:页面事件-上拉触底
微信小程序·小程序
鹏多多4 天前
AI 到底能不能独立做个产品?我拿一个小程序验证了
前端·微信小程序·ai编程