跳到主要内容

人脸实名认证

1. 接口介绍

基于用户授权,将用户姓名、身份证号和现场采集的人脸图像,与权威数据源进行比对,判断用户身份真实性,防止身份信息被顶替、冒用。

1.1 接入指南

  1. 联系客户经理开通账号
  2. 同客户经理沟通详细需求与审核标准。根据您的需求,客户经理将为您开通对应的应用(SID)
  3. 访问控制台 - 数字证书 获取用于接口鉴权的 API Key
  4. 查阅下方的接口参数文档,了解如何构建请求以及如何解析响应数据
  5. 使用 示例资源 调用接口,进行调试和测试
  6. 查阅 审核场景汇总结果说明,了解如何通过汇总结果判断内容是否违规,以及如何解析汇总结果
  7. 添加异常处理逻辑,以处理可能出现的错误和异常情况,增强代码的健壮性和稳定性

如果在接入过程中遇到任何技术问题,请联系客户经理以获取帮助。

1.2 v3.1 版本特性

v3.1 版本通过 image 参数传输图片数据,通过 video 参数传输视频数据,通过 fileType 参数指定输入文件类型(URL 或 Base64),支持图片和视频两种认证方式,相比传统的图片认证方式,视频认证能够更好地进行活体检测,提高身份验证的安全性。新版本支持以下功能:

  • 通过 image 参数传输图片数据,通过 video 参数传输视频数据
  • 通过 fileType 参数指定数据传输方式(URL 或 Base64)
  • 通过视频进行更准确的活体检测
  • 支持用户录制动态视频进行身份验证
  • 支持多种主流图片和视频格式
  • 提供更安全的身份验证机制

2. 请求

2.1 请求地址

区域请求地址
国内https://api.open.tuputech.com/v3.1/recognition/face/verify/<secretId>
国外https://api-oversea.open.tuputech.com/v3.1/recognition/face/verify/<secretId>
提示

<secretId> 需替换为您的应用 SID,请联系客户经理为您开通及配置。关于 SID 详见 常见问题(FAQ)

2.2 请求方法

POST

2.3 请求头

请求头名称取值是否必需示例说明
Content-Typeapplication/jsonContent-Type: application/json请求数据类型为 JSON
X-API-Key<API Key>X-API-Key: <API Key>API Key 用于接口鉴权。请访问控制台 - 数字证书 获取 API Key

2.4 超时时间及异常处理

建议配置超时时间 3 秒,在 HTTP 响应状态码非 200 或业务状态码不为 0 时进行重试。

危险

由于模型基于请求流量动态伸缩,在空闲一定时间后会关闭(部分专用模型空闲一定时间后会关闭全部实例)。 由于模型冷启动耗时较长,部分请求可能无法处理,最终返回非 200 HTTP 状态码或业务状态码 101。该现象可能在以下情况下出现:

  • 初次请求
  • 长时间未调用后再次请求
  • 请求流量突增
  • 请求存在规律性的流量波动(例如每隔超过 5 分钟请求一批数据,或仅在工作日期间有大量请求)

针对以上情况,我们分别建议您:

  • 间隔 2~3 分钟后重试
  • 间隔 2~3 分钟后重试,并且后续保持至少每分钟 1 次调用
  • 提前进行预热,或及时联系我们扩容
  • 调整业务请求时间间隔到 5 分钟内,或联系我们调整实例保持策略。若您的业务仅在工作日期间有大量请求,节假日期间较少,请务必联系我们

2.5 请求参数说明 🔥

参数名称类型是否必需说明
imageString图片链接或 base64 字符串
videoString视频链接或 base64 字符串
fileTypeString输入文件类型,可选值:urlbase64

1. 当为 base64 时,请将图片或视频数据编码为 base64 字符串(不包含 data:image/png;base64,data:video/mp4;base64, 前缀)
nameString姓名
idNoString身份证号码
timestampInt当前服务器的 Unix 时间戳。

当前已废弃,仅保持兼容(采用该鉴权方式的调用不受影响)。新接入请使用 API Key 接口鉴权
nonceFloat随机数(建议使用 Unix 时间戳或若干位随机整数)。

当前已废弃,仅保持兼容(采用该鉴权方式的调用不受影响)。新接入请使用 API Key 接口鉴权
signatureString

RSA-SHA256 算法签名。

当前已废弃,仅保持兼容(采用该鉴权方式的调用不受影响)。新接入请使用 API Key 接口鉴权。

签名步骤:

  1. 将参与签名的参数(secretIdtimestampnonce)用英文半角逗号 , 拼接,得到 SignString
  2. 使用您的私钥以 RSA-SHA256 算法对 SignString 签名,然后进行 Base64 编码,得到 signature 字符串。
  • 点击 数字证书 下载私钥。私钥有 rsapkcs8 两种格式,通常 Golang,Python 使用 rsa 格式私钥,Java 使用 pkcs8 格式私钥
  • 点击 签名及验证示例 查看签名方式及示例

2.6 请求示例

图片链接认证请求示例

{
"image": "<图片链接>",
"fileType": "url",
"name": "<姓名>",
"idNo": "110101199001011234"
}

图片Base64认证请求示例

{
"image": "<图片Base64编码>",
"fileType": "base64",
"name": "<姓名>",
"idNo": "110101199001011234"
}

视频链接认证请求示例

{
"video": "<视频链接>",
"fileType": "url",
"name": "<姓名>",
"idNo": "110101199001011234"
}

视频Base64认证请求示例

{
"video": "<视频Base64编码>",
"fileType": "base64",
"name": "<姓名>",
"idNo": "110101199001011234"
}

3. 返回结果

3.1 响应参数说明 🔥🔥

参数名称类型说明
signatureString

同步响应或回调请求签名,由图普使用私钥签名,在需要时,您可以通过 图普公钥 进行验签以确保此响应内容来自图普(与您调用接口时使用的公私钥不同)。验签步骤:

  1. json 字段内容为 SignString
  2. signature 字段内容进行 Base64 解码,得到 RawSignature
  3. 使用图普公钥以 SHA256 算法验证 RawSignatureSignString
jsonString

同步响应或回调请求经过 JSON 转义后的字符串,需进一步解析得到业务数据。

  • 字段内容示例:{\"code\":0, \"message\":\"success\"}
  • 字段详见下述 JSON 参数说明
  • 为方便展示,同步响应及回调请求的示例中,均为解析后的 JSON

JSON 参数说明

字段类型是否必需说明
codeInt状态码,详见 业务状态码
messageString状态信息
labelInt结果标签,详见 返回标签说明
rateFloat标签置信度,取值在 0.0 - 1.0 之间
reviewBoolean是否复审
featureIdString人脸特征 ID,已废弃。认证通过时返回,如 6da8741182ccbfb9084a7e7c4bffe144
timestampInt当前服务器的 Unix 时间戳
nonceFloat随机数

3.2 返回标签说明 🎯

Label 值说明
-1模型错误
0认证通过
1认证不通过:人脸质量不符合要求
2认证不通过:非活体
3认证不通过:实名认证失败
4身份证号格式错误
5名字格式错误
6身份证号和名字不匹配

3.3 响应示例 🔥🔥🔥

{
"code": 0,
"message": "success",
"label": 0,
"rate": 1,
"review": false,
"nonce": 1685000000,
"timestamp": 1685000000
}

4. 更新日志

日期说明
2025-12-29新增 v3.1 版本,支持视频文件或视频链接方式的人脸实名认证
2025-12-26新增国外接口地址
2025-09-18调整文档内容