生成签名
前置条件
说明
参与签名的数据需要和使用该签名的接口中的请求参数保持一致。
参数名 | 说明 | 来源 |
appId | 业务流程唯一标识 | |
userId | 用户唯一标识 | 合作方自行分配,需跟用户绑定,32位以内,不包含特殊字符 |
version | 参数值为:1.0.0 | - |
ticket | 合作伙伴服务端获取的 ticket,注意是 SIGN 类型 | 获取方式见 获取 SIGN ticket |
nonce | 必须是 32 位随机数 | 合作方自行生成 |
基本步骤
1. 生成一个 32 位的随机字符串 nonce(其为字母和数字,登录时也要用到)。
2. 将 appId、userId、version 连同 ticket、nonce 共五个参数的值进行字典序排序。
3. 将排序后的所有参数字符串拼接成一个字符串。
4. 将排序后的字符串进行 SHA1 编码,编码后的 40 位字符串作为签名(sign)。
注意
参考示例
请求参数:
参数名 | 参数值 |
appId | IDAXXXXX |
userId | userID19959248596551 |
nonce | kHoSxvLZGxSoFsjxlbzEoUzh5PAnTU7T |
version | 1.0.0 |
ticket | XO99Qfxlti9iTVgHAjwvJdAZKN3nMuUhrsPdPlPVKlcyS50N6tlLnfuFBPIucaMS |
字典排序后的参数为:
[1.0.0,IDAXXXXX,XO99Qfxlti9iTVgHAjwvJdAZKN3nMuUhrsPdPlPVKlcyS50N6tlLnfuFBPIucaMS, kHoSxvLZGxSoFsjxlbzEoUzh5PAnTU7T, userID19959248596551]
拼接后的字符串为:
1.0.0IDAXXXXXXO99Qfxlti9iTVgHAjwvJdAZKN3nMuUhrsPdPlPVKlcyS50N6tlLnfuFBPIucaMSkHoSxvLZGxSoFsjxlbzEoUzh5PAnTU7TuserID19959248596551
计算 SHA1 得到签名:
D7606F1741DDCF90757DA924EDCF152A200AC7F0
该字串就是最终生成的签名(40 位),不区分大小写。
合作方后台上传信息
请求 URL:
https://kyc1.qcloud.com/api/server/getWillFaceId?orderNo=xxx
注意
为方便查询耗时,该请求url后面请拼接 orderNo 订单号参数。
请求方法:POST报文格式:Content-Type: application/json请求参数:
参数 | 说明 | 类型 | 长度(字节) | 是否必填 |
appId | String | 8 | 是 | |
orderNo | 订单号,由合作方上传,字母/数字组成的字符串,每次唯一,不能超过 32 位 | String | 不能超过 32 位 | 是 |
version | 默认参数值为:1.0.0 | String | 20 | 是 |
sign | 签名:使用上面生成的签名 | String | 40 | 是 |
nonce | 随机数 | String | 32 | 是 |
name | 姓名 | String | - | 使用权威源比对时:姓名+证件号,必须输入 使用自带源比对时:姓名+证件号,可不输入 |
idNo | 证件号码 | String | - | 使用权威源比对时:姓名+证件号,必须输入 使用自带源比对时:姓名+证件号,可不输入 |
userId | 用户 ID ,用户的唯一标识(不能带有特殊字符),需要跟生成签名的 userId 保持一致 | String | 不能超过 32 位 | 是 |
sourcePhotoStr | 比对源照片,注意:原始图片不能超过500k,且必须为 JPG 或 PNG、BMP 格式参数有值:使用合作伙伴提供的比对源照片进行比对,必须注意是正脸可信照片,照片质量由合作方保证参数为空 :根据身份证号 + 姓名使用权威数据源比对 | BASE64String | 1048576 | 否,非必填请使用标准的图片转 base64方法,base64编码不可包含换行符,不需要加前缀 |
sourcePhotoType | 比对源照片类型参数值为1 时是:水纹正脸照参数值为 2 时是:高清正脸照重要提示:照片上无水波纹的为高清照,请勿传错,否则影响比对准确率。如有疑问,请联系腾讯云技术支持线下确认 | String | 1 | 否,提供比对源照片需要传 |
liveService | 应用模式意愿核身默认上传 2 | String | 32 | 是 |
liveInterType | 参数值为1时,表示仅使用实时检测模式,不兼容的情况下回调错误码3005参数值为0时,表示优先使用实时检测模式,不兼容情况自动降级为视频录制模式不传或传入为空,默认为仅使用强制实时检测模式 | String | 32 | 否 |
willType | 意愿核身类型产品服务类型为“2”时,需要填写参数,配置参数:0-问答模式,1-播报模式默认配置为0 | String | 32 | 否 |
willLanguage | 意愿核身语言产品服务类型为“2”时,需要填写参数配置:0-中文普通话默认配置为0 | String | 32 | 否 |
willContentList | 意愿核身过程中播报文本/问题、用户朗读/回答的文本,当前支持一个播报文本+回答文本 | List | - | 是 |
willContentList.id | 从下标0开始,问答模式下支持多轮问答,最大支持 5 轮 | String | 32 | 是 |
willContentList.question | 系统播报问题文本/问题长度为250个字以内 示例:“ 您好,为确保您本人操作,此次签约全程录音录像。请问您本次业务是本人自愿办理吗?请回答:我确认 ” 注意:多轮问答的总字数之和需要小于 等于1000 字。 | String | 32 | 是 |
willContentList.answer | 用户朗读/回答的文本,用于识别用户朗读/回答的语音与文本是否一致。长度为10个字以内支持多个文本作为识别内容,文本之间用"|" 分割。示例:我确认 | String | 32 | 是 |
speed | 播报问题文字语速:默认为1.0倍速"-1"代表0.8倍;"0"代表1.0倍(默认);"1"代表1.2倍;"1.5"代表1.35倍;"2"代表1.5倍 | string | 32 | 否 |
willMidAnswer | liveInterType=0 时为必填项,用于意愿降级模式用户回答提示语,请保持与播报内容让用户回答的内容一致 | string | 32 | 否 |
响应
响应参数:
参数 | 类型 | 说明 |
code | String | 0:成功,非0:失败 |
msg | String | 请求结果描述 |
bizSeqNo | String | 请求业务流水号 |
orderNo | String | 订单编号 |
faceId | String | 此次唯一标识,调用时传入 |
optimalDomain | String | 启动 H5 意愿核身步骤中调用 login 接口使用的域名 |
响应示例:
{"code": 0,"msg": "成功","result": {"bizSeqNo":"业务流水号","orderNo":"合作方订单号","faceId":"cc1184c3995c71a731357f9812aab988""optimalDomain":"kyc1.qcloud.com"}}