发布于

如何避免重复付款?

作者

乍一看,精确一次传递似乎很难解决,但如果我们把问题分成两部分,它就容易得多。从数学上讲,如果一个操作执行时

Image

乍一看来,确保消息只被处理一次(exactly-once delivery)似乎是一个很难解决的问题,但如果我们把这个问题分成两部分,它就变得容易得多。从数学上来说,一个操作是确保只被执行一次的,如果:

  1. 它至少被执行一次。

  2. 同时,它最多被执行一次。

我们现在解释一下如何使用重试来实现至少一次执行,以及如何使用幂等性检查来实现最多一次执行。

重试:偶尔,我们需要因为网络错误或超时而重试一次支付交易。重试提供了至少一次执行的保证。例如,如图10所示,客户端尝试进行一次10美元的支付,但由于网络连接不佳,支付一直失败。考虑到网络条件可能会改善,客户端重试请求,这次支付最终在第四次尝试中成功。

幂等性:从API的角度来看,幂等性意味着客户端可以重复调用相同的API,并产生相同的结果。

在客户端(Web和移动应用程序)与服务器之间的通信中,幂等性键通常是一个由客户端生成的唯一值,并在一段时间后过期。UUID通常被用作幂等性键,并且被许多技术公司推荐,例如Stripe和PayPal。要执行幂等的支付请求,需要在HTTP头中添加幂等性键。

请注意,中文版本是由 AI 辅助翻译的,因此可能存在细微错误。

作者

Ai Base Network (ABN), ABN ASIA由具有深厚学术背景的人员创立,他们在美国、荷兰、匈牙利、日本、韩国、新加坡和越南等国家有工作经验。ABN Asia是学术界和技术相遇的地方。凭借我们领先的解决方案和优秀的软件开发服务,我们帮助企业提升水平,走向全球舞台。我们的承诺:更快。更好。更可靠。在大多数情况下:也更便宜。

无论您需要IT服务、数字咨询、现成软件解决方案,还是想向我们发送招标要求(RFPs),都请随时与我们联系。您可以通过[email protected]与我们联系。我们随时准备为您提供所有技术需求的帮助。

ABNAsia.org

© ABN ASIA