生成签名
前置条件
说明
 参与签名的数据需要和使用该签名的接口中的请求参数保持一致。
参数名  | 说明  | 来源  | 
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:播报模式 2:点头模式 默认配置为0  | String  | 32  | 否  | 
willLanguage  | 意愿核身语言产品服务类型为“2”时,需要填写。 参数配置:0-中文普通话默认配置为0  | String  | 32  | 否  | 
willContentList  | 意愿核身过程中播报文本/问题、用户朗读/回答的文本,当前支持一个播报文本+回答文本  | List  | -  | 是  | 
willContentList.id  | 从下标0开始,问答模式下支持多轮问答,最大支持 5 轮  | String  | 32  | 是  | 
willContentList.question  | 系统播报问题文本/问题长度为250个字以内 示例:“ 您好,为确保您本人操作,此次签约全程录音录像。请问您本次业务是本人自愿办理吗?请回答:我确认 ” 注意:多轮问答的总字数之和需要小于或等于500字。  | 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"}}
说明:
success:false 无意义,合作伙伴可忽略,无需处理。 
faceId 有效期为5分钟,每次进行人脸核身都需要重新获取。