Reusable RealID接入指南

Reusable RealID 用于在已建立共享伙伴关系的商户之间复用用户 KYC 数据:提供数据的商户为 Donor(数据提供方),接收并使用数据的商户为 Recipient(数据接收方)。商户可以同时扮演 Donor 和 Recipient 两种角色,形成互为数据提供与接收的关系。

本文面向接入开发人员,介绍接入前的准备工作、接入模式选择、接口调用顺序和关键字段的来源。

接入前准备

在开始接入之前,请确保已满足以下要求:

  1. Donor 与 Recipient 之间已建立有效的 KYC 共享合作关系。需提供有效协议作为证明,经确认后由 ZOLOZ 在系统中完成共享伙伴关系配置。
  2. Donor 已开通 ShareToken 创建权限。请联系 ZOLOZ 技术支持开通。
  3. Recipient 已完成产品购买,并开通 Reusable RealID 权限。
  4. Donor 已获取到 Recipient 的 API clientId,用于创建定向 ShareToken。该值通常以 2188 开头,例如 2188499706886568
  5. Donor 已完成一笔成功的标准 RealID 认证,并将认证数据挂载到 Applicant。

能力与权限

能力

调用方

开通要求

计费说明

Applicant管理

Applicant所属商户

无需单独开通

不计费

ShareToken创建

Donor

需开通Donor权限

不计费

Reusable RealID(SDK模式)

Recipient

需开通以下权限:

  • Recipient权限
  • Reusable RealID产品权限

按产品规则计费

Applicant数据隔离说明

  • Applicant 按商户进行数据隔离,且在商户中唯一,每个商户只能管理自己名下的 Applicant。
  • 其他商户即使获得 applicantIduserId,也无权限访问该 Applicant 下的任何数据。
  • 复用成功后:
    • 若 Recipient 商户下不存在该 userId 对应的 Applicant,系统将自动创建新的 Applicant。
    • 若已存在,则本次复用的 KYC 数据将归入已有的 Applicant 下。
  • Applicant 由 Recipient 商户独立管理,后续操作(查询、更新、删除等)均由 Recipient 自行控制。

选择接入模式

Recipient 可根据业务场景选择一种接入方式:

接入模式

适用终端

用户是否需要重新采集证件

用户是否需要重新采集人脸

调用方式

Native SDK

iOS / Android App

服务端初始化后,移动端 App 加载 ZOLOZ SDK 界面,用户完成人脸采集后轮询查询结果。

H5 SDK

移动端H5

服务端初始化后,H5 页面加载 ZOLOZ SDK 界面,用户完成人脸采集后轮询查询结果。

Native SDK 和 H5 SDK模式均适用于需要用户参与人脸活体检测的场景(如登录验证、高风险操作确认等)。两种SDK共用同一套API(initialize + checkresult),主要区别在于initialize请求参数中的以下参数值不同:

  • flowType 参数的取值不同。
  • metaInfoh5ModeConfig 参数的传入方式不同。

完整接入流程

步骤一:Donor准备并授权数据

Donor 需先完成 Applicant 创建、标准 RealID 认证、数据挂载,最后生成 ShareToken 并安全传递给 Recipient。

步骤

API/操作

关键入参

获取结果

1

v1.zoloz.applicant.create

Donor 侧稳定且唯一的 userId

applicantId

2

完成标准 RealID 认证

按标准 RealID 流程接入

成功认证的 RealID transactionId

3

v1.zoloz.applicant.attach

applicantId、标准 RealID transactionId

认证数据挂载成功

4

v1.zoloz.applicant.query(可选)

applicantIduserId

确认 Applicant 下存在可共享数据

5

v1.zoloz.sharetoken.create

applicantId、Recipient 的 recipientClientId

shareTokenexpireTime

6

服务端传递 ShareToken

使用安全的服务端链路

Recipient 获得 shareToken

说明recipientClientId 是 Recipient 调用 ZOLOZ OpenAPI 时用于鉴权的 API clientId,由 Recipient 提供给 Donor。它不是用户 ID、Applicant ID 或商户自行生成的业务流水号。

步骤二:不同模式的接入方法

