本文背景
在阅读本文之前,您需要对云开发微信支付有一定的了解
本文内容
云开发需要两个云函数来接入微信支付。
(一)云功能1
(2)云功能2
第二个云函数是支付成功的回调。我的问题就在这里。第一个云函数成功后,小程序获取云函数结果并调用wx.发起付款。
wx。本身有一个回调。具体是支付完成后点击完成按钮时触发。然后我们专门更新当前的支付状态,无论是在这个回调中,还是在第二个云函数异步回调中。
具体回调触发场景如下图所示。您需要点击下面的完成按钮。
参考文档
以下内容摘自官方文档
下单关键开发流程:
小程序调用云函数,调用云函数中的统一点餐接口。参数包括接收异步支付结果的云函数名称和所在云环境ID。
统一排序接口返回的成功结果对象中有一个字段。该字段为小程序接口(wx.)发起支付所需的全部信息。
小程序获取云函数结果并调用wx.发起付款。
支付完成后,统一订单界面中配置的云功能会收到支付结果的通知。
社区帖子
wx.() 的回调问题? ? - 微信开放社区
wx.( )回调函数,是否需要点击完成执行? ? - 微信开放社区
云功能支付,统一下单,返回支付成功信息,如何返回给小程序? ? - 微信开放社区
本文摘要
这两个回调具体来说就是前端回调或者后端回调。
(1)前端回调有问题。如果用户支付完成后没有点击完成按钮,此时支付状态不会更新;
(2)支付回调后肯定会触发后端回调;
从这个角度来看,在第二个云函数中,执行更新逻辑是严谨的。
目前最好的解决方案是前端回调可以更新支付记录,但云函数的异步回调也应该作为备份检测。两者的结合是完美的解决方案。