调用成功收到502错误

Received 502 error even though the call suceeded

我们通过第三方进行信用卡处理。据我所知发生在一位客户身上的事情是他们提交了付款,我们从第三方收到了 502 错误,向客户显示了错误,他们再次尝试第二次获得成功响应。

来了解一下,两笔付款都成功进行了,所以现在业务正在询问我们的开发人员如何防止这种情况发生。

请求是通过WebRequest.Create方法发出的。我猜测 502 错误发生在 return 返回我们服务器的过程中,这就是它成功但我们认为它失败的原因。

有什么方法可以从响应中判断故障发生在哪个阶段?不幸的是,第三方文档对此特定错误的信息为零。

所以你有 2 个系统,它们希望就发生的事件达成一致。抱歉,你做不到。

这是经典的2 Generals问题。如果消息可能会丢失,则没有协议可以保证 2 方同意。

你能管理的最好的是幂等事务。如果您有一个您不确定的交易,但实际上第一次成功了。尝试再次应用它应该 return 成功,但什么都不做。

查看支付处理器 API,看看他们是否有一个 ID 字段,您可以将其用作幂等标识符。