服务端验证结果
此方式适用于:
合作伙伴服务端生成签名,并调用身份证识别服务端查询结果,鉴权完成后返回结果(服务端上传 order_no 和 WBappid 查询)。
合作方后台生成签名
准备步骤
前置条件:请合作方确保 SIGN ticket 已经正常获取,获取方式见 SIGN ticket 获取 。
合作方为身份证 OCR 识别服务生成签名,需要具有以下参数:
参数 | 说明 | 来源 |
appId | 业务流程唯一标识 | |
order_no | 订单号,字母/数字组成的字符串,本次人脸核身合作伙伴上传的订单号,唯一标识 | 合作方自行分配,不要带有特殊字符 |
version | 默认值:1.0.0 | - |
ticket | 合作伙伴服务端缓存的 ticket,注意是 SIGN 类型 | 获取方式见 SIGN ticket 获取 |
nonceStr | 32位随机字符串,字母和数字 | 合作方自行生成,不要带有特殊字符 |
基本步骤
1. 生成一个32位的随机字符串 nonceStr(其为字母和数字,登录时也要用到)。
2. 将 appId、order_no、version、ticket、nonceStr 共5个参数的值进行字典序排序。
3. 将排序后的所有参数字符串拼接成一个字符串。
4. 将排序后的字符串进行 SHA1 编码,编码后的40位字符串作为签名(sign)。
注意
身份证 OCR 识别结果查询接口
请求
请求URL:
https://kyc1.qcloud.com/api/server/getOcrResult
请求方法:GET
请求参数:
参数 | 说明 | 类型 | 长度(字节) | 是否必填 |
app_id | String | 腾讯服务分配 | 是 | |
order_no | 订单号,字母/数字组成的字符串,合作方订单的唯一标识 | String | 32 | 是 |
get_file | 是否需要获取身份证 OCR 图片文件。 值为1则返回文件;其他则不返回 | String | 1 | 否 |
nonce | 随机数 | String | 32 | 是 |
version | 版本号,默认值:1.0.0 | String | 20 | 是 |
sign | 签名值,使用本页第一步生成的签名 | String | 40 | 是 |
get_native | 是否需要映射身份证号籍贯信息,值为1则返回映射信息 | String | 1 | 否 |
请求示例:
https://kyc1.qcloud.com/api/server/getOcrResult?app_id=xxx&nonce=xxx&order_no=xxx&version=1.0.0&sign=xxx&get_file=xxxx
响应
响应参数:
参数 | 类型 | 说明 |
frontCode | String | “0” 说明人像面识别成功 |
backCode | String | “0” 说明国徽面识别成功 |
orderNo | String | 订单编号 |
name | String | frontCode为 0 返回:证件姓名 |
sex | String | frontCode为 0 返回:性别 |
nation | String | frontCode为 0 返回:民族 |
birth | String | frontCode为 0 返回:出生日期(例:19920320) |
address | String | frontCode为 0 返回:地址 |
idcard | String | frontCode为 0 返回:身份证号 |
validDate | String | backCode为 0 返回:证件的有效期(例:20160725-20260725) |
authority | String | backCode为 0 返回:发证机关 |
frontPhoto | Base 64 String | 人像面照片,转换后为 JPG 格式 |
backPhoto | Base 64 String | 国徽面照片,转换后为 JPG 格式 |
frontCrop | Base 64 String | 人像面切边照片,切边图在识别原图少边或者存在遮挡的情况有小概率可能会导致切图失败,该字段会返回空;如切边图为空时建议可使用原图替代 |
backCrop | Base 64 String | 国徽面切边照片,切边图在识别原图少边或者存在遮挡的情况有小概率可能会导致切图失败,该字段会返回空;如切边图为空时建议可使用原图替代 |
headPhoto | Base 64 String | 身份证头像照片 |
frontWarnCode | String | 人像面告警码,在身份证有遮挡、缺失、信息不全时会返回告警码;当 frontCode 为0时才会出现告警码,告警码的含义请参考 身份证 OCR 错误码 |
backWarnCode | String | 国徽面告警码,在身份证有遮挡、缺失、信息不全时会返回告警码;当 backCode 为0时才会出现告警码,告警码的含义请参考 身份证 OCR 错误码 |
operateTime | String | 做 OCR 的操作时间(例:2020-02-27 17:08:03) |
frontMultiWarning | String | 正面多重告警码,含义请参考 身份证 OCR 错误码 |
backMultiWarning | String | 反面多重告警码,含义请参考 身份证 OCR 错误码 |
frontClarity | String | 正面图片清晰度 |
backClarity | String | 反面图片清晰度 |
nativePlace | String | 籍贯信息 |
响应示例:
{"code":"0","msg":"请求成功","bizSeqNo":"21062120001184438417355807876765","result":{"bizSeqNo":"21062120001184438417355807876765","transactionTime":"20210621173558","backCode":"0","orderNo":"h1jw98k72ffe3de249qmf1723673v31v","name":"xxx","sex":"男","nation":"汉","birth":"19881001","address":"xxxxxxxxxx","idcard":"xxxxxxxxxxxxxxxxxx","validDate":"20190128-20390128","authority":"xxxxxx","operateTime":"2021-06-21 17:35:27","frontWarnCode":"00000000","backWarnCode":"00000000","frontMultiWarning":"00000000","backMultiWarning":"00000000","frontClarity":"64","backClarity":"72","nativePlace":"xxxxxxxxxx","success":false,"frontCode":"0"},"transactionTime":"20210621173558"}
注意
身份证照片信息作为存证,合作伙伴可以通过此接口拉取识别结果和文件,需要注意请求参数的 get_file 需要设置为 1;如果不上传参数或者参数为空,默认不返回照片信息。为确保用户操作整体流程顺利完成,部分情况下获取照片会有1秒左右的延迟。
照片均为 Base64 位编码,其中照片解码后格式一般为 JPG。
对于身份证 OCR 识别有部分遮挡、缺失、信息不全的情况,请参考 frontWarnCode 和 backWarnCode,详情请参见 身份证 OCR 错误码。
success:false 无意义,合作伙伴可忽略,无需处理。