【微信小程序】封装公共支付方法并唤起支付

这篇文章展示了如何在微信开发者工具中处理支付功能。当用户点击支付按钮时,程序通过异步函数调用后端接口获取支付参数,然后使用这些参数调用封装好的`wxPayMethod`进行微信支付。支付成功或失败时,都有对应的回调处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先看效果图,微信开发者工具示例

在这里插入图片描述

  1. 调用后端接口获取支付参数
  2. 使用获取的参数唤起微信支付组件
// 支付按钮点击事件
  async handlePay() {
    let openId = wx.getStorageSync('openid')
    // 在这里请求后端接口获取支付参数
    let res = await orderApply({
      openId,
      orderId: this.data.orderId,
      payType: 6,
      payAmount: this.data.orderAmount
    })
    // 这里使用 try catch 的作用就是接收Promise的回调 如果 reject 会直接进入 catch 中
    try {
    // 调用封装的支付方法
      await wxPayMethod(res.data)
      // 成功后执行的事件
      let res_redirect = await checkOrderStatus({ id: this.data.orderId })
      if (res_redirect.code != 200) return wx.showToast({ title: res_redirect.message, icon: 'none' })
      return wx.navigateTo({ url: '/pages/addpatient/index?type=4' })
    } catch (err) {
      wx.showToast({ title: err, icon: 'none' })
    }
},

wxPay.js

export const wxPayMethod = data => {
  return new Promise((reslove, reject) => {
    if (!data) return reject('缺少支付参数')
    let paymentM = { timeStamp: '', nonceStr: '', package: '', signType: '', paySign: '' }
    for (let key in paymentM) {
      if (data[key]) {
        paymentM[key] = data[key]
      }
    }
    wx.requestPayment(
      {
        timeStamp: data.timeStamp,
        nonceStr: data.nonceStr,
        package: data.package,
        signType: data.signType,
        paySign: data.paySign,
        success: res => {
         // 支付成功回调
          return reslove(res)
        },
        fail: err => {
          // 支付失败回调
          return reject(err || '支付失败')
        }
      }
    )
  })
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端大斗师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值