公司最近一个小程序项目接入了微信支付,在用户使用过程中,发现调用 wx.requestPayment 这个接口完成支付之后,有很小的几率不会执行 success 回调。而我需要在 success 回调中执行一系列的后续处理,这个回调不触发的话,就没法做后续的操作。
上网搜了一下,有人也遇到了同样的情况,想问一下对于这种情况,怎么样处理比较妥当?
1
liuidetmks 2023-09-06 16:52:18 +08:00
别依赖回调吧,轮询最靠谱
|
2
Laobai 2023-09-06 16:53:09 +08:00
建议后端做轮询
|
3
coolcoffee 2023-09-06 16:56:39 +08:00
这个可能就是为什么很多支付页面都会放一个让用户确认“已支付” / “未支付” 两个按钮吧。
|
4
dream4ever OP @coolcoffee 哈哈,是的,有些事情自己遇到了才会明白别人为什么这么做。
|
5
dream4ever OP |
6
linauror 2023-09-06 17:06:53 +08:00
猜测是付款完成后,直接关闭了页面,没有点确定按钮
|
7
dream4ever OP @linauror 嗯,我这边测试了一下,是会有这种情况。
|
8
hlwjia 2023-09-06 17:13:56 +08:00
@coolcoffee 这是懒的做法,其实应该是一个支付确认等待页面,等你后端收到微信的 hook 后,这个等待页面再自动跳转。
@dream4ever 微信支付的文档里明确写了(我记得)这个 success 回调是不可靠的,不能依赖这个来判断是否支付成功;准信还是得等微信给你发的那个 hook |
9
ae86 2023-09-06 17:25:48 +08:00
居然还有这种问题,我一直没遇到过
|
10
dream4ever OP @hlwjia 一直看的都是 https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter3_5_4.shtml 和 https://developers.weixin.qq.com/miniprogram/dev/api/payment/wx.requestPayment.html 这两篇文档,的确没看到你说的回调不可靠的问题,还是看到后面这篇文档底下的社区讨论,才知道有这种情况。
|
11
hlwjia 2023-09-07 05:59:23 +08:00
@dream4ever 我很久没写这支付了,可能已经变了。
|