games-development-ai/docs/agent-specs/2026-06-16-消费侧钱包最小闭环-review.md
zizi 45ec5cc6c3 docs(review): 消费侧钱包最小闭环评审版(HJ-PAYWALLET-001)——admin手动加余额可行性 + go/no-go
- 读码实证两套钱包:创作者收益(trade,已建)/消费支付(huijing-module-pay yudao原生,完整但pom注释未接入)
- admin 手动加余额=yudao /pay/wallet/update-balance 现成端点,接入 pay 后近乎免费(M4 已隔离实测接入启动干净零冲突)
- "加余额其余都正常"不成立:消费扣款游戏侧零接线、会员订阅未建(v2.0)
- 最小波次=接入pay+admin加余额+1条内购扣款闭环(会员订阅 out);裁断=新增scope非MVP闭环必需,推荐推迟保MVP聚焦(关键路径仍是日历闸门+IAA),待创始人 go/no-go
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 12:17:16 +00:00

4.1 KiB
Raw Blame History

消费侧钱包最小闭环 · 评审版(HJ-PAYWALLET-001)

性质:评审版(结论先行,供创始人 go/no-go)。日期:2026-06-16 | owner:L0 触发:创始人问「admin 能否手动加余额?除充值外购买/扣款/订阅/会员是否正常?」——读码实证后,这是一个新增 scope 的小波次提案。


1. 结论先行

现状(代码实证):消费经济基本未接/未建,不是"只差充值"。 两套钱包要分清:

钱包 干啥 状态
创作者收益钱包(trade,M4 建) 挣广告/分账 → 提现 ✅ 已建已接入、mock 可切真
消费钱包+支付(huijing-module-pay,yudao 原生) 充值 → 余额 → 扣减消费/买单 → 退款 ⚠️ 代码完整但 pom 注释、未接入单体(整套不在跑)
  • admin 手动加余额:能力现成(yudao PUT /pay/wallet/update-balance「更新会员用户余额」+ addWalletBalance),但 pay 未接入 → 现在不能;接入后近乎免费(M4 审计已隔离实测 pay 接入启动干净、零冲突)。
  • 购买/扣款:机制在 pay 里有(reduceWalletBalance/orderPay),但 ①pay 未接入 ②游戏侧零接线调它(grep 实证)→ 不通。
  • 会员/订阅:没建(yudao 有 member 字典但未接入游戏经济;PAY 域本就 v2.0)。

推荐裁断:这是新增 scope,非 MVP 闭环必需。 MVP 关键路径仍是日历闸门 + 造→玩→变现(IAA 广告)闭环(见记忆 mvp-binding-constraint)。消费侧(内购/会员)属 v2.0。若你判断现在要"绕开支付进件、用后台加余额跑通内购消费"做演示/早期验证 → 走本波最小闭环;否则推迟,保持 MVP 聚焦。


2. 最小闭环设计(若 go)

flowchart LR
  A[admin 后台<br/>**/pay/wallet/update-balance**<br/>手动给用户加余额] --> B[用户消费钱包有余额]
  B --> C[游戏内某内购品<br/>调 **reduceWalletBalance/orderPay** 扣款]
  C --> D[扣款成功→发放道具/解锁<br/>+钱包流水可查]

三步:① 接入 pay 模块(取消 pom 注释 + 验启动 + Flyway pay_* 表落库)② admin 加余额可用(yudao 原生端点,或 game-admin 加一页)③ 打通 1 个内购扣款(游戏侧经 pay 的 -api 调 reduceWalletBalance,扣款→发放,带幂等/对账)。


3. 边界(in / out)

  • in:pay 接入 + admin 手动加余额 + 1 条内购扣款闭环(如「解锁某关卡/道具」)+ 钱包流水查询 + 扣款对账。
  • out(明确不做):真实充值渠道(受支付进件日历闸门,本波只 admin 手动加/沙箱)· 会员订阅/等级/权益(v2.0,需另建)· 积分体系 · 打赏 · 多内购品类。

4. blast radius / 风险

维度 影响 风险
pay 接入 huijing-server pom + pay 自带 Flyway(pay_* 新表,additive)+ Bean/菜单 中——M4 已隔离实测启动干净零冲突;按 staging-ops §3 安全变体重部署
game→pay wiring 游戏侧新增对 pay -api 的 Feign 消费(只依赖 -api,不依赖 -server) 中——遵 add-business-module 规范
资金一致性 扣款幂等键 + 余额原子扣减(pay 的 reduceWalletBalance 自带行级 CAS) 低-中——复用 pay 成熟实现
边界 消费钱包(pay) vs 创作者收益钱包(trade)是两套账户,勿混 设计清晰即可

5. acceptance(若 go)

接入启动绿(Flyway/health,按隔离验证后再切)· admin /pay/wallet/update-balance 给用户加余额 DB 实证 · 游戏内 1 个内购品扣款 e2e(余额够→扣→发放→流水)· 扣款幂等(重放不双扣) + 余额守恒对账。


6. 待创始人拍板

  1. 现在做这个最小闭环吗?(新增 scope,非 MVP 闭环必需;MVP 关键路径仍是日历闸门 + IAA 广告变现)
  2. 若做:内购首品选哪个(解锁关卡/道具/复活)?admin 加余额入口用 yudao 原生 pay 后台,还是 game-admin 加一页?
  3. 会员订阅确认本波 out(v2.0)?