微信小程序云开发支付
微信小程序的云开发支付先看下微信官方给出的流程图:
文章图片
这张图里,开发者只需要关注的是小程序和云函数端即可;云函数做了很多参数的处理,所以我们不需要关注证书,签名等,只需要调用相应的函数即可;接下来大致说下整个支付流程:
【微信小程序云开发支付】一、小程序项目要有云开发环境,在使用云能力前,先完成云能力的初始化,即在根目录下的app.js中配置;
wx.cloud.init({
env: '环境id',
traceUser: true,
})
二、要将小程序和商户号的绑定,再在云控制台添加上商户号,添加完之后,需要超级管理员在 微信支付商家助手 公众号进行授权,第一次开通可能没那么快收到授权信息;退款权限需要在商户号平台授权的产品中进行确认授权的;
三、在项目的cloudfunctions右键新建node.js云函数,(一个下单云函数,一个是结果回调云函数),新建之后,然后上传和部署云函数;
下单函数的编写:通过CloudPay.unifiedOrder()去下单,注意有些参数是不用填的,可以参考微信官方给的案例,
exports.main = async (event, context) => {
const res = await cloud.cloudPay.unifiedOrder({
"body" : "描述",
"outTradeNo" : "1217752501201407033233368018",
"spbillCreateIp" : "127.0.0.1",
"subMchId" : "商户号",
"totalFee" : 1,
"envId": "云环境id",//
"functionName": "pay_cb"//回调结果云函数
})
}
像一些随机数,签名什么的,都不需要传递,注意的是回调函数名和环境id,event是客户端传给云函数的参数;
客户端的写法:
wx.cloud.callFunction({
name: '函数名',//下单的云函数
data: {//传递的数据
// ...
},
success: res => {
const payment = res.result.payment
wx.requestPayment({//支付api
...payment,
success (res) {
console.log('pay success', res)
},
fail (err) {
console.error('pay fail', err)
}
})
},
fail: console.error,
})
回调结果的函数一定要注意返回参数给微信服务器,不然会一直回调;
if(event.resultCode == 'SUCCESS'){//根据result_code查看业务结果成功进行提交数据告诉服务器
//更新云数据库数据
const res = {errcode:0,errmsg:''}//需要返回的字段,不返回该字段则一直回调
return res
}
这样整个支付流程接结束了;跟传统的支付方式方式相比,确实简单了很多,也更安全,如果有商户号可以写个demo试试呗!
推荐阅读
- 一个小故事,我的思考。
- 家乡的那条小河
- 一个人的碎碎念
- 野营记-第五章|野营记-第五章 讨伐梦魇兽
- 昨夜小楼听风
- 2021-02-17|2021-02-17 小儿按摩膻中穴-舒缓咳嗽
- 基于微信小程序带后端ssm接口小区物业管理平台设计
- 2019.4.18感恩日记
- 那件我们忽略的小事叫感恩
- 你有婚内虐待行为吗()