就是说有一种情况:比如支付宝支付。我们调用接口。当如果客户支付成功后,会有一个回调。这是我们服务器出现当机了的情况,导致客户端订单没有把支付状态更改过来变成已支付,我们有什么处理方法可以避免这种情况吗?
就是说有一种情况:比如支付宝支付。我们调用接口。当如果客户支付成功后,会有一个回调。这是我们服务器出现当机了的情况,导致客户端订单没有把支付状态更改过来变成已支付,我们有什么处理方法可以避免这种情况吗?
支付宝会在 24 小时内定时发送成功回调,直到回调接口返回 success
如果宕机超过 24 小时就只能手动修改了
程序执行完后必须打印输出“success”(不包含引号)。如果商户反馈给支付宝的字符不是success这7个字符,支付宝服务器会不断重发通知,直到超过24小时22分钟。一般情况下,25小时以内完成8次通知(通知的间隔频率一般是:4m,10m,10m,1h,2h,6h,15h);
这是当面付的回调 别的没有看过 https://docs.open.alipay.com/...
支付宝有异步回调,这个必须接收。不能只靠前端支付宝302跳转,万一用户给完钱就关了支付宝怎么办
可以弄一个每天晚上4点手动查询支付宝当日未success
的订单,如果支付宝显示支付了,而你这边没支付,就需要同步过来
通过以上两步,不会漏掉订单了
通常三方支付的回调是需要客户服务器返回回调成功才算回调成功该订单并停止继续回调,否则会按照一定的递增频率在24小时内重复回调直到客户服务器正确返回回调成功。然后通常还会提供主动查询的接口,可以在回调不成功的时候主动向三方支付发起查询该笔订单支付状态然后以此为更新订单的依据。此处可以参考 https://www.pingxx.com/api#ev...事件 但仅是提供参考思路 请勿以为广告嫌疑 声明此三方支付和本人无任利益何关系
基本上各类支付都会有定时回调的,像3楼说的,有一定递增频率回调,知道你按照他指定格式输出它才会在某个时间段(如24小时)停止回调。但也不排除有调单的(比如服务器宕机了24小时),解决的方法是各支付平台都会提供订单查询接口,每天定时去查询一下,并和本地进行比对,更新那些没有支付的订单,所以查询接口也是必不可少的一项。
1 回答4.1k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
2 回答2.3k 阅读✓ 已解决
2 回答842 阅读✓ 已解决
1 回答1.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
2 回答805 阅读✓ 已解决
可以避免, 做个定时任务, 拿订单号主动查询订单状态, 遗漏的再次更新.
一般是回调通知更新一次, 定时查询再做一次查询, 防止你说的这类情况.