微信小程序拉起支付

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') {
                   // 失败后需要处理的业务
                }
            },
        })
    },
相关推荐
spmcor2 天前
微信小程序 setStorageSync 踩坑实录:别让"顺手一存"变成"隐形炸弹"
微信小程序
用户4324281061142 天前
小程序埋点设计规范:如何设计可扩展的数据采集体系
微信小程序
m0_526119403 天前
iconfont我修改好颜色,但是在小程序项目是黑色的
小程序
2601_956743683 天前
2026 上海小程序开发甄选:源码、云函数、跨端兼容技术评判
小程序·开发经验·上海
IT_张三3 天前
CSDN-项目分享-暑期备考小程序
小程序
IsJunJianXin3 天前
pdd小程序 cdp 保存响应体
linux·服务器·小程序·pdd小程序·拼多多响应体解密·小程序cdp·拼多多rpc取响应体
Geek_Vison3 天前
APP瘦身实战:从80MB+砍到15MB——基于小程序容器技术剥离APP非核心业务的实践分享
小程序·uni-app·mpaas
weikecms3 天前
聚合返利CPS小程序快速搭建教程
人工智能·微信·小程序
Haibakeji4 天前
长沙餐饮门店点餐配送小程序定制开发
大数据·小程序
2501_915918414 天前
iOS App性能测试工具的实现方法与优化循环指南
android·ios·小程序·https·uni-app·iphone·webview