S
ShortPro · Design v3

Face Verification.

人脸验证弹窗流程 · 极简版

提现随机触发的人脸核验流程。共 5 个状态:触发弹窗、一体化验证、成功、失败、冻结。引导/采集/验证过程合并为一个连续页面,用户点击"立即验证"后全程无需额外交互,直到返回成功或失败。2 次失败后冻结提现,仅人工客服可处理。

5 STATES · MOBILE · ZH
v3.0 · MERGED CAPTURE · CS-ONLY UNLOCK
整体流程 · 5 个状态
① 触发弹窗
② 一体化验证
引导 + 采集 + 验证中
③ 验证成功 → 继续提现
↓ 失败
④ 验证失败(剩 1/2)
↺ 回到 ②
↓ 再失败
⑤ 冻结 · 仅客服可解
01 / 主 流 程

触发 → 验证(一体化)→ 成功

状态 01 · 触发
请完成人脸验证
Trigger
9:41●●● 5G ▮▮▮
提现
金币余额
2,480,000
约合 ¥ 1,765.20
提现金额¥ 200.00
到账方式支付宝 · 尾号 8821
手续费¥ 0.00
立即提现
v3 保留 触发弹窗沿用。点击"立即验证"后系统唤起相机权限(首次使用),权限通过后直接进入 State 02 一体化验证页,不再有中间引导步骤。
状态 02 · 一体化验证
验证进行中(3 合 1)
Unified capture + liveness + matching
人脸验证
活体检测中
☼ 保证光线充足
⊘ 摘下遮挡物
请按提示完成动作
请缓慢向左转头
v3 合并 原"采集引导 + 相机采集 + 验证中"三个页面合为一个。用户视角:点击"立即验证"→ 直接开相机 → 自动引导完成动作 → 自动上传比对 → 直接出结果,全程无需手动点击下一步。
3 段进度条含义:① 人脸检测(定位)→ ② 活体动作(转头/眨眼)→ ③ 后台比对。动作序列由 SDK 下发,服务端超时 8 秒自动判失败。顶部 chip 提示光线与遮挡要求,2 秒后可自动淡出。
状态 03 · 成功
验证成功
Success · minimal
9:41●●● 5G ▮▮▮
提现
金币余额
2,480,000
约合 ¥ 1,765.20
提现金额¥ 200.00
到账方式支付宝 · 尾号 8821
手续费¥ 0.00
立即提现
v3 改动 已去掉匹配相似度展示。极简 3 元素:绿色对勾 + "验证成功"标题 + 正文 + 主按钮。后端返回 success 即可,不需要把分数传给前端。成功后点击"继续提现"关闭弹窗、解锁主流程"立即提现"按钮。
02 / 异 常 与 冻 结

失败(2 次机会)→ 冻结(仅客服可解)

状态 04 · 失败(第 1 次)
验证未通过
Unified fail
9:41●●● 5G ▮▮▮
v3 保留 匹配失败 / 网络异常 / 权限拒绝 / SDK 错误统一为同一界面。点击"重新验证"直接回到 State 02 重新开始一体化流程。第 2 次再失败则进入 State 05 冻结态。
状态 05 · 冻结
账户暂时冻结
Locked · CS-only
9:41●●● 5G ▮▮▮
v3 改动 已去掉"解冻时间"和"24 小时自动解冻"。冻结策略调整:仅支持客服人工核实后解冻,无自动解冻机制。弹窗内只保留案例编号用于客服快速定位。主按钮"联系客服"直接唤起客服入口(微信、在线客服或拨号)。

触发逻辑与技术要点 · PRD 摘要 v3

相比 v2,v3 进一步合并引导/采集/验证为单一页面;成功态去掉匹配分数的前端展示;冻结态取消自动解冻机制,改为完全人工客服处理。整体状态数从 7 个压缩到 5 个,前后端接口与状态机进一步简化。
TRIGGER · 触发
随机概率 + 风险加权
基础触发率 p = 5–10%。叠加风险因子后可提升至 60–100%:单日提现次数异常、金额显著高于历史均值、新设备或新 IP、最近修改过收款账户、命中黑样本特征。强制触发场景:首次大额提现、距上次人脸核验超过 30 天。
CAPTURE · 采集验证
SDK 一体化流程
前端接入第三方活体 SDK(推荐阿里云实人认证、旷视 FaceID、腾讯云慧眼)。SDK 内部完成人脸定位、动作引导、活体判定、关键帧上传。前端只需监听 SDK 的最终回调:成功 / 失败 / 用户主动取消。服务端超时 8 秒自动降级为失败。
API · 接口设计
极简三态返回
后端 POST /face/verify 返回三种结果:
{ result: "success" } → State 03
{ result: "fail", remaining: 1 } → State 04
{ result: "locked", case_id: "FV-xxx" } → State 05
前端不处理 score,不区分失败原因。
RETRY · 重试策略
2 次机会 → 冻结
失败计数器存储于 Redis,键名 face_fail:{uid},TTL 24 小时。达到 2 次后设置 withdraw_freeze:{uid} 为永久冻结(无 TTL),只能由客服后台手动解除。所有失败类型(匹配、活体、网络、权限、SDK 错误)均计入失败次数,不做区分。
UNLOCK · 解冻流程
仅人工客服处理
冻结后由客服工单系统接管,案例编号 FV-xxx 自动入队。客服后台可查看:用户 KYC 原图、两次人脸采集图、设备信息、IP 信息。客服通过其他方式核实用户身份(电话回访、身份证二次上传等)后手动清除 withdraw_freeze:{uid} 并重置失败计数器。
PRIVACY · 合规
数据最小化
活体视频流不落盘,仅保留当次比对使用的 1 张静态关键帧(供客服复核)。失败用户的采集图保留 30 天(方便客服解冻后复查),成功用户保留 7 天后硬删除。埋点日志中不包含任何 Base64 图像数据。
METRICS · 埋点
核心漏斗
fv_trigger 触发 · fv_start 点击立即验证 · fv_success 通过 · fv_fail 失败(统一计数)· fv_lock 冻结 · fv_cs_unlock 客服解冻。关注 fv_lock → fv_cs_unlock 的比值:客服解冻率若超过 60%,说明 2 次机会的策略误伤较多,需考虑放宽。
RISK · 2 次策略风险提示
客服成本评估
相比 24 小时自动解冻,纯人工解冻会显著增加客服工单量。建议上线前估算:每日提现用户数 × 触发率 × (1 − 首次通过率)2 ≈ 每日冻结单量。若每日冻结超过 50 单,需提前准备客服人力和 SOP。可先在全量前灰度 10% 流量验证客服承载能力。