身份信息认证接口,用于对身份证信息进行严格的认证,需要用户上传一段带口令的视频--认证过程分为两个步骤:
1. 获取认证的口令和流程单号。
2. 进行身份认证:根据提供的姓名与身份证号码与公安部数据对比,获取对应的身份证上的图片,然后再与上传的视频做对比,判断是否一致。
或者进行身份认证+证书申请
l 请求方式:GET
l 请求URL:请求地址/core/api/get_random_number?token=xxxx
参数名 | 类型 | 可空 | 说明 |
返回值是JSON格式的字符串数据。返回格式如:
参数名 | 类型 | 可空 | 说明 |
success | boolean | 否 | 核验结果 |
msg | String | 否 | 结果描叙 |
code | String | 否 | 结果编号 |
orderno | String | 否 | 流程单号,用于标志一次认证流程 |
obj | Object | 是 | random_number:用于进行活体检测的口令 |
根据提供的姓名与身份证号码与公安部数据对比,获取对应的身份证上的图片,然后再与上传的视频做对比,判断是否一致。
备注:身份信息与视频对象一致
l 请求方式:POST
l 请求URL:请求地址/core/api/livingbody_verify?token=xxxx
参数名 | 类型 | 可空 | 说明 |
idcard_name | String | 否 | 姓名(与上传视频的身份一致) |
idcard_number | String | 否 | 身份证号码(与上传的视频的身份一致) |
orderno | String | 否 | 流程单号(从第一个步骤返回结果中获取,其它无效) |
video | File | 否 | 需用户上传拍摄的人脸视频,拍摄的过程中需要把第一个步骤中返回口令,用普通话读出来,视频要求为ffmpeg所支持的格式及码率,视频时长为3~6秒,视频大小不能超过20M |
return_image_best | String | 是 | 此参数为可选参数,决定了是否返回从视频中截取的最佳质量图像: 0(默认):不需要图像 1:需要返回最佳质量图 (仅当API调用成功后才返回) |
返回值是JSON格式的字符串数据。返回格式如:
参数名 | 类型 | 可空 | 说明 |
success | boolean | 否 | 核验结果 |
msg | String | 否 | 结果描叙 |
code | String | 否 | 结果编号 |
orderno | String | 是 | 流程单号,用于标志一次认证流程 |
obj | String | 是 | 该字段返回身份比对的详细(JSON): Obj对象包含如下字段: image_best: 本字段仅调用成功才返回,返回为将会用于人脸比对的视频中的最佳质量的人脸照片。 return_image_best字段配置为0,或者没有配置,则不返回。 return_image_best字段配置为1,以Base64字符串返回,图像格式为 JPEG。在异常情况下,该字段有可能返回null。 "confidence":比对结果的置信度,Float类型,取值[0,100],数字越大表示两张照片越可能是同一个人。 “thresholds”:一组用于参考的置信度阈值,Object类型,包含三 四个字段,均为Float类型、取值[0,100]: “1e-3”:误识率为千分之一的置信度阈值; “1e-4”:误识率为万分之一的置信度阈值; “1e-5”:误识率为十万分之一的置信度阈值; “1e-6”:误识率为百万分之一的置信度阈值。 请注意:阈值不是静态的,每次比对返回的阈值不保证相同,所以没有持久化保存阈值的必要,更不要将当前调用返回的confidence与之前调用返回的阈值比较。 关于阈值选择,以下建议仅供参考: 阈值选择主要参考两个因素:业务对安全的要求和对用户体验的要求。严格的阈值对应更高的安全度,但是比对通过率会下降,因此更容易出现用户比对多次才通过的情况,用户体验会有影响;较松的阈值带来一次通过率会提升,用户体验更好,但是出现非同一个人的概率会增大,安全性会有影响。请按业务需求偏好慎重选择。 “1e-3”阈值是较松的阈值。如果confidence低于“1e-3”阈值,我们不建议认为是同一个人;如果仅高于“1e-3”阈值,勉强可以认为是同一个人。这个阈值主要针对对安全性相对要求较低的场景(比如在分项业务有独立密码保护的情况下刷脸登陆app),或者原则上安全性要求高、但在一个具体流程里如果发生安全事故后果不严重的场景(比如“转账”场景安全性要求高、但是当前转账的金额很小)。 “1e-5”、“1e-6”阈值都是较严格的阈值,一般来说置信度大于“1e-5”阈值就可以相当明确是同一个人。我们建议使用“1e-5”到关键的、高安全级别业务场景中,比如大额度的借款或者转账。“1e-6”则更加严格,适用于对安全性要求比较极端的场景。 “1e-4”阈值的严格程度介于“1e-3”阈值与“1e-5”阈值之间。 |
根据提供的姓名与身份证号码与公安部数据对比,获取对应的身份证上的图片,然后再与上传的视频做对比,判断是否一致。认证一致后凭此身份信息申请个人证书
备注:身份信息与视频对象一致
l 请求方式:POST
l 请求URL:请求地址/core/api/livingbodyVerifyAndSupApplyPerson?token=xxxx
参数名 | 类型 | 可空 | 说明 |
orderno | String | 否 | 流程单号(从第一个步骤返回结果中获取,其它无效) |
video | File | 否 | 需用户上传拍摄的人脸视频,拍摄的过程中需要把第一个步骤中返回口令,用普通话读出来,视频要求为ffmpeg所支持的格式及码率,视频时长为3~6秒,视频大小不能超过20M,视频信息对应客户的个人信息 |
authInfo | String | 否 | 访问授权信息;JSON数据封装,格式范例: { "projectId":"801", "locationId":"12", "ip":"", "certsn":"5F64183039B45A8D", "authCode":"EFKEAKFafjkadf123" } 各属性说明如下: projectId:项目编号,必填。由CA运营商提供; locationId:受理网点,必填。由CA运营商提供; ip:暂时未空; certsn:证书序列号,必填。由CA运营商提供; authCode:客户授权码,必填。由CA运营商提供; |
certApplyInfo | String | 否 | 证书申请基本信息;JSON数据封装,格式范例: { "certType":" NATURAL ", "certdn":" CN=自然人姓名,OU=自然人身份证号码后8位,O=自然人姓名,L=杭州市,ST=浙江省,C=CN ", "applyValidate":365, "certValidate":365, "email":"zhangjq@szca.com.cn" } 各属性说明如下: certType:证书类型;必填;取值如下: BUSINESS 机构业务证书 EVALUATION 机构评标员证书 EXPERT 机构专家证书 NATURAL 自然人证书 ORGAN 机构证书 PERSON 机构个人证书 机构证书关联的是机构或公司信息, 机构个人证书 关联的是个人信息 certdn:证书主题;必填 applyValidate:证书申请服务期限;单位为天;必填 certValidate:证书申请有效期;单位为天;必填 email:邮箱地址;必填 注:申请个人证书或者自然人证书 |
businessInfo | String | 否 | 业务信息;JSON数据封装,格式范例: { "chargeMethod":"FREE", "isPrecord":"N", "deliverMethod":"SELF" } 各属性说明如下: chargeMethod:收费方式; planKeyFee:应收介质费用 planCertFee:应收证书费用 factKeyFee:实收介质费用 factCertFee:实收证书费用 planOpenFee:应收开户费 factOpenFee:实收开户费 deliverMethod:领取方式 postAddr:邮寄地址 expressId:快递单号 postCode:邮政编码 contacter::联系人 cntPhoneNo::联系电话 isPrecord::是否预登记 refId:参考标识 remitId::汇款单号 checkRemarks:核对时备注 以上参数正式环境中需由根据商务合同决定; 测试环境中按格式范例提供的即可; |
personInfo | String | 否 | 个人客户信息;JSON数据封装,格式范例: { "custName":"张三", "sex":"M", "idType":"SF", "idNo":"431431198203055517", "mobileNo":"13560767212", "phoneNo":"075526588388", "faxNo":"075586156366", "company":"深圳市电子商务有限公司", "companyCode":"123456789", "address":"深圳市南山区软件园", "zipCode":"518057", "city":"深圳市", "province":"广东省" } 各属性说明如下: custName:客户名称 sex:性别; idType:证件类型 idNo:证件号码 mobileNo:手机号码 phoneNo:电话号码 faxNo:传真号码 company:单位名称 companyCode:公司机构代码 address:联系地址 zipCode:邮政编码 city:城市 province:省份 注意:取用户的姓名,身份证号码以及传入的视频做认证 |
keyType | String | 否 | 证书类型;输入值可选范围为:RSA;SM2 |
selfExtResArr | String | 是 | 自定义扩展(JSONArray): [ {\"extId\":\"1.2.86.11.7.1.8\", \"extName\":\"xxx\" \"extValue\":\"xxx\" \"nullAble\":\"xxx\" }, {\"extId\":\"1.2.86.11.7.1.8\", \"extName\":\"xxx\" \"extValue\":\"xxx\" \"nullAble\":\"xxx\" }] |
返回值是JSON格式的字符串数据。返回格式如:
返回结果 | 说明 |
{ "success": true, "msg": "ok", "code": 0, "orderno": "e7bb301f2b164fb784fc54ae38cba540", "obj": { "applyid": "201907001", "endDate": "2020-07-10 18:31:52", "subject": "CN=张三201907,OU=431431198203055517,O=张三201907,L=杭州市,ST=浙江省,C=CN", "resultCode": 0, "startDate": "2019-07-11 18:31:52" } } | obj: 业务返回结果; applyId:证书业务单号; subject:证书主题; resultCode:申请返回结果;为0则申请成功; 其他编码则是业务异常,调用方需进行判断; resultDesc:异常信息,resultCode不为0时回返回该字段 认证未通过,会返回具体原因,认证通过后自动申请证书 |