第三方支付异步通知多次通知回调地址,前面通知请求还没有处理完成,后面请求就发过来了,导致多次确认收款,如何解决
ringa_lee
支付的话需要按唯一 ID 来做处理吧,例如交易号,流水号之类,不可能允许多次重复。
请求来了时候 先把db中的记录状态由初始更新为一个中间状态然后在处理请求,把中间状态更新为处理完成状态然后给第三方异步请求返回报文
好奇的是,短时间内多次,那么是多短时间多少次呢。
比如,10 秒内 5-10 次,应该考虑你的代码优化,为啥 1 秒不能处理一个请求,第一个处理完之后,后面的请求就无视了。
比如,1 秒内 5-10 次,简单处理,就是入队列,把并发的请求,变成串行的,就可以解决了。
以上,我都觉得频率那么高,肯定是有问题的,可以找第三方平台提出来。
程序处理完就给第三方返回成功,否则失败,第三方接收到成功就不要再请求了,容易被封ip。这种问题写在文档里给第三方看
支付的话需要按唯一 ID 来做处理吧,例如交易号,流水号之类,不可能允许多次重复。
请求来了时候 先把db中的记录状态由初始更新为一个中间状态
然后在处理请求,把中间状态更新为处理完成状态
然后给第三方异步请求返回报文
好奇的是,短时间内多次,那么是多短时间多少次呢。
比如,10 秒内 5-10 次,应该考虑你的代码优化,为啥 1 秒不能处理一个请求,第一个处理完之后,后面的请求就无视了。
比如,1 秒内 5-10 次,简单处理,就是入队列,把并发的请求,变成串行的,就可以解决了。
以上,我都觉得频率那么高,肯定是有问题的,可以找第三方平台提出来。
程序处理完就给第三方返回成功,否则失败,第三方接收到成功就不要再请求了,容易被封ip。这种问题写在文档里给第三方看