Files
suixinkan_uikit/docs/账号注销后端接口需求-简洁版.md
T

3.8 KiB

账号注销后端接口需求(简洁版)

本方案已被替代: 2026-08-28 确认改用旧接口实现当前门店身份注销,不再实施主账号注销。参见 门店身份注销接入说明。下文仅为历史记录。

当前 iOS 已有注销页面和本地 Mock 流程,需要后端提供真实能力。以下路径为建议,可复用已有等价接口。

1. 需要的接口

统一前缀:/api/app/account-deletion

接口 入参 需要返回
GET /precheck 注销核验 无,以 Token 识别主账号 钱包、作品与相册、项目、云盘资产;脱敏手机号;注销影响说明;是否可注销及阻断原因;核验标识和有效期
POST /send-sms-code 发送验证码 无,发送至主账号绑定手机号 验证码会话标识、有效秒数、重发间隔;不返回验证码
POST /submit 提交申请 核验标识、验证码会话及验证码、资产确认项、说明版本、幂等请求 ID 申请 ID、状态、提交时间、计划注销时间
GET /status 查询状态 无,以有效身份凭证识别主账号 当前状态、申请信息、能否取消、服务端时间
POST /cancel 取消申请 申请 ID,使用恢复专用凭证 取消结果、新登录临时 Token、当前可选景区/门店身份

沿用现有 token 请求头和 code/msg/data 响应结构,成功码为 100000。错误需区分:注销条件不满足、核验过期、验证码错误/过期/限流、已有申请、超过取消期限、凭证失效。

2. 现有登录与鉴权需要配合

  • 修改 POST /api/app/v9/login:身份验证通过后,正常账号按原流程登录;冷静期账号返回注销信息及短时恢复专用 Token,等待用户确认;已到期或已注销账号禁止登录。
  • 恢复专用 Token 只能查询状态和取消绑定申请,不能访问业务接口。用户点击“恢复账号并登录”才调用取消接口,重新登录本身不能自动取消注销。
  • /api/app/v9/set-user、刷新凭证及统一鉴权必须检查主账号状态,防止旧 Token、旧版本或其他设备绕过限制。取消成功后签发新凭证,不恢复旧 Token。

3. 必须保证的业务规则

  1. 注销范围: 手机号登录对应的主账号及其关联身份,由后端从凭证识别;不接受客户端指定任意手机号或用户 ID,不删除景区、门店实体或他人的共享资产。
  2. 提交校验: 后端再次检查验证码、资产确认及未完成业务;重复提交不能生成多个申请或延长冷静期。
  3. 七天冷静期: 截止时间由后端返回和判断,截止前可取消,恰好到期即不可取消;取消与到期任务必须互斥。
  4. 会话限制: 提交成功立即禁止该主账号全部设备的业务访问;客户端清理登录态。提交超时不能直接视为失败,应重新验证身份后查询结果。
  5. 到期处理: 后端自动执行,不依赖 App 在线;冷静期内不做不可逆删除,处理失败可重试,实际处理完成后才标记已注销。

建议状态:none 无申请、pending 冷静期、canceled 已取消、processing 到期处理中、completed 已完成。

4. 请后端与产品确认

  • 余额、冻结款、提现中、未完成订单、线下未补缴款和负责人身份是否阻断注销,如何处理。
  • 个人资产、共享资产、客户已购内容和交易记录分别删除、保留还是移交;注销后同手机号能否重新注册。
  • 最终接口字段和错误码、短信频控、七天是否按 168 小时计算,以及测试账号、到期测试方式和可联调时间。

当前 Mock 的固定验证码和“放弃资产”文案仅用于演示,不能直接作为真实业务规则。