PHP 支付回调幂等改造
输入回调日志与表结构 → 产出幂等改造与对账验证
适用场景
- 回调重复处理
- 幂等改造
- 财务对账
PROMPT
支付回调重复入账,财务发现三笔重复,后端手上有回调日志和订单表结构,今天要交改造方案。 【角色】 1. 按资金安全优先写,宁可拒绝也不重复入账。 2. 每处判断都写清依据,用交易号还是状态位。 3. 改造后要能与财务对账,给出核对语句。 【目标】 1. 同一交易号只入账一次,重复回调直接返回成功。 2. 已退款订单不因回调再次变为已支付。 3. 给出对账 SQL,能查出重复入账记录。 【背景】 1. 回调由第三方发起,重试三次,间隔递增。 2. 订单表有交易号字段,无唯一索引。 3. 三笔重复发生在并发回调时,间隔不到 200 毫秒。 【约束】 1. 不改第三方协议,只改自己侧处理逻辑。 2. 加唯一索引前先清历史重复数据,脚本要能回滚。 3. 单次处理不超过 300 毫秒。 【输出】 1. 给改造后的回调处理代码,含加锁与判重。 2. 给历史数据清理脚本,先查后删,附影响行数。 3. 给对账 SQL,列出重复入账的交易号与金额。 【校验】 1. 模拟 10 次同交易号回调,只入账一次。 2. 并发 30 次回调,账目只增一笔。 3. 对账 SQL 跑一遍,重复记录数为 0。
复制后直接粘贴到模型使用