Files
hi-server/internal
架构师 281522e053 修复(#136): EPay notify 静默失败硬化 + 回写 trade_no
- 签名校验失败时返回 error(保留 Debug 旁路),handler 回非 200,触发 EPay 重试
- FindOrder 失败保持 error 返回;只保留 status=5 Finished 的幂等 return nil
- 回写 req.TradeNo 到 order.trade_no,便于事后用网关流水反查订单
- TradeStatus != TRADE_SUCCESS 路径降级为 INFO + metric 名 epay_notify_trade_not_success
- 抽离 evaluateEPayNotify 纯决策函数,单测覆盖 4 个分支 + sqlmock 验证 trade_no 写路径

修复对应 HIF-135 RCA 的根因之一:签名失败时回 200 success 让 EPay 不再重试,
订单卡在 status=1,15 分钟后被 DeferCloseOrder 错关。

仅改 internal/logic/notify/ePayNotifyLogic.go 及其单测。

Co-authored-by: multica-agent <github@multica.ai>
2026-06-01 03:02:33 -07:00
..
2026-05-06 05:42:48 -07:00
2026-03-06 21:58:29 -08:00
2026-03-06 21:58:29 -08:00