关于云开发微信支付的两种回调方式
发布于 5 年前 作者 suping 1957 次浏览 来自 分享

本文背景

在看本文之前需要您要对云开发微信支付有一定了解

本文内容

云开发接入微信支付,需要两个云函数,

(1)云函数1

(2)云函数2

第二个云函数是支付成功的回调,我的问题在这里,在第一个云函数成功后,小程序端拿到云函数结果,调用 wx.requestPayemnt 发起支付,

wx.requestPayemnt 本身是有success回调的,具体便是在支付完成后,点击那个完成的按钮时触发,那么我们具体更新当前支付状态,是这个success回调里面还是在第二个云函数异步回调里面

~

具体success回调的触发场景如下图所示,需要点击下面的完成按钮

参考文档

https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/wechatpay.html

https://developers.weixin.qq.com/miniprogram/dev/api/open-api/payment/wx.requestPayment.html

以下内容摘录自官方文档

下单关键开发流程:

小程序调用云函数,在云函数中调用统一下单接口,参数中带上接收异步支付结果的云函数名和其所在云环境 ID

统一下单接口返回的成功结果对象中有 payment 字段,该字段即是小程序端发起支付的接口(wx.requestPayment)所需的所有信息

小程序端拿到云函数结果,调用 wx.requestPayemnt 发起支付

支付完成后,在统一下单接口中配置的云函数将收到支付结果通知

社区帖子

wx.requestPayment()的success回调问题?? - 微信开放社区 https://developers.weixin.qq.com/community/develop/doc/000888538742d0bd2cc96717b5b000

wx.requestPayment( )  success回调函数,需要点完成执行?? - 微信开放社区 https://developers.weixin.qq.com/community/develop/doc/00088cba07c1689c155a9b3755b800

云函数支付,统一下单,functionName:pay_cb 返回支付成功信息,怎么传回小程序 ?? - 微信开放社区 https://developers.weixin.qq.com/community/develop/doc/000088a35ec2883b807af6d4a56800

本文总结

这两种回调具体就是前端回调还是后端回调的问题,

(1)前端回调有个问题,如果用户在支付完成后,没有点完成按钮,这个时候的支付状态便不会更新;

(2)后端回调在支付回调后,一定会触发的;

从这个角度分析,在第二个云函数里面,执行更新逻辑是严谨的。

目前得出的最优方案就是前端回调可以更新支付记录,但是云函数的异步回调也是要用来作为备用的检测用的,二者结合是完美的方案

回到顶部