Recipient 使用 Native SDK

  1. 调用 v1.zoloz.realid.reusable.initialize,传入 ShareToken、Recipient 侧 userIdflowType=REUSABLE_REALIDLITE_KYC,并透传 Native SDK 生成的 metaInfo
  2. 保存响应中的 transactionId,使用响应中的 clientCfg 配置并加载 Native SDK。
  3. 用户在 SDK 中完成人脸采集。ZOLOZ 自动进行活体检测和人脸比对。
  4. 使用 initialize 返回的 transactionId 调用 v1.zoloz.realid.reusable.checkresult 查询结果。
  5. 复用成功后,若 Recipient 商户下不存在该 userId 对应的 Applicant,系统会自动创建;若已存在,则将本次复用的 KYC 数据归入已有的 Applicant 下。Recipient 使用 initialize 请求中传入的 userId 调用 v1.zoloz.applicant.query 查询数据。

Recipient 使用 H5 SDK

  1. 调用 v1.zoloz.realid.reusable.initialize,传入 ShareToken、Recipient 侧 userIdflowType=H5_REUSABLE_REALIDLITE_KYCmetaInfo=MOB_H5 和必填的 h5ModeConfig
  2. 保存响应中的 transactionId,使用响应中的 clientCfg 配置并加载 H5 SDK。
  3. 用户在 H5 SDK 中完成人脸采集。ZOLOZ 自动进行活体检测和人脸比对。
  4. 使用 initialize 返回的 transactionId 调用 v1.zoloz.realid.reusable.checkresult 查询结果。
  5. 复用成功后,若 Recipient 商户下不存在该 userId 对应的 Applicant,系统会自动创建;若已存在,则将本次复用的 KYC 数据归入已有的 Applicant 下。Recipient 使用 initialize 请求中传入的 userId 调用 v1.zoloz.applicant.query 查询数据。

获取关键字段

字段

提供方 / 获取方式

使用位置

recipientClientId

Recipient提供,即其访问ZOLOZ OpenAPI使用的API clientId

Donor创建ShareToken

userId

当前调用商户自行生成并维护(同一商户下建议保持稳定且唯一)

Applicant创建、Recipient复用及归户查询

applicantId

v1.zoloz.applicant.create返回

attach、query、update、delete、ShareToken创建

标准RealID transactionId

标准RealID流程返回

v1.zoloz.applicant.attach请求

Reusable transactionId

v1.zoloz.realid.reusable.initialize返回

加载SDK后的结果查询

shareToken

v1.zoloz.sharetoken.create返回

initialize请求

bizId

API调用方自行生成,建议每次业务请求保持唯一

对应的API请求

说明

  • 除 checkresult 外,本产品所有 API 响应中均包含本次调用的 transactionId,建议保存用于业务追踪和问题排查。
  • 请注意区分以下两个 transactionId
    • attach 请求中的 transactionId 是待挂载的标准 RealID 交易 ID。
    • attach 响应中的 transactionId 是本次 attach API 调用返回的交易 ID(用于追踪本次挂载操作)。

ShareToken与数据规则

规则

说明

有效期

ShareToken 有效期为 20 分钟,精准的过期时间以响应中的 expireTime 为准。

绑定Recipient

ShareToken 仅允许创建时指定的 recipientClientId 使用,不可转交其他 Recipient。

一次性消费

initialize 成功后,ShareToken 立即被消费,无法重复使用。

消费后失效

initialize 成功后,即使用户后续取消或验证失败,原 ShareToken 也无法再次使用。

筛选不匹配时不消费

Donor 数据不满足 Recipient 的证件筛选条件时,返回 DONOR_DATA_NOT_ACCEPTABLE,ShareToken 不消费,可调整条件后重试。

Token无效场景

Recipient 不匹配、Token 过期或 Token 已被消费时,返回 TOKEN_NOT_FOUND

不可二次共享

Recipient 获得的 REUSE 数据不能再次作为 Donor 数据继续共享(即不可再次生成 ShareToken)。

删除不级联

Applicant 删除仅删除当前商户持有的数据,不会级联删除其他商户已获得的独立数据副本。

联调检查清单

在开始联调之前,请逐项确认以下事项:

检查项

说明

环境与凭证

使用正确的环境地址、API clientId 和密钥发起请求。

Recipient Client ID匹配

Donor 创建 ShareToken 时传入的 recipientClientId,必须与实际调用 initialize 的 Recipient 一致。

ShareToken安全传输

ShareToken 仅通过安全服务端链路传递,并在有效期内使用(20 分钟)。

Transaction ID保存

保存各 API 返回的 transactionId,checkresult 必须使用 initialize 返回的transactionId

异步归户重试策略

对 Recipient Applicant 的异步归户查询设置合理的重试间隔和超时时间。