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 保留为尺寸受控的内容操作。