静默重新验证
PrepareInfo 属性
| 属性 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
externalUserId | String | ✅ | 您系统中的用户标识符。传输前会自动使用 SHA-256 进行哈希处理,绝不会以明文形式发送。 |
启动静默重新验证
步骤 1 — 实现 initializeSDK
创建一个新的 UnicoSDK 类/对象,包含一个静态的 initializeSDK 方法,该方法返回 UnicoSDK 实例,接收 context 和一个包含您的 sdkKey、bundleId 和 environment 的 UnicoSDKConfig。请保留返回的实例——稍后从 Java 调用 startSilentValidation 时需要用到它。
在应用启动时调用
UnicoSDK.initializeSDK 必须在应用启动时尽早调用(例如在 Application.onCreate 中)。延迟调用会缩短后台处理时间,并增加认证结果不确定的可能性。
- Kotlin
- Java
UnicoSDK.initializeSDK(
context,
UnicoSDKConfig(
sdkKey = "your_sdk_key",
bundleId = "your_bundle_id",
environment = Environment.UAT
)
)
UnicoSDK sdk = UnicoSDK.initializeSDK(
context,
new UnicoSDKConfig("your_sdk_key", "your_bundle_id", Environment.UAT)
);
步骤 2 — 实现 startSilentValidation
在 initializeSDK 之后,通过调用 startSilentValidation 并传入包含 externalUserId 的 PrepareInfo,将已在进行中的采集与已识别的用户关联起来。
- Kotlin
- Java
val prepareInfo = PrepareInfo(
externalUserId = "external_user_id"
)
UnicoSDK.startSilentValidation(prepareInfo)
.onSuccess { result -> /* ... */ }
.onFailure { error -> /* ... */ }
Java 需要一个 Kotlin 桥接
startSilentValidation 是一个 Kotlin 挂起函数,无法直接从 Java 调用。请在您的项目中添加一个小型 Kotlin 桥接类,用于启动协程并暴露一个纯回调接口。
interface SilentAuthCallback {
fun onSuccess(success: Boolean)
fun onFailure(message: String?)
}
object SilentAuthBridge {
@JvmStatic
fun startSilentValidation(
owner: LifecycleOwner,
sdk: UnicoSDK,
externalUserId: String,
callback: SilentAuthCallback
) {
owner.lifecycleScope.launch {
val result = sdk.startSilentValidation(PrepareInfo(externalUserId, null))
result.onSuccess { callback.onSuccess(it.success) }
.onFailure { callback.onFailure(it.message) }
}
}
}
SilentAuthBridge.startSilentValidation(this, sdk, externalUserId, new SilentAuthCallback() {
@Override
public void onSuccess(boolean success) {
/* ... */
}
@Override
public void onFailure(String message) {
/* ... */
}
});
如果验证发生在流程的开始阶段,例如登录时,请在进入步骤 3 之前先等待 onSuccess 回调。
步骤 3 — 创建流程并进行认证
在验证进行的同时,创建验证流程以完成认证。参见 API 参考 ▸ API ▸ 创建流程。
在请求正文中包含与步骤 2 中 PrepareInfo 里发送的相同的 externalUserId——正是这个字段使后端能够将流程创建与已在进行中的验证关联起来。
curl -X POST https://api.id.unico.app/processes/v1 \
-H "Authorization: Bearer $TOKEN" \
-H "APIKEY: $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"subject": {
"duiType": 1,
"code": "12345678909",
"name": "Luke Skywalker",
"gender": "M",
"birthDate": "2000-05-20",
"email": "[email protected]",
"phone": "5519725570707"
},
"useCase": "Onboarding",
"externalUserId": "external_user_id",
"imageBase64": "/9j/4AAQSkZJR..."
}'
响应中包含 silentAuth.result 字段,表示认证的结果:
{
"id": "80371b2a-3ac7-432e-866d-57fe37896ac6",
"status": 3,
"silentAuth": {
"result": "yes"
}
}
| 字段 | 类型 | 描述 |
|---|---|---|
silentAuth.result | string | yes 或 no —— 请参见下方的可能取值。 |
silentAuth.result — 可能取值
| 取值 | 含义 |
|---|---|
yes | 认证通过,用户以足够的置信度被识别,无需额外采集。 |
no | 数据不足以静默通过认证。建议通过生物识别(自拍)或其他备选方式进行认证。 |