docs: pay v2 P2(收款管线)+ P7(codes 共享库)实现计划

P2(pay 仓,7 任务):Provider 抽象/render_type + 收款管线 + 统一入账 + webhook v2。
P7(新仓 ~/code/codes,8 任务):零依赖 codes 内核 + Redeem[T] 泛型事务骨架。
并行起草(均只依赖已完成 P1),登记 index。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
wangjia
2026-07-10 09:26:32 +08:00
parent d225067f29
commit a4ae5fcb64
4 changed files with 5118 additions and 0 deletions
+10
View File
@@ -57,11 +57,21 @@
<div class="desc">阅读版;执行真相源 <code>docs/superpowers/plans/2026-07-10-pay-v2-p1-core-model.md</code>(含 checkbox)。<a href="./pay-v2-unified-gateway-design.html">pay v2 设计</a>的首个落地阶段(8 阶段之 P1)。4 个 TDD 任务:money 包(int64 最小单位+币种)→ Order/Attempt/Account/Refund 模型+状态机+<code>:memory:</code> 测试约定 → OrderStore(幂等标付/取消/列表,条件UPDATE+RowsAffected)→ 账户配置注册表(凭证走 env)。沿用 GORM AutoMigrate/glebarez sqlite 惯例;金额从 string 元改 int64。P2-P8(Provider/收款管线/渠道 adapter/退款/路由/对账/codes 库/订阅)各自成计划、落地前细化。</div>
<div class="meta">P1 · 2026-07-10 · Go(Gin+GORM+sqlite) · 待执行</div>
</a>
<a class="doc" href="./superpowers/plans/2026-07-10-pay-v2-p2-pipeline.md">
<div class="title">pay v2 · P2 收款管线 + Provider 抽象 + webhook v2(计划)</div>
<div class="desc">7 个 TDD 任务:Provider 接口(create/verify_callback/query)+6 render_type+PaidEvent+注册表 → fake provider → OrderStore 扩展 → 一次性收款管线 gateway → 统一入账/开通(复用 P1 MarkAttemptPaid 幂等)→ webhook v2 outbox+Notifier(event_type+HMAC)→ HTTP /v1 接线。复用 P1 全部类型、免 docker。/v1 与 v1 /api/v1 并存。</div>
<div class="meta">P2 · 2026-07-10 · 待执行 · 真相源 .md</div>
</a>
<a class="doc" href="./pay-v2-roadmap-dag.html">
<div class="title">pay v2 · P2-P8 依赖 DAG 与并行执行</div>
<div class="desc">P1 已完成。P2-P8 的依赖关系图(SVG DAG)+ 关键路径 P2→P3→P4/P6 + 波次(P7 全程并行/P5∥P3/P4∥P6)+ 同仓并行的真实边界(先计划后实现、worktree 隔离防冲突)。</div>
<div class="meta">roadmap · 2026-07-10 · 8 阶段依赖分析</div>
</a>
<a class="doc" href="./pay-v2-p7-codes-lib.html">
<div class="title">pay v2 · P7 codes 共享库(激活码兑换内核)(阅读版)</div>
<div class="desc">阅读版;执行真相源 <code>docs/superpowers/plans/2026-07-10-pay-v2-p7-codes-lib.md</code>(含 checkbox)。把 pangolin 现有码逻辑抽成独立仓库 <code>github.com/wangjia/codes</code>(与 pay 不同部署,方案 A:共享库嵌入各产品,不改 pay/pangolin/jiu 现有代码)。8 个 TDD 任务:通用权益描述符 Entitlementduration/quota,不硬编码 plan+天数)→ Crockford Base32 生成器(移植 pangolin idgen)→ Dialect+内嵌 mysql/sqlite migrations+Store CRUD → Mint 批次生成 → <b>Redeem[T] 兑换事务骨架</b>(宿主本地事务+锁+CAS+幂等+grant 回调)→ RateLimiter/NonceChecker 接口+GuardedRedeem → redisx 可选子包(唯一 import Redis 处)→ webhook 灌码(pay-contract 式通用 HMAC 签名)。核心包零第三方依赖。</div>
<div class="meta">P7 · 2026-07-10 · Go(stdlib database/sql,可选 redis) · 待执行</div>
</a>
<p class="empty">运行与联调步骤见仓库根 README.md</p>
<h2>🔧 排障 Runbook</h2>