Перейти к основному содержимому

Тихая ревалидация

Атрибуты PrepareInfo
АтрибутТипОбязательноОписание
externalUserIdStringИдентификатор пользователя в вашей системе. Автоматически хешируется с помощью SHA-256 перед передачей, никогда не отправляется в виде обычного текста.
Запуск Тихой ревалидации
Шаг 1 — Реализовать initializeSDK

Создайте новый класс/объект UnicoSDK со статическим методом initializeSDK, возвращающим экземпляр UnicoSDK, который принимает context и UnicoSDKConfig с вашими sdkKey, bundleId и environment. Сохраните возвращённый экземпляр — он понадобится позже для вызова startSilentValidation из Java.

Вызывайте при запуске приложения

UnicoSDK.initializeSDK должен вызываться как можно раньше при запуске приложения (например, в Application.onCreate). Более поздний вызов сокращает время фоновой обработки и увеличивает вероятность получения неопределённого результата аутентификации.

UnicoSDK.initializeSDK(
context,
UnicoSDKConfig(
sdkKey = "your_sdk_key",
bundleId = "your_bundle_id",
environment = Environment.UAT
)
)
Шаг 2 — Реализовать startSilentValidation

После initializeSDK свяжите уже выполняющийся сбор данных с идентифицированным пользователем, вызвав startSilentValidation с объектом PrepareInfo, содержащим externalUserId.

val prepareInfo = PrepareInfo(
externalUserId = "external_user_id"
)

UnicoSDK.startSilentValidation(prepareInfo)
.onSuccess { result -> /* ... */ }
.onFailure { error -> /* ... */ }

Если проверка выполняется в начале потока, например при входе в систему, дождитесь колбэка onSuccess, прежде чем переходить к шагу 3.

Шаг 3 — Создать процесс и выполнить аутентификацию

Пока выполняется проверка, создайте процесс верификации для завершения аутентификации. См. Справочник API ▸ API ▸ Создание процесса.

Включите в тело запроса тот же externalUserId, что был отправлен в PrepareInfo на шаге 2 — именно это позволяет бэкенду сопоставить создание процесса с уже выполняющейся проверкой.

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.resultstringyes или no — см. возможные значения ниже.
silentAuth.result — возможные значения
ЗначениеОписание
yesАутентификация одобрена, пользователь распознан с достаточной степенью уверенности, дополнительный захват не требуется.
noНедостаточно данных для одобрения в тихом режиме. Рекомендуется выполнить аутентификацию с помощью биометрии (селфи) или другого альтернативного метода.