问题:原流程先执行不可逆的链上dUSDT转账,再扣减卖家DB余额。 若转账成功但扣减失败(余额不足、DB异常),会导致: - dUSDT已转出(链上不可回退) - 订单仍为PENDING(可能被重复处理) - 卖家余额未扣减 修复: 1. 将deductSellerBalance移至transferDusdt之前(可逆操作先行) 2. 链上转账失败时调用restoreSellerBalance回补余额 3. 新增restoreSellerBalance方法,失败时记录CRITICAL级别日志 修改后流程:扣余额(可逆) → 链上转账(不可逆) → 更新订单状态(DB) 任何步骤失败都不会导致资金损失。 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| .claude | ||
| api-gateway | ||
| infrastructure | ||
| mpc-system | ||
| scripts | ||
| services | ||
| .env.windows | ||
| docker-compose.windows.yml | ||