11
Some checks failed
CI / verify (push) Has been cancelled

This commit is contained in:
2026-04-16 21:47:20 +08:00
parent 2456c10c63
commit 09d4c0c31b
79 changed files with 11873 additions and 2341 deletions

View File

@@ -0,0 +1,209 @@
# “我的”Tab 会员中心与充值 PRD
更新时间:`2026-04-16`
## 0. 目标
把顶部“会员充值”按钮落成正式可运营的会员中心最小闭环,首期只解决三件事:
1. 看清当前会员状态
2. 购买或续费会员
3. 理解会员能得到的实际权益
会员中心不做复杂商城,不做满屏促销文案,保持轻量、清爽、可直接支付。
---
## 1. 当前现状与问题
当前页面已有“会员充值”按钮,但本质上还是视觉占位,缺少:
1. 会员等级定义
2. 权益结构
3. 订单与支付状态
4. 到期时间与续费逻辑
这样会导致按钮可见但不可运营。
---
## 2. 本期范围
## 2.1 本期要做
1. 会员中心弹窗/抽屉
2. 当前会员状态展示
3. 可购买套餐展示
4. 下单与支付状态查询
5. 充值成功后的权益生效
## 2.2 本期不做
1. 积分商城
2. 限时活动页
3. 礼包组合购
4. 多级会员体系
---
## 3. 会员定义
首期只保留两种状态:
1. `普通用户`
2. `叙世会员`
会员权益首期建议控制在直接可编码的范围:
1. 每日额外叙世币领取额度
2. 高级世界模板或创作槽位
3. 更高的云存档上限
4. 会员专属标识
权益必须都是能被后端明确判定和下发的,不允许先写模糊营销描述。
---
## 4. 详细设计
## 4.1 入口与打开方式
点击“会员充值”按钮后:
1. 打开会员中心抽屉
2. 顶部显示当前会员状态
3. 中部显示权益卡片
4. 底部显示套餐与购买按钮
## 4.2 页面内容
页面展示模块:
1. 当前状态
2. 到期时间
3. 可用权益
4. 套餐列表
5. 最近订单状态
不展示:
- 大段充值说明
- 复杂规则 FAQ
- 无法立即购买的灰色功能墙
## 4.3 套餐结构
首期套餐建议:
1. `月卡`
2. `季卡`
3. `年卡`
每个套餐展示:
- 套餐名
- 价格
- 到账权益
- 生效周期
## 4.4 支付状态
订单状态至少支持:
- `pending`
- `paid`
- `failed`
- `closed`
- `refunded`
支付成功后:
1. 刷新会员状态
2. 刷新叙世币余额
3. 刷新权益标签
---
## 5. 后端设计
## 5.1 数据模型
建议新增:
### `membership_products`
- `product_id`
- `product_name`
- `duration_days`
- `price_cents`
- `status`
- `benefit_json`
### `user_memberships`
- `user_id`
- `membership_type`
- `started_at`
- `expires_at`
- `status`
### `membership_orders`
- `order_id`
- `user_id`
- `product_id`
- `amount_cents`
- `order_status`
- `payment_channel`
- `paid_at`
- `created_at`
## 5.2 接口
### `GET /api/membership/center`
返回:
- 当前会员状态
- 到期时间
- 套餐列表
- 权益列表
- 最近订单摘要
### `POST /api/membership/orders`
入参:
- `productId`
- `paymentChannel`
出参:
- `orderId`
- `payParams`
- `orderStatus`
### `GET /api/membership/orders/:orderId`
用途:
- 查询支付结果
---
## 6. 前端实现要求
1. 会员中心复用现有模态层,不新增独立系统页
2. 移动端默认单列套餐卡片
3. 支付中状态不能重复点单
4. 支付成功后从后端重新拉取状态,不靠前端假更新
---
## 7. 验收标准
1. 普通用户能看到可买套餐
2. 已开通会员能看到当前到期时间
3. 支付成功后权益立即生效
4. 续费不会覆盖错误时间
5. 没有空按钮和假入口