# 获取人脸核身视频
接口应在服务器端调用,不可在前端(小程序、网页、APP等)直接调用,具体可参考接口调用指南。
接口英文名:getFaceIdentifyVideo
调用方后台根据人脸核身会话唯一标识 verifyId 字段调用 getImage接口拉取本次核身图片。
# 1. 调用方式
# HTTPS 调用
POST https://api.weixin.qq.com/cityservice/face/identify/getvideo?access_token=ACCESS_TOKEN
# 云调用
- 本接口不支持云调用。
# 第三方调用
- 本接口不支持第三方平台调用。
# 2. 请求参数
# 查询参数 Query String Parameters
| 参数名 | 类型 | 必填 | 示例 | 说明 |
|---|---|---|---|---|
| access_token | string | 是 | ACCESS_TOKEN | 接口调用凭证,可使用 access_token |
# 请求体 Request Payload
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| verify_id | string | 是 | jsapi 返回的人脸核身会话唯一标识 |
| out_seq_no | string | 是 | 业务方系统外部流水号,必须和 getVerifyId 接口传入的一致。 |
| cert_hash | string | 是 | 根据 getVerifyId 中传入的证件信息生成的 |
| openid | string | 是 | jsapi 返回的人脸核身会话唯一标识 |
# 3. 返回参数
# 返回体 Response Payload
| 参数名 | 类型 | 说明 |
|---|---|---|
| - | buffer | 成功会直接返回视频文件 |
| errcode | number | 错误码 |
| errmsg | string | 错误描述 |
# 4. 注意事项
- 微信后台校验
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。 - 按顺序拼接各个字段:
cert_type=xxx&cert_name=xxx&cert_no=xxx,即“cert_type=SURFTlRJVFlfQ0FSRA==&cert_name=5byg5LiJ&cert_no=MzEwMTAxMTk5ODAxMDExMjM0”。 - 对拼接串进行 SHA256 并输出十六进小写结果得到 cert_hash,即
3c241f7ff324977aeb91f173bb2a7b06569e6fd784d5573db34a636d8671108b。
- 对
# 5. 代码示例
# 5.1 正确返回
请求示例
{
"verify_id": "xxxxxxxxxxxx",
"out_seq_no": "xxxxxxxxxxxx",
"cert_hash": "xxxxxxxxxxxx",
"openid": "xxxxxxxxxxxx"
}
返回示例
Date: Mon, 06 Feb 2017 07:47:48 GMT
Content-Type: video/jpeg
Content-Length: 129142
Cache-Control: no-cache, must-revalidate
Connection: close
Content-disposition: attachment; filename="${verify_id}.mp4"
[Binary Data Stream / 视频文件流]
# 5.2 错误返回
请求示例
{
"verify_id": "xxxxxxxxxxxx",
"out_seq_no": "xxxxxxxxxxxx",
"cert_hash": "xxxxxxxxxxxx",
"openid": "xxxxxxxxxxxx"
}
返回示例
Date: Mon, 06 Feb 2017 08:05:56 GMT
Content-Type: application/json; encoding=utf-8
Content-Length: 71
Connection: close
{
"errcode" : 84001,
"errmsg" : "invalid identify id hint: [sLqipa0356ss_1]"
}
# 6. 错误码
以下是本接口的错误码列表,其他错误码可参考 通用错误码;调用接口遇到报错,可使用官方提供的 API 诊断工具 辅助定位和分析问题。
| 错误码 | 错误描述 | 解决方案 |
|---|---|---|
| 84010 | 缺少 out_seq_no 参数 | |
| 84016 | 缺少 openid 参数 | |
| 84017 | openid 不匹配 | 必须和 getVerifyId 接口传入的一致 |
| 84018 | cert_hash 无效或不匹配 | 必须与getVerifyId 接口传入的 cert_info 一致 |
| 84020 | out_seq_no不匹配 | 必须和 getVerifyId 接口传入的一致 |
| 84021 | 缺少 verify_id 参数 | |
| 84022 | verify_id 已过期 | verify_id 有效期为 1 小时 |
# 7. 适用范围
本接口暂未明确可调用账号类型,或在业务中根据调用传参自行确定是否可调用,请以实际调用情况为准。