# 查询用户人脸核身真实验证结果
接口应在服务器端调用,不可在前端(小程序、网页、APP等)直接调用,具体可参考接口调用指南。
接口英文名:queryVerifyInfo
业务方后台根据人脸核身会话唯一标识 verifyId 字段调用 queryVerifyInfo 接口查询用户人脸核身真实验证结果。
# 1. 调用方式
# HTTPS 调用
POST https://api.weixin.qq.com/cityservice/face/identify/queryverifyinfo?access_token=ACCESS_TOKEN
# 云调用
- 本接口不支持云调用。
# 第三方调用
- 本接口不支持第三方平台调用。
# 2. 请求参数
# 查询参数 Query String Parameters
| 参数名 | 类型 | 必填 | 示例 | 说明 |
|---|---|---|---|---|
| access_token | string | 是 | ACCESS_TOKEN | 接口调用凭证,可使用 access_token |
# 请求体 Request Payload
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| verify_id | string | 是 | getVerifyId 接口返回的人脸核身会话唯一标识 |
| out_seq_no | string | 是 | 业务方系统内部流水号 |
| cert_hash | string | 是 | 根据证件信息生成 |
| openid | string | 是 | 用户身份标识 |
# 3. 返回参数
# 返回体 Response Payload
| 参数名 | 类型 | 说明 | 枚举 |
|---|---|---|---|
| errcode | number | 错误码 | - |
| errmsg | string | 错误信息 | - |
| verify_ret | number | 人脸核身验证结果 | 枚举值 |
# 4. 枚举信息
# Res.verify_ret Enum
人脸核身验证结果
| 枚举值 | 描述 |
|---|---|
| 90000 | 人脸错误码起始值 |
| 90001 | 设备不支持人脸检测 |
| 90002 | 用户在教程页取消 |
| 90003 | 用户在初始化时取消 |
| 90004 | 用户在识别过程中取消 |
| 90005 | 用户在上传时取消 |
| 90006 | 用户在释放时取消 |
| 90007 | 网络错误 |
| 90008 | 相机权限未授权 |
| 90009 | 麦克风权限未授权 |
| 90010 | 相机和麦克风权限都未授权 |
| 90011 | 人脸数据采集无效 |
| 90012 | 人脸数据上传失败 |
| 90013 | SDK初始化库失败 |
| 90014 | 上传ID未初始化 |
| 90015 | 获取人脸配置失败 |
| 90016 | 预览错误 |
| 90017 | 识别过程超时 |
| 90018 | 系统错误 |
| 90019 | CDN上传添加队列失败 |
| 90020 | CDN上传失败 |
| 90021 | CDN启动错误 |
| 90022 | 获取前置页信息失败 |
| 90023 | 人脸追踪失败 |
| 90024 | 用户在确认页退出 |
| 90025 | 用户在中间页取消 |
| 90030 | 被VoIP通话打断 |
| 90031 | 出框次数过多 |
| 90033 | 相机或麦克风被占用 |
| 90034 | 验证结果保存文件失败 |
| 90035 | 相机打开失败 |
| 90036 | 获取活体配置失败 |
| 90037 | 动作获取识别方式失败 |
| 90038 | 相机开启预览失败 |
| 90050 | 未知错误 |
| 90099 | 错误码最小值 |
| 90100 | 用户取消 |
| 90101 | 权限未授权 |
| 90102 | 库加载失败 |
| 90103 | CDN失败 |
| 90104 | 获取人脸配置失败 |
| 90105 | 获取确认数据失败 |
| 90106 | 相机失败 |
| 90107 | 用户检测超时 |
| 90108 | 用户检测追踪失败 |
| 90109 | 设备不支持人脸检测 |
| 90110 | 获取协议信息失败 |
| 90114 | 用户点击其他验证方式(前置页) |
| 90199 | 用户系统错误 |
| 10000 | 识别成功 |
| 10001 | 参数错误 |
| 10002 | 人脸特征检测失败 |
| 10003 | 身份证号不匹配 |
| 10004 | 公安比对人脸信息不匹配 |
| 10005 | 正在检测中 |
| 10006 | appid 没有权限(后台验证部分) |
| 10007 | 后台获取图片失败 |
| 10008 | 公安系统失败 |
| 10009 | 公安未查到身份证照片比对源 |
| 10010 | 照片质量不满足公安比对要求 |
| 10011 | 身份证信息未开通公安比对权限 |
| 10012 | 征信验证失败 |
| 10013 | 征信系统错误 |
| 10014 | 公安系统失败,征信系统成功 |
| 10015 | 公安服务暂时不可用 |
| 10016 | 存储用户图片失败 |
| 10017 | 非法 identify_ |
| 10018 | 用户信息不存在 |
| 10020 | 认证超时 |
| 10021 | 重复的请求,返回上一次的结果 |
| 10022 | 用户信息错误,请检测 json 格式 |
| 10026 | 用户身份证数据不在公安比对数据库中 |
| 10027 | 语音识别失败 |
| 10028 | 唇动检测失败 |
| 10029 | 微警超时 |
| 10030 | 绑定身份证失败 |
| 10031 | 没有申请征信商户号或公众号/小程序没有设置昵称 |
| 10032 | 用户身份证数据不再征信数据库中 |
| 10040 | 请求数据编码不对,必须是 UTF8 编码 |
| 10041 | 非法 user |
| 10042 | 请求过于频繁,稍后再重试 |
| 10045 | 系统失败 |
| 10052 | 请求数超时征信的限制 |
| 10057 | 检测过程中人脸主体不一致 |
| 10066 | 人脸流水号 bioid 重复 |
| 10069 | 活体检测暂时不可用 |
# 5. 注意事项
微信后台校验 cert_info、openid,不一致则返回对应的 errcode 而不是 verify_ret,防止身份信息被篡改。
核身通过的判断条件:errcode = 0 且 verify_ret= 10000 。
cert_hash 由 cert_info 生成,假设原始
cert_info: {"cert_type":"IDENTITY_CARD","cert_name":"张三","cert_no":"310101199801011234"},其计算规则如下:
对 cert_info 中的 cert_type、cert_name、cert_no 字段内容进行标准 base64(若存在中文等 Unicode 字符,需先进行 UTF-8 编码)。
按顺序拼接各个字段:cert_type=xxx&cert_name=xxx&cert_no=xxx,即“cert_type=SURFTlRJVFlfQ0FSRA==&cert_name=5byg5LiJ&cert_no=MzEwMTAxMTk5ODAxMDExMjM0”。
对拼接串进行 SHA256 并输出十六进小写结果得到 cert_hash,即3c241f7ff324977aeb91f173bb2a7b06569e6fd784d5573db34a636d8671108b。
# 6. 代码示例
请求示例
{
"verify_id": "",
"out_seq_no": "",
"cert_hash": "",
"openid": ""
}
返回示例
{
"errcode": 0,
"errmsg": "",
"verify_ret": 0
}
# 7. 错误码
以下是本接口的错误码列表,其他错误码可参考 通用错误码;调用接口遇到报错,可使用官方提供的 API 诊断工具 辅助定位和分析问题。
| 错误码 | 错误描述 | 解决方案 |
|---|---|---|
| 84010 | 缺少 out_seq_no 参数 | |
| 84016 | 缺少 openid 参数 | |
| 84017 | openid 不匹配 | 必须和 getVerifyId 接口传入的一致 |
| 84018 | cert_hash 无效或不匹配 | 必须与getVerifyId 接口传入的 cert_info 一致 |
| 84019 | out_seq_no 已存在 | 更换新的 out_seq_no |
| 84020 | out_seq_no不匹配 | 必须和 getVerifyId 接口传入的一致 |
| 84021 | 缺少 verify_id 参数 | |
| 84022 | verify_id 已过期 | verify_id 有效期为 1 小时 |
# 8. 适用范围
本接口暂未明确可调用账号类型,或在业务中根据调用传参自行确定是否可调用,请已实际调用情况为准。