调用 wx.requestPayment 支付成功但未执行 success 回调

2023-09-06 16:27:30 +08:00
 dream4ever

公司最近一个小程序项目接入了微信支付,在用户使用过程中,发现调用 wx.requestPayment 这个接口完成支付之后,有很小的几率不会执行 success 回调。而我需要在 success 回调中执行一系列的后续处理,这个回调不触发的话,就没法做后续的操作。

上网搜了一下,有人也遇到了同样的情况,想问一下对于这种情况,怎么样处理比较妥当?

1289 次点击
所在节点    程序员
11 条回复
liuidetmks
2023-09-06 16:52:18 +08:00
别依赖回调吧,轮询最靠谱
Laobai
2023-09-06 16:53:09 +08:00
建议后端做轮询
coolcoffee
2023-09-06 16:56:39 +08:00
这个可能就是为什么很多支付页面都会放一个让用户确认“已支付” / “未支付” 两个按钮吧。
dream4ever
2023-09-06 16:59:35 +08:00
@coolcoffee 哈哈,是的,有些事情自己遇到了才会明白别人为什么这么做。
dream4ever
2023-09-06 17:00:17 +08:00
@liuidetmks
@Laobai OK ,我研究研究。
linauror
2023-09-06 17:06:53 +08:00
猜测是付款完成后,直接关闭了页面,没有点确定按钮
dream4ever
2023-09-06 17:08:07 +08:00
@linauror 嗯,我这边测试了一下,是会有这种情况。
hlwjia
2023-09-06 17:13:56 +08:00
@coolcoffee 这是懒的做法,其实应该是一个支付确认等待页面,等你后端收到微信的 hook 后,这个等待页面再自动跳转。

@dream4ever 微信支付的文档里明确写了(我记得)这个 success 回调是不可靠的,不能依赖这个来判断是否支付成功;准信还是得等微信给你发的那个 hook
ae86
2023-09-06 17:25:48 +08:00
居然还有这种问题,我一直没遇到过
dream4ever
2023-09-07 02:18:44 +08:00
@hlwjia 一直看的都是 https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter3_5_4.shtmlhttps://developers.weixin.qq.com/miniprogram/dev/api/payment/wx.requestPayment.html 这两篇文档,的确没看到你说的回调不可靠的问题,还是看到后面这篇文档底下的社区讨论,才知道有这种情况。
hlwjia
2023-09-07 05:59:23 +08:00
@dream4ever 我很久没写这支付了,可能已经变了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/971466

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX