服务端验证结果

最近更新时间:2019-07-30 16:30:23

为了确保前端 SDK 和 H5 返回的结果真实性且未被篡改,合作伙伴服务端可以验证结果,我们提供 前端获取结果验证签名服务端验证结果两种结果验证方式,合作伙伴可以根据需求自行选择。
服务端验证结果方式用于:

  1. 合作伙伴 App 端或 H5 调用其服务端接口查询身份验证结果。
  2. 合作伙伴服务端生成签名,并调用远程身份认证服务端查询结果,远程身份认证服务端鉴权完成后返回结果(服务端上送 order_no 和 app_id 查询)。
  3. 合作伙伴 App 端或 H5 获取结果后继续后续流程。

合作方后台生成签名

准备步骤

  • 前置条件:请合作方确保 SIGN ticket 已经正常获取,获取方式请参见 SIGN ticket 获取
  • 合作方为人脸核身服务生成签名,需要具有以下参数:
参数 说明 来源
wbappid 请添加小助手微信 faceid001,进行线下对接获取 腾讯云线下对接分配
order_no 订单号,本次人脸核身合作伙伴上送的订单号,唯一标识 合作方自行分配
version 默认值:1.0.0 -
api ticket 合作伙伴服务端缓存的 tikcet,注意是 SIGN 类型 获取方式请参见 SIGN ticket 获取
nonceStr 32位随机字符串,由字母和数字组成 合作方自行生成

基本步骤

  1. 生成一个32位的随机字符串 nonceStr(由字母和数字组成,登录时也要用到)。
  2. 将 app_id、order_no、version、ticket、nonceStr 共5个参数的值进行字典序排序。
  3. 将排序后的所有参数字符串拼接成一个字符串。
  4. 将排序后的字符串进行 SHA1 编码,编码后的40位字符串作为签名(sign)。

注意:

签名算法可参考 签名算法说明

身份认证查询接口

请求

  • 请求 URL:https://idasc.webank.com/api/server/sync
  • 请求方法:GET
  • 请求参数:
    参数说明类型长度(字节)是否必填
    app_id腾讯服务分配的 app_idString腾讯服务分配
    version版本号,默认值:1.0.0String20
    nonce随机数String32
    order_no订单号,合作方订单的唯一标识String32
    sign签名值,使用本文生成的签名String40
    get_file是否需要获取人脸识别的视频和文件
    值为1:返回视频和照片
    值为2:返回照片
    值为3:返回视频
    其他:不返回
    String1否,非必填
  • 请求示例:
    https://idasc.webank.com/api/server/sync?app_id=xxx&nonce=xxx&order_no=xxx&version=1.0.0&sign=xxx

响应

  • 响应参数:
    参数类型说明
    codeString0:身份验证成功且认证为同一人
    其他返回值详情,请参见 错误码
    msgString返回结果描述
    bizSeqNoString业务流水号
    orderNoString订单编号
    idNoString证件号码
    idTypeString证件类型
    nameString姓名
    liveRateString活体检测得分
    similarityString人脸比对得分
    occurredTimeString进行刷脸的时间
    photoBase64 String人脸核身时的照片,Base64 位编码
    videoBase64 String人脸核身时的视频,Base64 位编码
    app_idString腾讯服务分配的 app_id
  • 响应示例:
    {
      "code": "0",
      "msg": "请求成功",
      "bizSeqNo": "18081020001015300215034200859792",
      "result": {
          "bizSeqNo": "18081020001015300215034200859792",
          "transactionTime": "20180810150342",
          "orderNo": "orderNo19959248596551",
          "idNo ": " ** * ",
          "idType ": "01 ",
          "name ": " ** * ",
          "video ": " ** ** ** ",
          "photo ": " ** ** ** ",
          "liveRate ": "100 ",
          "similarity ": "95.0 ",
          "occurredTime ": "20180810150152 ",
          "success ": false
      },
      "transactionTime ": "20180810150342 ",
      "app_id ": "TIDAlsRT ",
      "order_no ": "orderNo19959248596551"
    }

注意:

  • code 非0时,有时不返回图片和视频。code 详情请参见 错误码
  • 照片和视频信息作为存证,合作伙伴可以通过此接口拉取视频等文件,需要注意请求参数的 get_file 需要设置为 1;如果不上送参数或者参数为空,默认不返回视频和照片信息。为确保用户操作整体流程顺利完成,部分情况下获取视频和照片会有1秒左右的延迟。
  • 由于照片和视频信息有可能超过1MB,建议合作伙伴在使用时,获取比对结果用于后续流程处理和存证使用并分开调用,避免网络传输带来的影响。
  • 照片和视频均为 Base64 位编码,其中照片解码后格式一般为 JPG 或 PNG,视频格式解码后一般为 MP4。