微信小程序拉起支付

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') {
                   // 失败后需要处理的业务
                }
            },
        })
    },
相关推荐
一几文2 小时前
2026年上半年软考高级-系统架构设计师考试真题回顾与解析-综合知识选择题6
小程序·架构·系统架构·软考高级·软考·it证书
zhangminghuan5 小时前
微信小程序开发核心知识点全景解析(前端必备硬核基础)
前端·微信小程序·小程序
游戏开发爱好者86 小时前
开心上架是什么,一站式 Apple 开发者工作台总览
android·小程序·https·uni-app·iphone·webview
sltin7 小时前
需求到落地:我如何在微信小程序里实现证件照换底、隐私打码与水印相机
数码相机·微信小程序·小程序
软件聚导航10 小时前
软件聚导航-前端工程师的“小家庭”,工具与生活并存
人工智能·小程序·学习方法·图片压缩
咸虾米_1 天前
小程序流量主哪种广告最赚钱?各类广告收益与实操建议
微信小程序·小程序·小程序开发·流量主广告
show4331 天前
2026小程序端AI配音技术实现:TTS多音色引擎集成与MP3生成性能优化
人工智能·性能优化·小程序
00后程序员张1 天前
Windows / Linux / Mac 上不用 Xcode 把 IPA 上传到 App Store,upload 命令详解
android·ios·小程序·https·uni-app·iphone·webview
梓彤科技2 天前
样式已经更新,用户仍看到旧页面?武汉网站建设中的缓存版本控制
搜索引擎·小程序·seo·网站开发·geo
mashirro2 天前
记一次基于ruoyi-vue新增小程序服务模块,小程序登陆相关
vue.js·小程序·mybatis