小程序云开发实现微信支付,不需要搭建服务器
一、开发微信支付功能一定要架设服务器吗?
二、云函数代替商户系统实现微信支付的可行性
三、微信小程序实现微信支付的原理
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
上一篇:
uniapp开发微信小程序-2.页面制作
下一篇:
微信小程序云开发基础设置