yml2213
8c33ff62ec
feat(redeem): 固定兑换链接 /redeem(输入订单号 → 状态分流 → 兑换)
- 路径式入口 `https://<域名>/redeem`(不带 #):主站是 HashRouter,
故在 App.tsx 里早于 isWorkerSite() 插入独立 BrowserRouter 分支,
主站与打手站路由均不受影响;Caddy 已有 try_files 兜底,无需改部署
- 页面按 7 种状态渲染:not_found / unpaid / cancelled / refunded /
pending_certificate / redeemable / verified
- not_found 保留用户输入的订单号,不清空
- pending_certificate 只给显式「刷新」,不做自动轮询(公开限流接口,避免空转)
- verified 只展示后端已掩码的券码,绝不渲染明文 certNo
- confirm 不假设成功:一律按返回的 status 重渲染
- 纯函数抽到 utils/redeem.ts(无 React/antd、无 @ 别名),可直接跑单测
2026-10-09 12:01:35 +08:00
..
2026-10-03 14:27:32 +08:00
2026-10-02 17:13:59 +08:00
2026-09-17 10:57:57 +08:00
2026-09-17 11:22:59 +08:00
2026-10-08 15:41:23 +08:00
2026-10-01 12:17:00 +08:00
2026-09-16 20:39:52 +08:00
2026-09-17 13:01:59 +08:00
2026-09-21 14:23:00 +08:00
2026-09-21 12:04:30 +08:00
2026-09-13 11:14:16 +08:00
2026-10-01 15:05:38 +08:00
2026-10-09 12:01:29 +08:00
2026-09-16 21:02:50 +08:00
2026-08-21 12:39:24 +08:00
2026-10-08 13:50:19 +08:00
2026-10-09 12:01:35 +08:00
2026-09-21 15:48:23 +08:00
2026-08-30 17:32:34 +08:00
2026-08-21 12:29:19 +08:00
2026-08-20 16:19:44 +08:00
2026-08-28 21:36:54 +08:00
2026-10-01 13:48:05 +08:00
2026-08-16 17:27:12 +08:00