zhaoxing
f0dea6a583
feat: Rock 兑换支持上游异步 pending 并记录发货全链路报文
问题:上游 0666.pro 兑换返回 HTTP 200 + status=pending(官方处理中),
旧逻辑仅凭「没有 error 字段」就判定成功并写 redeemed 终态,导致本地显示
已发货而上游仍是 bound,且 redeemed 为硬终态无法自愈。
后端:
- RedeemSkin 改为三态判定(success / pending / failed),不再无 error 即成功
- 新增 redeeming「发货处理中」状态;pending 不写 redeemed_at/fulfill_id
- 成功落库前二次 refresh 确认上游 redeemed 或 redeemed_at 才置终态
- 新增确认 worker:20s 轮询、30s→5m 指数退避、110001 全局冷却 60s、
15 分钟未确认仅告警不回退,确认后同步订单为 delivered 并触发回调
- pending 期间禁止重复兑换,订单保持 delivering,不下发发货成功回调
- 新增 rock_delivery_logs 表与记录器:入站参数、内部状态、上游请求/响应
原文全部留档,保留 180 天
- 分配/绑定校验/刷新/导入/删除/回收站/统计/客服查询全部适配 redeeming
- 迁移 026:redeeming 跟踪字段、部分索引与报文日志表
前端:
- Token 列表新增「发货处理中」筛选项、标签与超时提示
- 删除/回收站纳入 redeeming 危险状态
- 历史抽屉拆为「状态历史 / 发货报文」双页签,按 trace 展示报文详情
- 买家发货页在 pending 时提示官方处理中,无需重复提交
测试:新增 pending 不落终态、异常响应不误判、重复提交不重复兑换、
确认后同步订单、保持 pending 并退避 5 个用例;go build/vet/test 与
前端构建均通过。
2026-11-14 12:09:16 +08:00
..
2026-07-30 12:02:32 +08:00
2026-10-21 22:37:49 +08:00
2026-08-04 13:03:29 +08:00
2026-09-18 15:26:09 +08:00
2026-10-06 19:43:05 +08:00
2026-10-10 18:14:46 +08:00
2026-10-06 19:43:05 +08:00
2026-10-06 19:43:05 +08:00
2026-10-31 16:48:47 +08:00
2026-11-14 12:09:16 +08:00
2026-11-14 12:09:16 +08:00
2026-09-14 20:13:29 +08:00
2026-11-14 12:09:16 +08:00
2026-09-08 12:44:45 +08:00
2026-10-06 19:43:05 +08:00
2026-10-06 19:50:13 +08:00
2026-10-06 19:50:13 +08:00
2026-08-05 13:32:11 +08:00
2026-09-14 20:13:29 +08:00
2026-08-05 13:32:11 +08:00
2026-10-06 20:28:41 +08:00
2026-10-06 20:28:41 +08:00
2026-09-18 16:19:37 +08:00
2026-07-31 18:42:52 +08:00
2026-10-06 19:43:43 +08:00
2026-10-06 19:50:13 +08:00
2026-09-18 15:04:38 +08:00
2026-10-06 19:50:13 +08:00
2026-08-05 13:32:11 +08:00
2026-10-06 19:50:13 +08:00
2026-07-30 14:12:27 +08:00
2026-10-21 22:37:49 +08:00
2026-10-21 22:37:49 +08:00
2026-10-22 10:47:13 +08:00
2026-08-05 13:32:11 +08:00
2026-10-06 19:43:43 +08:00
2026-09-14 20:00:26 +08:00
2026-09-14 20:00:26 +08:00
2026-10-22 09:55:13 +08:00
2026-10-22 09:55:13 +08:00
2026-10-06 20:44:48 +08:00
2026-09-14 20:33:42 +08:00
2026-10-21 22:37:49 +08:00
2026-10-06 20:44:48 +08:00
2026-11-10 10:28:48 +08:00
2026-10-06 18:45:08 +08:00
2026-10-06 18:45:08 +08:00
2026-09-15 12:39:53 +08:00
2026-11-14 12:09:16 +08:00
2026-11-14 12:09:16 +08:00
2026-10-10 18:14:46 +08:00
2026-11-14 12:09:16 +08:00
2026-10-06 19:49:11 +08:00
2026-08-04 13:56:26 +08:00
2026-10-06 19:49:11 +08:00
2026-11-14 12:09:16 +08:00
2026-11-02 18:30:51 +08:00
2026-10-06 19:42:58 +08:00
2026-11-14 12:09:16 +08:00
2026-11-09 11:24:32 +08:00
2026-11-14 12:09:16 +08:00
2026-10-31 16:48:47 +08:00
2026-11-14 12:09:16 +08:00
2026-10-31 12:24:00 +08:00
2026-11-14 12:09:16 +08:00
2026-11-03 12:37:05 +08:00
2026-11-10 17:25:59 +08:00
2026-10-31 14:03:04 +08:00
2026-10-31 16:48:47 +08:00
2026-10-31 14:26:12 +08:00
2026-10-31 14:26:12 +08:00
2026-11-14 12:09:16 +08:00
2026-10-31 12:24:00 +08:00
2026-10-31 12:24:00 +08:00
2026-11-02 18:30:51 +08:00
2026-11-14 12:09:16 +08:00
2026-11-14 12:09:16 +08:00
2026-11-14 12:09:16 +08:00
2026-11-14 12:09:16 +08:00
2026-11-09 13:38:57 +08:00
2026-11-09 18:30:28 +08:00
2026-11-14 12:09:16 +08:00
2026-10-06 19:58:34 +08:00
2026-11-08 18:03:48 +08:00
2026-11-08 18:56:54 +08:00
2026-11-10 17:25:59 +08:00
2026-11-09 18:18:19 +08:00
2026-11-10 17:25:59 +08:00
2026-11-03 12:37:05 +08:00
2026-11-09 13:38:57 +08:00
2026-11-14 12:09:16 +08:00
2026-11-09 13:38:57 +08:00
2026-11-10 17:25:59 +08:00
2026-11-09 13:38:57 +08:00
2026-10-31 12:24:00 +08:00
2026-11-09 13:38:57 +08:00
2026-07-30 12:02:32 +08:00
2026-07-30 12:02:32 +08:00
2026-08-13 11:41:34 +08:00
2026-11-10 10:28:48 +08:00