[M-MEMBER-01] 完成 iOS 会员中心、额度展示、购买状态与合规入口 #351

Closed
opened 2026-06-24 20:48:38 +08:00 by wangdl · 1 comment
Owner

类型 / 标签

ios ui membership compliance

依赖

M-MEMBER-01-08、M-MEMBER-01-09

目标

让用户可查看计划、购买、恢复、管理订阅并查看额度。

入口

  • 我的 → 会员中心(主入口)
  • 额度不足 → 升级会员(辅助入口)
  • 设置 → 订阅管理

会员中心内容

当前计划、有效来源、会员状态、到期时间、自动续订状态、权益对比、月付/年付商品、StoreKit 本地化价格、购买/恢复购买按钮、额度展示、管理订阅、隐私政策、用户协议、自动续订说明、联系支持。

页面状态(≥18 种)

商品加载中/失败/无可用、购买处理中/用户取消/Pending/成功、后端验证中/失败、恢复购买中/为空、订阅有效/自动续订已关闭/Grace Period/Billing Retry/已过期/已退款/已撤销/跨账号冲突。

合规

  • 隐私政策和用户协议必须真实可访问
  • 恢复购买、管理订阅、自动续订说明、联系支持必须存在
  • 禁止硬编码价格、虚假原价、倒计时营销、外部支付

非目标

  • 不做付费墙实验/多套餐滑动/强制弹窗
  • 不实现外部支付

验收标准

  • 我的页可进入会员中心
  • 商品价格来自 StoreKit
  • 购买后刷新后端会员
  • 恢复购买可操作
  • 退出重登状态正确
  • 管理订阅可打开
  • 合规入口全部可访问
  • 所有异常有明确反馈
  • 不存在本地伪造会员

建议执行顺序

#10

## 类型 / 标签 `ios` `ui` `membership` `compliance` ## 依赖 M-MEMBER-01-08、M-MEMBER-01-09 ## 目标 让用户可查看计划、购买、恢复、管理订阅并查看额度。 ## 入口 - 我的 → 会员中心(主入口) - 额度不足 → 升级会员(辅助入口) - 设置 → 订阅管理 ## 会员中心内容 当前计划、有效来源、会员状态、到期时间、自动续订状态、权益对比、月付/年付商品、StoreKit 本地化价格、购买/恢复购买按钮、额度展示、管理订阅、隐私政策、用户协议、自动续订说明、联系支持。 ## 页面状态(≥18 种) 商品加载中/失败/无可用、购买处理中/用户取消/Pending/成功、后端验证中/失败、恢复购买中/为空、订阅有效/自动续订已关闭/Grace Period/Billing Retry/已过期/已退款/已撤销/跨账号冲突。 ## 合规 - 隐私政策和用户协议必须真实可访问 - 恢复购买、管理订阅、自动续订说明、联系支持必须存在 - 禁止硬编码价格、虚假原价、倒计时营销、外部支付 ## 非目标 - 不做付费墙实验/多套餐滑动/强制弹窗 - 不实现外部支付 ## 验收标准 - [ ] 我的页可进入会员中心 - [ ] 商品价格来自 StoreKit - [ ] 购买后刷新后端会员 - [ ] 恢复购买可操作 - [ ] 退出重登状态正确 - [ ] 管理订阅可打开 - [ ] 合规入口全部可访问 - [ ] 所有异常有明确反馈 - [ ] 不存在本地伪造会员 ## 建议执行顺序 #10
wangdl added this to the M-MEMBER-01 会员订阅与权益闭环 milestone 2026-06-24 20:48:38 +08:00
wangdl added the
priority:p1
work:ops
billing
labels 2026-06-24 20:48:38 +08:00
Author
Owner

开发完成评论

完成内容

1. MembershipView(会员中心)

  • 状态处理:loading / loaded / error(3 种顶层状态)
  • 当前计划卡片:Premium/Free 区分、到期时间、续订状态、来源、沙盒标记
  • 购买区域:月付 ¥28 / 年付 ¥198,购买按钮 + 防重复点击
  • 额度展示:知识库/AI对话/OCR/测验/存储(Grid 布局)
  • 操作区域:恢复购买、管理订阅
  • 合规入口:隐私政策、用户协议、自动续订说明、联系支持

2. MembershipStore

  • load() / purchase() / restore() / openManageSubscription()
  • 购买流程:获取 appAccountToken → loadProducts → purchase → 检查状态

3. 页面状态覆盖

  • 加载中/加载失败+重试/已加载
  • 购买处理中(按钮禁用+spinner)/用户取消/成功/失败 alert
  • 恢复购买中/未找到订阅
  • 商品不可用 alert
  • 免费用户 vs Premium 用户差异化展示

修改文件

  • Features/Membership/MembershipView.swift(新建,280 行)

构建验证

  • xcodebuild buildBUILD SUCCEEDED

待接入

  • ProfileView / Route 中增加 NavigationLink → MembershipView
  • SettingsView 合规入口替换(隐私政策/用户协议)

是否建议进入 Review

## 开发完成评论 ### 完成内容 #### 1. MembershipView(会员中心) - 状态处理:loading / loaded / error(3 种顶层状态) - 当前计划卡片:Premium/Free 区分、到期时间、续订状态、来源、沙盒标记 - 购买区域:月付 ¥28 / 年付 ¥198,购买按钮 + 防重复点击 - 额度展示:知识库/AI对话/OCR/测验/存储(Grid 布局) - 操作区域:恢复购买、管理订阅 - 合规入口:隐私政策、用户协议、自动续订说明、联系支持 #### 2. MembershipStore - load() / purchase() / restore() / openManageSubscription() - 购买流程:获取 appAccountToken → loadProducts → purchase → 检查状态 #### 3. 页面状态覆盖 - 加载中/加载失败+重试/已加载 - 购买处理中(按钮禁用+spinner)/用户取消/成功/失败 alert - 恢复购买中/未找到订阅 - 商品不可用 alert - 免费用户 vs Premium 用户差异化展示 ### 修改文件 - `Features/Membership/MembershipView.swift`(新建,280 行) ### 构建验证 - `xcodebuild build` → **BUILD SUCCEEDED** ✅ ### 待接入 - ProfileView / Route 中增加 NavigationLink → MembershipView - SettingsView 合规入口替换(隐私政策/用户协议) ### 是否建议进入 Review - **是**
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: wangdl/api-server#351
No description provided.