Пользовательские сценарии
Пользовательские сценарии — это многоэтапные сессии захвата, организованные SDK совместно с настроенным потоком. Например, поток с Liveness + Risk Score + Risk Fraud Classification + Document Capture + Electronic Signature выполняет захват селфи, документа и подписи в одной сессии.
Доступные сценарии зависят от потока, настроенного для вашей интеграции. Полное сопоставление вариант использования → поток → возможность см. в разделе Варианты использования.
SDK:
- Считывает конфигурацию потока, предоставленную при инициализации.
- Организует последовательность захватов, необходимых для потока (селфи, документ, подпись).
- Возвращает объект результата для каждого этапа захвата.
Оркестрация полностью осуществляется SDK — вам не нужно реализовывать последовательность шагов в вашем приложении.
Шаг 1 — Реализуйте AcessoBioManagerDelegate
AcessoBioManagerDelegate обрабатывает обратные вызовы жизненного цикла SDK. Реализуйте четыре обязательных метода:
| Метод | Когда вызывается |
|---|---|
onErrorAcessoBioManager(error) | Произошла ошибка во время работы SDK |
onUserClosedCameraManually() | Пользователь вручную закрыл камеру |
onSystemClosedCameraTimeoutSession() | Достигнут 40-секундный лимит сеанса |
onSystemChangedTypeCameraTimeoutFaceInference() | Лицо не обнаружено в течение 13 секунд — переключается на ручной захват |
- Swift
- Objective-C
class ViewController: UIViewController, AcessoBioManagerDelegate {
var unicoCheck: AcessoBioManager!
override func viewDidLoad() {
super.viewDidLoad()
unicoCheck = AcessoBioManager(viewController: self)
}
func onErrorAcessoBioManager(_ error: ErrorBio!) { }
func onUserClosedCameraManually() { }
func onSystemClosedCameraTimeoutSession() { }
func onSystemChangedTypeCameraTimeoutFaceInference() { }
}
@implementation ViewController: UIViewController
- (void)viewDidLoad {
[super viewDidLoad];
unicoCheck = [[AcessoBioManager alloc]initWithViewController:self];
}
- (void)onErrorAcessoBioManager:(ErrorBio *)error { }
- (void)onSystemChangedTypeCameraTimeoutFaceInference { }
- (void)onSystemClosedCameraTimeoutSession { }
- (void)onUserClosedCameraManually { }
@end
Все четыре метода делегата, перечисленные выше, должны быть созданы в вашем проекте (даже без какой-либо логики). В противном случае проект не скомпилируется успешно.
Шаг 2 — Реализуйте AcessoBioSelfieDelegate
Переопределите методы для обработки обратных вызовов результатов захвата в сценарии:
| Метод | Описание |
|---|---|
onSuccessSelfie(result) | Изображение успешно захвачено — возвращает SelfieResult для последующих вызовов REST API |
onSuccess(result) | Поток WebApp успешно завершён — возвращает processId, используемый для запроса результатов валидации |
onErrorSelfie(errorBio) | Захват завершился ошибкой — возвращает ErrorBio с деталями ошибки |
- Swift
- Objective-C
class ViewController: UIViewController, AcessoBioManagerDelegate,
SelfieCameraDelegate, AcessoBioSelfieDelegate {
func onSuccessSelfie(_ result: SelfieResult!) { }
func onSuccess(_ result: SuccessResult!) { }
func onErrorSelfie(_ errorBio: ErrorBio!) { }
}
@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(), передав web_app_token:
web_app_token — это поле process.webAppToken, возвращаемое запросом POST /client/v1/process при создании процесса на вашем бэкенде. См. Создание процесса.
onCameraReady(cameraOpener)— камера готова; вызовитеopen(self, webAppToken:).onCameraFailed(message)— подготовка камеры завершилась ошибкой (ErrorPrepareявляется расширениемErrorBio).
- Swift
- Objective-C
@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!) { }
- (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 { }
Полное описание обработки результата см. в разделе Получение результата.