209
docs/prd/MY_TAB_MEMBERSHIP_CENTER_PRD_2026-04-16.md
Normal file
209
docs/prd/MY_TAB_MEMBERSHIP_CENTER_PRD_2026-04-16.md
Normal 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. 没有空按钮和假入口
|
||||
Reference in New Issue
Block a user