前端获取结果验证签名

最近更新时间:2019-09-06 10:28:36

此方式用于:

  • 合作伙伴 App 端或 H5 收到远程银行卡识别 SDK 返回以及签名结果。
  • 合作伙伴 App 端或 H5 调用其服务端接口进行签名认证,接口认证成功后继续业务流程。

合作方后台生成签名

准备步骤

  • 前置条件:请合作方确保 SIGN ticket 已经正常获取,获取方式请参见 SIGN ticket 获取
  • 合作方为银行卡 OCR 识别服务生成签名,需要具有以下参数:
参数 说明 来源
wbappid 请添加小助手微信 faceid001,进行线下对接获取 腾讯云线下对接分配
order_no 订单号,本次银行卡识别合作伙伴上送的订单号,唯一标识 合作方自行分配
api ticket 合作伙伴服务端缓存的 tikcet,注意是 SIGN 类型 获取方式请参见 SIGN ticket 获取

基本步骤

  1. 将 AppId、order_No、api ticket(SIGN 类型)共3个参数的值进行字典序排序。
  2. 将排序后的所有参数字符串拼接成一个字符串。
  3. 将排序后的字符串进行 SHA1 编码,编码后的40位字符串作为签名(sign)。
注意:

签名算法请参见 签名算法说明

参考示例

  • 请求参数:
    参数名参数值
    app_idappId001
    order_notest1480921551481
    ticketduSz9ptwyW1Xn7r6gYItxz3feMdJ8Na5x7JZuoxurE7RcI5TdwCE4KT2eEeNNDoe
  • 字典排序后的参数为:
    [appId001, duSz9ptwyW1Xn7r6gYItxz3feMdJ8Na5x7JZuoxurE7RcI5TdwCE4KT2eEeNNDoe, test1480921551481]
  • 拼接后的字符串为:
    appId001duSz9ptwyW1Xn7r6gYItxz3feMdJ8Na5x7JZuoxurE7RcI5TdwCE4KT2eEeNNDoetest1480921551481
  • 计算 SHA1 得到签名:
    该字符串就是最终生成的签名(40位),不区分大小写。
    B02CEBEB07F792B2F085E8CB1E7BA9EC19284F54

比对签名

合作方服务端生成的签名与 SDK 返回的签名比对,如果相同即可信任 SDK 的银行卡 OCR 识别结果。

注意:

合作方必须定时刷新 ticket(SIGN) 保证远程身份认证后台缓存有该合作方的 ticket(SIGN),否则远程身份认证后台无法生成签名值。