---
title: Пользовательские сценарии
canonical: https://developer.unico.io/ru/dual-api/developers/sdks-and-tools/ios/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** — Реализуйте `AcessoBioSelfieDelegate`**

Переопределите методы для обработки обратных вызовов результатов захвата в сценарии:

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

  ### Swift

    ```swift
    class ViewController: UIViewController, AcessoBioManagerDelegate,
      SelfieCameraDelegate, AcessoBioSelfieDelegate {

      func onSuccessSelfie(_ result: SelfieResult!) { }
      func onSuccess(_ result: SuccessResult!) { }
      func onErrorSelfie(_ errorBio: ErrorBio!) { }
    }
    ```

### Objective-C

    ```objectivec
    @interface ViewController: UIViewController <AcessoBioManagerDelegate,
      SelfieCameraDelegate, AcessoBioSelfieDelegate>
    @end

    @implementation ViewController
    - (void)onSuccessSelfie:(SelfieResult *)result { }
    - (void)onSuccess:(SuccessResult *)result { }
    - (void)onErrorSelfie:(ErrorBio *)errorBio { }
    @end
    ```

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

Вызовите `prepareSelfieCamera`, передав конфигурацию SDK. Когда камера готова, срабатывает событие `onCameraReady` — откройте камеру с помощью метода `open()`, передав `webAppToken`:

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

  - `onCameraReady(cameraOpener)` — камера готова; вызовите `open(self, webAppToken:)`.
  - `onCameraFailed(message)` — подготовка камеры завершилась ошибкой (`ErrorPrepare` является расширением `ErrorBio`).

  ### Swift

    ```swift
    @IBAction func openCamera(_ sender: Any) {
      unicoCheck.build().prepareSelfieCamera(self, config: YourUnicoConfigClass())
    }

    func onCameraReady(_ cameraOpener: AcessoBioCameraOpenerDelegate!) {
      cameraOpener.open(self, webAppToken: "your_web_app_token")
    }

    func onCameraFailed(_ message: ErrorPrepare!) { }
    ```

### Objective-C

    ```objectivec
    - (IBAction)openCamera:(UIButton *)sender {
        [[unicoCheck build] prepareSelfieCamera:self config:[YourUnicoConfigClass new]];
    }

    - (void)onCameraReady:(id)cameraOpener {
        [cameraOpener open:self webAppToken:@"your_web_app_token"];
    }

    - (void)onCameraFailed:(ErrorPrepare *)message { }
    ```

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