小程序云开发实现微信支付,不需要搭建服务器

一、开发微信支付功能一定要架设服务器吗?

二、云函数代替商户系统实现微信支付的可行性

三、微信小程序实现微信支付的原理

image

四、用云函数代替商户系统完成微信支付

那么,能不能变通一下,用云函数代替商户系统呢?答案是可以!流程图上,商户系统”支付“过程中做了3个工作:

1、配合小程序端获得用户的openid;

五、使用node-tenpay实现微信支付功能

下面就说一下node-tenpay的使用:

1.node.js的安装和使用

image.png

node.js有适合各种操作系统的,下载安装非常方便,但一开始用有点别扭。node.js没有图形化的操作界面,所有操作都是依靠命令行的指令运行相关程序,其中npm(node打包管理)程序的基本使用方法需要掌握。因为想要使用任何一个node.js模块,都需要运行npm指令安装到本地电脑指定目录才行。但这里不多说了。

image

3.云函数代码index.js:

4.小程序端的代码片段

//提交订单
  confirmOrder: function() {
    let that = this;
    wx.cloud.callFunction({
      name: "payment",
      data: {
        command: "pay",
        out_trade_no: "test0005",
        body: a7r2相机租赁,
        total_fee: 100
      },
      success(res) {
        console.log("云函数payment提交成功:", res.result)
        that.pay(res.result)
      },
      fail(res) {
        console.log("云函数payment提交失败:", res)
      }
    })
  },

  //实现小程序支付
  pay(payData) {
    //官方标准的支付方法
    wx.requestPayment({ //已经得到了5个参数
      timeStamp: payData.timeStamp,
      nonceStr: payData.nonceStr,
      package: payData.package, //统一下单接口返回的 prepay_id 格式如:prepay_id=***
      signType: MD5,
      paySign: payData.paySign, //签名

      success(res) {
        console.log("支付成功:", res)
        wx.cloud.callFunction({  //巧妙利用小程序支付成功后的回调,再次调用云函数,通知其支付成功,以便进行订单状态变更
          name: "payment",
          data: {
            command: "payOK",
            out_trade_no: "test0004"
          },
        })
      },
      fail(res) {
        console.log("支付失败:", res)
      },
     complete(res) {
        console.log("支付完成:", res)
      }
    })
  },

  //退款
  refund: function() {
    let that = this;
    wx.cloud.callFunction({
      name: "payment",
      data: {
        command: "refund",
        out_trade_no: "test0005",
        body: a7r2相机租赁,
        total_fee: 1,
        refund_fee: 1,
        refund_desc: 押金退款
      },
      success(res) {
        console.log("云函数payment提交成功:", res)
      },
      fail(res) {
        console.log("云函数payment提交失败:", res)
      }
    })
  }

5.利用小程序端支付成功回调云函数,取向想商户系统推送支付结果

6.实现退款功能必须要有证书

image

image

image

经验分享 程序员 微信小程序 职场和发展