• 微信小程序支付功能讲解


    前言:虽然小程序做过很多,但是一直觉得微信支付功能很是神秘,现在终于有机会接触心里还是有点小激动的,经过一番折腾发现支付也不过如此,在此记录下支付功能的实现过程

    小程序的官方文档介绍到发起微信支付即调用API wx.requestPayment(Object object)

    wx.requestPayment({
      timeStamp: '',
      nonceStr: '',
      package: '',
      signType: 'MD5',
      paySign: '',
      success(res) { },
      fail(res) { }
    })

    看到这是不是一脸懵逼,这些参数从何而来?

    那么先来看一下官方给出的业务流程时序图,小程序支付交互如下图:

    根据实现过程,我将它划分成如下六个模块进行讲解,

     1、下单:

    这里是用户与页面交互,例如点击付款按钮,触发支付交互

    2、向后端发出支付请求

    通过接口请求给后端系统提供参数:商品ID,总价totalPrice

    3、后端系统与微信服务进行交互,换取参数

    后端系统得到微信返回的相关数据后,经过解密处理返回前端需要的相关参数,即wx.requestPayment()需要的相关参数

    4、发起微信支付

    5、微信服务返回支付的结果 

     根据微信返回的结果(成功或失败),前端做出对应的提示

    6、微信服务把支付结果通知给后端系统

    这里就是后端的事情了,和前端不相干

    最后附上代码思路如下

      /**
         * 
         * @param {string|number} id 订单ID
         * @param {string|number} totalPrice 订单总价
         */
        pay(id,totalPrice){
            wx.request({
                url: 'https://xxxxxxxxx',
                data: {
                  orderId: id,
                  orderPrice:totalPrice
                },
                success:res => {
                    wx.requestPayment({
                        timeStamp: res.data.timeStamp,
                        nonceStr: res.data.paySign,
                        package: res.data.paySign,
                        signType: 'MD5',
                        paySign: res.data.paySign,
                        success(res) {
                            console.log('支付成功')
                        },
                        fail(res) { 
                            console.log('支付失败')
                        }
                    })
                    
                },
                fail:err => {
                    console.log('接口请求出错')
                }
            })
        }
  • 相关阅读:
    现代软件工程 第八章 【需求分析】练习与讨论
    现代软件工程 第七章 【MSF】练习与讨论
    现代软件工程 第六章 【敏捷流程】练习与讨论
    PPT演说技巧
    Mac上最强大的截图软件-xnip
    什么是函数倾轧(name mangling)?
    编程--在线提交系统(Online Judge)
    C++ 的多继承与虚继承
    C++ 中 string和char* 的区别
    编程语言中优先级与结合性
  • 原文地址:https://www.cnblogs.com/weichen913/p/10269070.html
Copyright © 2020-2023  润新知