“请求超时但支付成功:构建可重试的移动 API" 笔记

“请求超时但支付成功:构建可重试的移动 API"

移动网络以不可靠著称。一个常见场景是:用户在应用中点击“立即支付”,支付请求已到达服务器并被处理,但网络响应未能传回手机。客户端误认为请求失败而重试,导致重复扣款。这正是幂等性所解决的问题。幂等性意味着重复执行同一操作不会产生额外效果,第二次尝试应识别其为重复请求并执行新操作。在实践中,移动工程师必须将支付或订单 API 设计为幂等的,通过在请求中附加唯一操作标识符并在后端进行去重来实现。采用此方法,即使网络丢包或用户双击按钮,用户也仅会被扣款一次。