有奖捉虫:办公协同&微信生态&物联网文档专题 HOT

合作伙伴服务端验证结果

此方式用于:合作伙伴服务端生成签名,并调用意愿核身服务端查询结果,鉴权完成后返回结果(服务端上送 orderNo 和 appId 查询)。

合作方后台生成签名

准备步骤

前置条件:请合作方确保 SIGN ticket 已经正常获取,获取方式见 SIGN ticket 获取。 合作方为意愿核身查询服务生成签名,需要具有以下参数:
参数
说明
来源
appId
腾讯服务分配的 Appid
参考 获取 WBappid 指引在人脸核身控制台内申请
orderNo
订单号,本次意愿核身合作伙伴上送的订单号,唯一标识,字母/数字组成的字符串
合作方自行分配
version
默认值:1.0.0
-
api ticket
合作伙伴服务端缓存的 ticket,注意是 SIGN 类型
获取方式见 SIGN ticket 获取
nonceStr
32位随机字符串,字母和数字
合作方自行生成

基本步骤

1. 生成一个32位的随机字符串 nonceStr(其为字母和数字,登录时也要用到)。
2. 将 appId、orderNo、version 连同 ticket、nonceStr 共五个参数的值进行字典序排序。
3. 将排序后的所有参数字符串拼接成一个字符串。
4. 将排序后的字符串进行 SHA1 编码,编码后的 40 位字符串作为签名(sign)。
注意
签名算法可参考 签名算法说明

意愿核身识别结果查询接口

请求

请求 URL:https://miniprogram-kyc.tencentcloudapi.com/api/server/getWillFaceResult?orderNo=xxxxx请求方法:POST报文格式:Content-Type: application/json请求参数:
参数
说明
类型
长度(字节)
是否必填
appId
腾讯服务分配的 Appid
字符串
腾讯服务分配
orderNo
订单号,合作方订单的唯一标识,字母/数字组成的字符串
字符串
32
nonce
随机数
字符串
32
version
版本号,默认值:1.0.0
字符串
20
sign
签名值,使用本页第一步生成的签名
字符串
40
getFile
是否需要获取人脸识别的视频和文件,值为1则返回视频和照片、值为2则返回照片、值为3则返回视频;其他则不返回
字符串
40
getWillFile
是否需要获取意愿表达的音视频文件,默认值为1
值为1-返回所有音视频文件,值为2-不返回完整的视频文件,返回其他音视频文件
字符串
40
响应参数:
参数
类型
说明
code
String
0代表成功
msg
String
返回结果描述
faceCode
String
人脸核身结果
faceMsg
String
人脸核身结果描述
willCode
String
意愿表达结果
willMsg
String
意愿表达结果描述
bizSeqNo
String
业务流水号
transactionTime
String
请求接口的时间
orderNo
String
订单编号
liveRate
String
活体检测得分
riskInfo
object
后台返回的刷脸风险信息
similarity
String
人脸比对得分
occurredTime
String
进行刷脸的时间
photo
String
人脸核身时的照片,base64 位编码
video
String
人脸核身时的视频,base64 位编码 注:该视频为活体阶段的1秒短视频
sdkVersion
String
人脸核身时的 sdk 版本号
appId
String
腾讯云控制台申请的 appid
willUserAudio
String
意愿表达用户音频 意愿表达阶段的音频文件,base64位编码
willReadAudio
String
意愿表达播报音频 意愿表达阶段的音频文件,base64位编码
willScrnShotImage
String
意愿表达阶段的屏幕画面图,base64位编码
willUserVideo
String
意愿核身完整视频:从用户播报音频到回复音频过程,base64位编码 注意:如果功能配置为 SDK 返回视频,则本字段返回为空
willStandText
String
ASR 客户初始化上送的文字信息
willStandAnswer
String
ASR 客户初始化上送的答案文字信息
willUserAnswer
String
ASR 识别结果文本信息
{
    "code": "0",
    "msg": "请求成功",
    "bizSeqNo": "22071420001184453211072324316763",
    "result": {
        "bizSeqNo": "22071420001184453211072324316763",
        "transactionTime": "20220714110723",
        "appId": "IDAXXXXX",
        "orderNo": "13213545132",
        "similarity": "94.94",
        "liveRate": "99",
        "occurredTime": "20220714110147",
   "riskInfo": {
         "deviceInfoLevel": "1",
          "deviceInfoTag": ""
     },
        "faceCode": "0",
        "faceMsg": "请求成功",
        "willCode": "0",
        "willMsg": "请求成功",
        "willUserAudio": "UklGRiR2AgBXQVZFZm10IBAAAAABAAIAQB8AAAB9AAAEABAAZGF0YQB2AgAAAAAAAAACAAgAGwA7AFEA",
        "willReadAudio": "UklGRqRIBQBXQVZFZm10IBAAAAABAAEAgD4AAAB9AAACABAAZGF0YYBIBQAAAAAAAAAAAAAAAAAAAAAAAAAA",
"willUserVideo": "AAAAIGZ0eXBpc29tAAACAGlzb21pc28yYXZjMW1wNDEAAAAIZnJlZQAOLGttZGF0AAACXQYF//9Z3EXpve",
        "willStandText": "本人知情以下号码开户,知晓出售、出租、转让等方式提供电话卡供他人使用的法律风险.。请回答:同意",
        "willStandAnswer": "嗯|好的|是的",
        "willUserAnswer": "是的",
        "trtcFlag": "Y",
        "success": false
    },
    "transactionTime": "20220714110723"
}

注意事项

code 非0时,有时不返回图片和视频。
照片和视频信息作为存证,合作伙伴可以通过此接口拉取视频等文件,需要注意请求参数的 get_file 需要设置为1;如果不上送参数或者参数为空,默认不返回视频和照片信息。为确保用户操作整体流程顺利完成,部分情况下获取视频和照片会有1秒左右的延迟。
由于照片和视频信息有可能超过1M,考虑传输的影响,建议合作伙伴在使用时注意,建议获取比对结果用于后续流程处理和存证使用分开调用。避免网络传输带来的影响。目前我们的查询接口是异步查询,返回的文件可能会有1/2s的延迟。
如果合作方是完成人脸核身流程后马上去拉取视频/照片,建议在查询接口加上一个查询机制:判断图片是否存在,轮询3次,每次2s。
照片和视频均为 base64位编码,其中照片解码后格式一般为 JPG 和 PNG。视频格式解码后一般为 MP4。
服务端验证结果接口返回66660011无此查询结果的可能原因:66660017 验证次数超限后被风控,风控后的订单为无效,查询结果为无此查询结果。
用户中途退出刷脸,没有完成人脸验证的流程,没有比对,查询结果为无此查询结果。
操作超时,请退出重试 无此 ID 的用户身份信息,H5faceid 5分钟有效期,失效后无法进入刷脸流程,查询结果为无此查询结果。
视频格式或大小不合法 文件或视频不合法,无法进行比对,查询结果为无此查询结果。
上传的视频非实时录制,被时间戳校验拦截,查询结果为无此查询结果。
查询超过3天的订单返回无此查询结果。
响应参数请勿做强校验,后续可能会有扩展。

RiskInfo 对象说明

RiskInfo 是用来给合作方传递刷脸风险信息的对象。其中 RiskInfo 对象的各个字段意义如下表所示:
字段名
类型
字段含义
说明
deviceInfoLevel
String
设备风险等级
设备风险级别,如果命中风险则显示
deviceInfoTag
String
设备风险标签
设备风险等级描述
riskInfoLevel
String
身份风险等级
如果命中身份风险则显示风险等级
riskInfoTag
String
身份风险标签
身份风险等级描述