193-197-小程序支付.md

小程序支付

支付流程
//miniprogram\modules\orderPayModule\pages\order\detail\detail.js
import { reqSubmitOrder, reqPrePayInfo, reqPayStatus } from '@/api/orderpay'
import { debounce } from 'miniprogram-licia'

Page({
  data: {
    ... // 订单参数
  },

  submitOrder: debounce(async function () {
    ... // 对请求参数进行验证
    // 生成平台订单,返回订单编号
    const res = await reqSubmitOrder(params)
    if (res.code === 200) {
      this.orderNo = res.data
      this.advancePay()
    }
  }, 500),

  async advancePay() {
    try {
      // 获取预付单信息
      const payParams = await reqPrePayInfo(this.orderNo)

      if (payParams.code === 200) {
        // 发起微信支付
        const payInfo = await wx.requestPayment(payParams.data)

        if (payInfo.errMsg === 'requestPayment:ok') {
          // 查询支付状态
          const payStatus = await reqPayStatus(this.orderNo)

          if (payStatus.code === 200) {
            wx.redirectTo({
              url: '/modules/orderPayModule/pages/order/list/list',
              success: () => {
                wx.toast({
                  title: '支付成功',
                  icon: 'success'
                })
              }
            })
          }
        }
      }
    } catch (error) {
      wx.toast({
        title: '支付失败',
        icon: 'error'
      })
    }
  },
})
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容