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>
This commit is contained in:
zizi 2026-06-16 12:17:09 +00:00
parent eb3b3a162d
commit 45ec5cc6c3

View File

@ -0,0 +1,66 @@
# 消费侧钱包最小闭环 · 评审版HJ-PAYWALLET-001
> 性质:评审版(结论先行,供创始人 go/no-go。日期2026-06-16 ownerL0
> 触发创始人问「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
```mermaid
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 自带 Flywaypay_* 新表,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. **会员订阅**确认本波 outv2.0?