---
title: Пользовательские сценарии
canonical: https://developer.unico.io/ru/dual-api/developers/sdks-and-tools/android/capture-flow/capture-types/user-journeys
locale: ru
generated_by: markdown-export
---

Пользовательские сценарии — это многоэтапные сессии захвата, организованные SDK совместно с настроенным потоком. Например, поток с Liveness + Risk Score + Document Capture + Electronic Signature выполняет селфи, захват документа и подпись в одной сессии.

:::secondary[Продукты]
Доступные сценарии зависят от потока, настроенного для вашей интеграции. Обратитесь к разделу [Продукты](/products) для полного сопоставления продукт → поток → возможность.
:::

## Как это работает

SDK:

1. Считывает конфигурацию потока, предоставленную при инициализации.
2. Организует последовательность захватов, необходимых для потока (селфи, документ, подпись).
3. Возвращает `processId` через `onSuccess` при завершении journey. Для шага с селфи данные изображения (`base64` / `encrypted`) также возвращаются через `onSuccessSelfie`. Захват документов и подписи обрабатывается SDK внутренне — никакой артефакт по шагам не передаётся клиенту.

Оркестрация полностью осуществляется SDK — вам не нужно реализовывать последовательность шагов в вашем приложении.

## Запуск пользовательского сценария

****Шаг 2** — Реализуйте `iAcessoBioSelfie`**

`iAcessoBioSelfie` обрабатывает обратные вызовы результата захвата в сценарии:

  | Метод | Описание |
  |---|---|
  | `onSuccessSelfie(result)` | Изображение успешно захвачено — возвращает `ResultCamera` для последующих вызовов REST API |
  | `onSuccess(result)` | Journey успешно завершён — возвращает `SuccessResult` с `processId`, используемым для запроса результатов валидации |
  | `onErrorSelfie(errorBio)` | Захват завершился ошибкой — возвращает `ErrorBio` с деталями ошибки |

  ### Kotlin

    ```kotlin
    val cameraListener: iAcessoBioSelfie = object : iAcessoBioSelfie {
      override fun onSuccessSelfie(result: ResultCamera?) { }
      override fun onSuccess(result: SuccessResult) { }
      override fun onErrorSelfie(errorBio: ErrorBio?) { }
    }
    ```

### Java

    ```java
    iAcessoBioSelfie cameraListener = new iAcessoBioSelfie() {
      @Override
      public void onSuccessSelfie(ResultCamera result) { }

      @Override
      public void onSuccess(SuccessResult result) { }

      @Override
      public void onErrorSelfie(ErrorBio errorBio) { }
    };
    ```

****Шаг 3** — Вызовите `prepareCamera`**

После инициализации `unicoCheckCamera` и реализации обоих слушателей вызовите `prepareCamera`, передав конфигурацию SDK, `CameraListener` и ваш `webAppToken`:

  :::note[webAppToken]
  `webAppToken` — это поле `process.webAppToken`, возвращаемое запросом `POST /client/v1/process` при создании процесса на вашем бэкенде. См. [Создание процесса](/dual-api/developers/api-reference/web-sdk/post-process).
  :::

  - `onCameraReady` — камера готова; вызовите `open`, передав `cameraListener` и ваш `webAppToken`.
  - `onCameraFailed` — подготовка камеры завершилась ошибкой; обработайте сообщение об ошибке.

  ### Kotlin

    ```kotlin
    unicoCheckCamera.prepareCamera(unicoConfig, object : CameraListener {
      override fun onCameraReady(cameraOpener: UnicoCheckCameraOpener.Camera?) {
        cameraOpener?.open(cameraListener, "your_web_app_token")
      }

      override fun onCameraFailed(message: String?) {
        Log.e(TAG, message)
      }
    })
    ```

### Java

    ```java
    unicoCheckCamera.prepareCamera(unicoConfig, new CameraListener() {
      @Override
      public void onCameraReady(UnicoCheckCameraOpener.Camera cameraOpener) {
        cameraOpener.open(cameraListener, "your_web_app_token");
      }

      @Override
      public void onCameraFailed(String message) {
        Log.e(TAG, message);
      }
    });
    ```

Для полного описания обработки результата см. [Получение результата](/developers/sdks-and-tools/android/capture-flow/receiving-the-result).