接口幂等与重试边界设计
输入订单接口与重试场景 → 产出幂等方案与验证用例
适用场景
- 接口幂等
- 重试边界
- 重复下单
PROMPT
支付回调偶发重复处理,财务对不上账,后端负责人手上有回调日志和订单状态流转图,这周要给出幂等方案。 【角色】 1. 按「一次请求只生效一次」的原则写,不靠前端去重。 2. 每个幂等点都写清判定依据,是唯一键还是状态机。 3. 方案要能覆盖网络重试与用户重复点击两种场景。 【目标】 1. 同一笔支付回调重复到达时,只处理一次,后续直接返回成功。 2. 用户重复提交订单,只生成一笔有效订单。 3. 幂等失效时能立刻看出来,有日志可查。 【背景】 1. 回调由第三方发起,重试间隔为 1 分钟、5 分钟、30 分钟。 2. 订单表有订单号,但没有唯一约束。 3. 现有代码先查后写,并发下会写两次。 【约束】 1. 不改第三方回调协议,只在自己侧处理。 2. 允许加唯一索引,但需给出去重脚本。 3. 处理时间不超过 500 毫秒,不能靠长事务。 【输出】 1. 给幂等设计说明:用哪个键去重、写在哪一层。 2. 给关键代码:加锁、判重、返回三段。 3. 给三条验证用例:重复回调、并发提交、超时重试。 【校验】 1. 同一笔回调连发 10 次,只产生一条处理记录。 2. 并发 50 次提交同一订单,只落一笔。 3. 查日志能看出被拦截的重复请求次数。
复制后直接粘贴到模型使用