pay v2 · Execution
pay v2 · 执行总览与评审
2026-07-10 · 一页看全:当前进度 + 依赖 DAG + P2/P7 待审计划 + 你要拍的决策点。详见 设计 · P1 · P2 · P7 · DAG。
现状(2026-07-10 执行波收官):P1 ✅ P2 ✅ P7 ✅ —— P2 收款管线(pay 仓 design/pay-v2,12 提交,整支 opus 终审 Ready to merge)与 P7 codes 共享库(新仓 ~/code/codes,15 提交,终审含 1 Critical 双花修复后 Ready to tag)双线 SDD 完成。分支/新仓均未合并未 push,等你验收。下一波:P3 渠道 adapter ∥ P5 路由(需先写计划)。
1. 8 阶段进度
| 阶段 | 内容 | 状态 |
| P1 | 核心数据模型(Order/Attempt/Account/Refund)+ money + 账户注册表 | ✅ 完成 |
| P2 | Provider 抽象 + 一次性收款管线 + 统一入账 + webhook v2 | ✅ 完成 |
| P3 | 首批渠道 adapter:crypto 自托管 / 支付宝 / Stripe | 路线图 |
| P4 | 退款 POST /refunds + 三向 | 路线图 |
| P5 | 多账户路由策略 | 路线图 |
| P6 | 对账 job | 路线图 |
| P7 | codes 共享库(独立仓,A 嵌入各产品) | ✅ 完成 |
| P8 | 订阅/recurring + 拒付(later) | 路线图 |
2. 依赖 DAG 与波次
关键路径 P2→P3→P4/P6(硬串行);波次:Wave0 P7 ∥ Wave1 P2 → Wave2 P3∥P5 → Wave3 P4∥P6 → Wave4 P8。
3. 待审计划
P2 收款管线(pay 仓,7 任务)
- Provider 接口 + 6 render_type + PaidEvent + 注册表
- fake provider(测试用)
- OrderStore 扩展(GetOrder/AttemptByProviderRef…)
- 一次性收款管线 gateway(建单/查单/重试/取消)
- 统一入账/开通 settle(先幂等入队再幂等翻转,崩溃安全)
- webhook v2 outbox + Notifier(event_type + HMAC + 已付门禁)
- HTTP /api/v2 接线(D3:与旧版统一 /api 前缀)
→ P2 详细阅读版
P7 codes 共享库(新仓 ~/code/codes,8 任务)
- 模块脚手架 + 通用权益描述符 Entitlement + 状态机
- Crockford Base32 生成器(移植 pangolin)
- Dialect + 内嵌迁移 + Store CRUD
- Mint(批次生成,明文只现一次)
- Redeem[T] 兑换事务骨架(宿主本地事务 + grant 回调)
- RateLimiter/NonceChecker 接口 + GuardedRedeem
- redisx 可选子包(唯一 import Redis 处)
- webhook 灌码(pay-contract 式 HMAC)
→ P7 详细阅读版
4. 决策点(2026-07-10 评审:D2/D3/D4 已拍,余 D1)
D1 · 是否开跑大执行波 —— P2(7)+P7(8)≈15 任务、~40 次 SDD agent 调用,多小时工程;P7 要新建仓 ~/code/codes。开跑 / 先只跑 P7 / 暂缓?【待拍】
D2 · P7 独立新仓 —— ✅ 已拍:认可 github.com/wangjia/codes 独立仓,核心零第三方依赖。
D3 · 路由统一 —— ✅ 已拍:统一 /api 前缀 v2 挂 /api/v2(POST /api/v1/orders 被旧契约占用,同前缀无法并存);旧 /api/v1 仅为存量当面付部署保留,P3 渠道迁入后整组删除,最终只剩一套。其余延后取舍(webhook 暂用 biz_ref、路由首账户延 P5、币种部署默认延 P3+)维持。
D4 · settle 资金链路 & Provider 接口 ——
✅ 已深讲并折入 3 处修订:A1 先入队后翻转+投递门禁(消灭"已付但永不通知"窗口)/ A2
Query(QueryRequest) 带尝试上下文 / A3
PaidEvent.PaidAt 渠道支付时间。详见
P2 阅读版「评审修订」。
5. 建议下一步
只剩 D1:说"开跑"即按 DAG 波次启动(P7 新仓 ∥ P2 关键路径,SDD 逐任务实现+复审,每波边界汇报);想稳则"先只跑 P7"。