spec.md 6.6 KB

identity-ocr-face Specification

Purpose

定义 PRI-MP-USER-003 实名认证、证件 OCR、人脸列表与人脸采集能力。OCR、实名核身和人脸保存须严格使用旧版字段与交互顺序,并由用户明确确认后执行。

Requirements

Requirement: REQ-USER-003-01 USER-003 实名 OCR 人脸能力

系统 MUST 按 PRI-MP-USER-003 上下文包、功能点专项矩阵和集成队列裁定口径实现本模块能力,并保留跨模块契约、真实接口边界和人工联调边界。

  • 历史追溯:本模块最初从 develop@9a529fc 的 feature/PRI-MP-USER-003-identity-ocr-face 分支开发;该记录不构成当前业务或验收要求。
  • MUST:覆盖当前模块功能点专项矩阵,并对每个功能点给出已实现、暂缓、划归其他模块、待确认或不属于本模块的结论。
  • MUST:记录契约与依赖闭环,未完成依赖必须使用待开放、禁用态或安全兜底。
  • MUST:自检报告包含新版设计基线、旧源码功能基线、视觉布局基线、真实接口与禁止模拟业务数据检查。
  • MUST:提交待集成时列出共享文件清单、固定检查结果和人工联调项。
  • MUST NOT:子 Agent 自行合并或推送 develop。
  • MUST NOT:使用 mock、本地假接口、硬编码业务返回或静态业务数据替代真实接口。
  • MUST NOT:在页面加载、显示、回跳或刷新时自动触发真实支付、医保、退款、订单创建、预约提交、实名/OCR/人脸、IM/TRTC 等高风险写操作;真实写操作必须通过用户确认、授权和旧版接口字段校验。

Scenario: 模块提交待集成

  • Given PRI-MP-USER-003 模块开发完成
  • When 子 Agent 提交待集成材料
  • Then OpenSpec strict、功能点矩阵闭环、契约与依赖闭环、共享文件清单、禁止 mock/硬编码扫描、人工联调项和固定检查结果 MUST 齐全。

Requirement: REQ-USER-003-02 实名认证入口与上下文承接

系统 MUST 在“我的”页提供实名认证与人脸识别入口,并基于当前登录态、医院上下文和当前就诊人生成受控参数,不得绕过 USER-002 就诊人维护契约。生产页面仅可渲染最小化、非敏感状态;不得渲染身份证号、手机号、openID、验证码、就诊人标识、完整请求对象或本地证件图片路径。

Scenario: 从我的页进入实名认证

  • Given 用户已登录、已选择医院并存在当前就诊人
  • When 用户点击“实名认证”
  • Then 系统 MUST 进入 pages/mine/identity/identityVerify/identityVerify
  • And 页面 MUST 仅展示实名资料就绪、待补齐或人工联调边界等最小化状态,不得展示当前就诊人、医院、手机号或身份证字段值。

Scenario: 当前上下文不足

  • Given 用户未登录、未选择医院或未选择当前就诊人
  • When 用户点击实名认证或人脸识别入口
  • Then 系统 MUST 使用 toast 提示补齐前置条件
  • And 系统 MUST NOT 发起 OCR、实名核身或人脸接口调用。

Requirement: REQ-USER-003-03 OCR 与实名核身受控契约

系统 MUST 按旧源码真实链路提供 OCR、短信验证码与实名核身能力。生产页面只可显示证件已选择、未选择、资料待补齐和执行结果等最小化状态;不得展示 OCR 或实名核身完整参数、验证码、openID、证件号、手机号或本地临时文件路径。

Scenario: 选择证件图片

  • Given 用户进入实名认证页面
  • When 用户选择证件图片
  • Then 系统 MUST 仅记录本地临时图片路径作为未上传的页面控制状态,并仅展示非敏感的“证件图片已选择”状态
  • And 系统 MUST NOT 渲染路径、图片元数据或 01020017 请求参数
  • And 系统 MUST NOT 自动调用 wx.uploadFile 或上传证件图片。

Scenario: 用户确认后执行 OCR 与实名核身

  • Given 当前医院、就诊人、证件图片和必要身份字段有效
  • When 用户在页面明确确认识别或实名核验
  • Then 系统 MUST 按旧源码顺序使用图片上传、01020017、01020014、01020015、01020023 执行对应真实链路
  • And 系统 MUST 在缺少用户确认或必要业务字段时拒绝提交,不得以 mock 或静态成功替代服务端结果。

Requirement: REQ-USER-003-04 人脸列表、采集准备与接口冲突闭环

系统 MUST 提供人脸列表和采集页面,并按旧源码顺序执行 88030003、相机拍照、88010021、88030002。页面只能展示采集准备、处理、保存与失败状态;不得展示采集前校验、图片处理或保存的完整参数对象,也不得渲染 openID、身份证号、手机号、验证码、就诊人标识或本地图片路径。

Scenario: 查询人脸列表

  • Given 用户进入人脸识别列表页面
  • When 当前上下文可用
  • Then 系统 MAY 调用只读接口 88030001 查询人脸列表
  • And 系统 MUST 对空列表、网络错误和业务错误提供页面态兜底。

Scenario: 用户确认采集人脸

  • Given 当前医院和就诊人信息有效
  • When 用户点击开始采集并明确确认
  • Then 系统 MUST 依次执行 88030003 患者校验、相机拍照、88010021 图片处理和 88030002 人脸保存
  • And 系统 MUST NOT 渲染这些接口的请求对象或任何敏感参数
  • And 用户未确认、取消相机或必要字段缺失时系统 MUST 停止后续步骤并显示真实失败状态。

Scenario: 接口语义冲突

  • Given 旧源码与接口材料对 88010021 和 88030002 语义存在不一致
  • When 系统展示或封装人脸能力
  • Then 系统 MUST 记录 88010021 暂按人脸图片处理/转换理解、88030002 暂按人脸采集保存理解
  • And 最终语义 MUST 列入真机人工联调裁定。

Requirement: REQ-USER-003-05 实名与人脸二级页响应式布局

实名认证、人脸列表和人脸采集页 MUST 在微信原生导航栏下保持单一导航层级,且固定底部操作区 MUST 在小屏和安全区设备上无横向溢出、屏外按钮或内容遮挡。

Scenario: 实名认证页显示四个操作

  • GIVEN 用户进入实名认证页
  • WHEN 页面渲染选择证件图片、识别身份证、拍照实名核验和人脸识别四个操作
  • THEN 四个操作 MUST 以两列等宽布局完整显示
  • AND 任一按钮 MUST NOT 被推出可见区域或遮挡页面内容。

Scenario: 人脸页使用原生导航

  • GIVEN 页面 JSON 已配置微信原生导航标题
  • WHEN 用户进入人脸列表或采集页
  • THEN 页面 MUST NOT 重复渲染页内返回按钮和同名导航标题
  • AND 刷新操作 MUST 保留为尺寸受控的内容操作。