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