Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
В build.gradle
проекта добавьте строки:
В build.gradle
модуля добавьте строки (VERSION – версия, которую вы планируете добавить. Список версий можно найти в Журнале изменений):
Обратите внимание: размер выходного файла будет больше.
Вне зависимости от выбранного режима, добавьте еще:
Работа с OZ Mobile SDK в операционной системе «Android»
Чтобы начать пользоваться нашим SDK, нужно выполнить следующие шаги.
Добавьте SDK в проект, как описано здесь.
Получите лицензию на SDK – сгенерируйте тестовую самостоятельно на нашем сайте или запросите «боевую» по электронной почте. Для лицензии потребуется application id
. Добавьте лицензию в проект, как описано здесь.
Подключите SDK к API. Это необязательный шаг, он выполняется, только если вам нужно обрабатывать какие-либо данные на сервере. Если вы используете режим анализа на устройстве, никакие данные никуда не передаются, и подключение к API не нужно.
Для съемки видео используйте методы, описанные здесь – вы получите медиафайлы, которые потом можно будет отправить на анализ.
Запустите нужные вам проверки для полученных на предыдущем шаге медиафайлов. Здесь описано, как выполнять проверки.
Если вы хотите настроить внешний вид SDK, здесь написано, как это делается.
Рекомендуемая версия Android: 5+ (чем новее смартфон, тем быстрее выполняются анализы).
Рекомендуемые версии компонентов:
Мы не поддерживаем эмуляторы.
Доступные языки: EN, RU, ES, HY, KK, KY, TR.
Исходные коды примеров приложений с использованием Oz Liveness SDK расположены в репозитории GitLab:
Список методов и полей SDK:
Актуальную сборку демо-приложения Вы можете загрузить по ссылке.
Сгенерируйте тестовую лицензию самостоятельно здесь (внимание, страница на английском языке) или свяжитесь с нами по email для выпуска продуктивной лицензии. Для подготовки лицензии потребуется applicationId
(bundle id
).
Для добавления файла лицензии в SDK вызовите метод OzLivenessSDK.init
с одним из параметров LicenseSources
:
LicenseSource.LicenseAssetId
должен содержать путь к файлу forensics.license
, расположенному в проекте в папке res/raw.
LicenseSource.LicenseFilePath
должен содержать пусть к файлу на устройстве (вне проекта).
Если при обработке лицензии возникнут ошибки, вы получите сообщение с описанием этих ошибок. Если ошибок нет, система выведет данные о лицензии. Вы также можете запросить эти данные с помощью метода getLicensePayload
.
Сообщение об ошибке | Что делать |
---|---|
Мастер-лицензия – это оффлайн-лицензия, с которой можно использовать мобильные SDK без ограничений по bundle_id
, в отличие от обычных лицензий. Для получения мастер-лицензии нужно создать пару ключей, как описано ниже. Отправьте нам публичный ключ по электронной почте, и вскоре после этого мы отправим вам мастер-лицензию.
Вашему приложению нужно будет подписать свой bundle_id
приватным ключом. Мобильные SDK проверяют подпись с помощью публичного ключа из мастер-лицензии. Действие таких лицензий ограничено по времени.
В этом разделе описано, как создавать приватный и публичный ключи.
Чтобы создать приватный ключ, последовательно запустите следующие команды:
Вы получите два файла:
privateKey.der – приватный ключ .der;
privateKey.txt – privateKey.der в кодировке base64. Содержимое этого файла используется в качестве подписи bundle_id хостового приложения.
Спецификация команд OpenSSL: https://www.openssl.org/docs/man1.1.1/man1/openssl-pkcs8.html
Чтобы создать публичный ключ, запустите команду:
Вы получите публичный ключ publicKey.pub. Отправьте его нам по электронной почте. В ответ мы пришлем вам лицензию.
Инициализация SDK:
Для Android 6.0 (API 23) и старше:
Добавьте зависимость implementation 'com.madgag.spongycastle:prov:1.58.0.0'
;
Перед созданием подписи вызовите Security.insertProviderAt(org.spongycastle.jce.provider.BouncyCastleProvider(), 1)
Перед инициализацией SDK создайте закодированную base64 подпись для bundle_id
хостового приложения с помощью приватного ключа.
Пример создания подписи:
Передайте подпись как параметр masterLicenseSignature
во время инициализации SDK.
Если подпись невалидна, инициализация продолжится по стандартной схеме: проверка включенных в лицензию bundle_id
.
Oz Mobile SDK – Software Developer’s Kit системы Oz Forensics, обеспечивающий удобную интеграцию с мобильными приложениями для регистрации и биометрической идентификации клиентов.
В настоящее время мобильные SDK работают в портретном режиме.
Обычный режим выполнения проверок на iOS / Android SDK подразумевает проведение проверок на сервере: данные для анализов Liveness и Biometry с телефона отсылаются на сервер, где и происходит сам анализ, затем сервер отправляет результаты анализов обратно на телефон. Этот процесс показан на схеме ниже:
Однако анализы могут выполняться непосредственно на устройстве без подключения к серверу или даже интернету в целом:
Анализы на устройстве выполняются быстрее, а также это более безопасный способ проверки, так как никакая информация никуда не отправляется, персональные данные остаются на устройстве. В этом случае не нужны ни сервер, ни подключение к API.
Подключение к API может потребоваться в некоторых специфических ситуациях, например, для сбора телеметрии или конфигурации SDK с сервера.
Когда может понадобиться режим анализа на устройстве?
Вы не планируете собирать и обрабатывать персональные данные;
Вам необходима быстрая и не зависящая от скорости сети верификация – например, в удаленных регионах, внутри зданий, под землей и так далее;
У вас ограниченный бюджет и вы хотели бы сэкономить на оборудовании.
Для запуска анализов на устройстве установите соответствующий режим (mode
) анализа для Android или iOS SDK.
Android:
iOS:
Если вы при обновлении с прежних версий (до 6.4.2 включительно) хотите сохранить привычный для клиентов дизайн, сбросьте настройки интерфейса экрана съемки до значений по умолчанию и примените следующие параметры (приведены только те параметры, которые нужно изменить):
Если наш SDK используется только для съемки, пропустите этот шаг.
Чтобы выполнить проверку, нужно загрузить в систему медиафайлы, а затем запустить для них анализы.
Как интерпретировать результаты анализов, описано здесь: .
Пример работы:
Для удаления медиафайлов после выполнения всех проверок используйте метод clearActionVideos
.
Для добавления метаданных используйте метод addFolderMeta
.
В структуре Analysis можно передать дополнительные параметры, например, для извлечения на сервере лучшего кадра.
Для добавления медиафайлов в определенную папку используйте метод setFolderId:
Для авторизации в Oz API используйте адрес API и , как показано ниже.
Мы рекомендуем указывать адрес API в вашем приложении на экране, предшествующем проверке Liveness. После установки адреса происходит служебный вызов API, и если вы устанавливаете адрес при запуске или инициализации приложения, нагрузка на сервер может быть слишком высокой.
Второй вариант: логин и пароль.
Мы рекомендуем использовать метод аутентификации по токену доступа, как более безопасный.
По умолчанию логи сохраняются вместе с данными по анализам. Если вы планируете хранить логи отдельно от этих данных, настройте отдельное подключение для :
Очистка авторизации:
Проверка наличия сохраненного access-токена Oz API:
LogOut:
Для старта записи видео используется метод startActivityForResult
:
actions
– перечень при записи видео.
Для представления Fragment код приведен ниже. LivenessFragment
– для экрана Liveness.
Для получения результатов записи видео используется метод onActivityResult
:
Если наш SDK используется только для съемки, пропустите шаг "Выполнение проверок".
Если пользователь прервет запись видео (закроет экран), resultCode
примет значение Activity.RESULT_CANCELED
.
Пример кода для обработки:
Обратите внимание: описанная ниже функциональность работает, начиная с версии 8.1.0.
Чтобы добавить или обновить языковой пакет для Oz Android SDK, сделайте следующие шаги:
Перевод состоит из ключа локализации и соответствующей ему строчки, например, <string name="about">"About"</string>
.
Перейдите в папку для нужной локали или создайте такую папку. Детально процесс описан .
Создайте файл и назовите его strings.xml.
Скопируйте строки из приложенного файла в только что созданный.
Переопределите в переводах строки, которые вам нужны.
Список переводов для Android:
Ключи вида action_*_go
относятся к соответствующим жестам. Остальные – к подсказкам для всех жестов, информационным сообщениям или ошибкам.
Когда вместе с новыми версиями появляются новые ключи, если вы не переопределите соответствующие строки в вашем файле, текст для новых ключей будет показываться на английском языке.
Применять настройки рекомендуется при старте приложения.
Чтобы настроить интерфейс Oz Liveness, воспользуйтесь UICustomization
. Полный список полей находится .
По умолчанию SDK использует локаль устройства. Чтобы сменить локаль, используйте код ниже:
Подробнее приведенные примеры раскрыты в разделе Выполнение проверок для и соответственно.
Чтобы использовать медиафайлы, снятые не Oz Android SDK, укажите путь к ним в структуре :
sdkMediaResult
– объект с результатами записи видео () для дальнейшего использования при взаимодействии с Oz API.
sdkErrorString
– описание в случае их возникновения.
Версия Gradle
7.5.1
Версия Kotlin
1.7.21
Версия AGP
7.3.1
Java Target Level
1.8
Версия JDK
17
License error. License at (your_URI) not found
Отсутствует файл лицензии. Проверьте наименование и путь к файлу.
License error. Cannot parse license from (your_URI), invalid format
Файл лицензии поврежден. Пожалуйста, отправьте его нам по электронной почте.
License error. Bundle company.application.id is not in the list allowed by license (bundle.id1, bundle.id2)
Идентификатор приложения отсутствует в списке разрешенных для данной лицензии идентификаторов. Проверьте написание, если все корректно, нужна новая лицензия.
License error. Current date yyyy-mm-dd hh:mm:ss is later than license expiration date yyyy-mm-dd hh:mm:ss
Срок действия лицензии истек. Пожалуйста, свяжитесь с нами.
License is not initialized. Call 'OzLivenessSDK.init before using SDK
Лицензия не устанавливалась. Вызовите метод OzLivenessSDK.init
, как показано выше в этой статье
Журнал изменений для Android.
Обновления безопасности.
Обновления безопасности.
Обновления безопасности и журналирования.
Исправили ошибку RuntimeException
, появлявшуюся в режиме серверного Liveness на некоторых моделях телефонов.
Обновления безопасности.
Обновления безопасности.
Исправили ошибки.
Подняли версию плагина Android Gradle до 8.0.0.
Улучшили работу SDK.
Улучшили работу SDK.
Обновления безопасности.
Обновления безопасности.
Обновления безопасности.
Обновления безопасности.
При попытке передать пустую строку в качестве аргумента для метода setFolderId
теперь показывается информативная ошибка.
Исправили ошибку с бесконечно крутящимся спиннером, который появлялся при переключении пользователя на другое приложение во время прохождения проверки Liveness.
Исправили несколько ошибок, появлявшихся только на определенных моделях смартфонов.
Улучшили модель Liveness для проверки на устройстве.
Обновления безопасности.
Длительность жеста Селфи теперь можно менять (размер видеофайла также изменится).
Вы можете заменить логотип Oz своим, если ваша лицензия это предусматривает.
Убрали паузу после жеста Сканирование.
Если размер записанного видеофайла больше 10 Мбайт, видео будет сжато.
Обновления безопасности и журналирования.
Изменили алгоритм валидации для мастер-лицензии.
Снизили требования к compileSdkVersion
с 34 до 33.
Обновления безопасности.
Обновили модель Liveness для проверки на устройстве.
Исправили ошибки.
Улучшили работу механизмов лицензирования.
Улучшили работу SDK.
Исправили ошибки.
Добавили возможность использования мастер-лицензии, которая работает с любым bundle_id
.
Исправили ошибку со сжатием видео при гибридном анализе, которая возникала на некоторых моделях телефонов.
Исправили ошибки.
Добавили в структуру Analysis
поле sizeReductionStrategy
. Оно определяет размер файла, отправляемого на сервер после успешного завершения проверки на устройстве в составе гибридного анализа.
Настройка toFrameGradientColor
для кастомизации подсказки hintAnimationCustomization
больше не используется. Вместо нее используйте hintGradientColor
.
Сообщения для получаемых из API ошибок теперь детализированы.
Если несколько анализов назначаются на папку одновременно, система отправляет их группой. Таким образом, выбирается “худший” результат среди всех анализов, а не последний назначенный. Прочитать про отправку анализов группой можно здесь.
В анализе Liveness для количественного результата теперь берется максимальный из вычисленных. Прочитать о результате можно здесь.
Обновили модель Liveness для проверки на устройстве.
Добавили португальский язык (бразильский вариант).
Вы теперь можете добавить язык или изменить текущие переводы самостоятельно. Как это сделать, описано здесь.
Если медиафайл по каким-то причинам не загрузился, система повторяет загрузку.
Добавили новый метод для получения идентификатора телеметрии (логирования): getEventSessionId
.
Методы auth
и login
больше не используются. Вместо них, пожалуйста, используйте метод setApiConnection
.
OzConfig.baseURL
и OzConfig.permanentAccessToken
больше не используются.
Если пользователь закрывает экран во время съемки видео, соответствующая ошибка обрабатывается SDK.
Исправили ошибки и улучшили работу SDK.
Исправили ошибки.
При установке baseURL
= null
SDK теперь работает корректно.
Версии зависимостей SDK приведены в соответствие с версией Kotlin.
Добавлен новый тип анализа – гибридный (сейчас работает только для Liveness). В случае спорных результатов анализа на устройстве проводится дополнительная проверка на сервере.
Требования к версии Kotlin понижены до 1.7.21.
Обновлены модели для анализов на устройстве.
На некоторых моделях телефонов исправлена ошибка fatal device.
Текст подсказки теперь может выходить за границы рамки для лица по горизонтали (для основной камеры).
Фото, снятые во время однокадрового анализа, теперь передаются на сервер в оригинальном размере.
Удален класс OzAnalysisResult
. В параметре onSuccess
метода AnalysisRequest.run
вместо списка OzAnalysisResult
теперь передается структура RequestResult
.
Все исключения перенесены в папку com.ozforensics.liveness.sdk.core.exceptions
(детальная информация ниже).
Связанные с AnalysisRequest классы перенесены в com.ozforensics.liveness.sdk.analysis
(детальная информация ниже).
Прекращена поддержка методов:
Обновили экран настроек.
Добавили настройки для фона подсказки.
Добавили новые формы рамки (круг, квадрат).
Добавили виджет для защиты от мошенничества и набор настроек к нему. С помощью этого виджета вы можете уведомлять пользователей, что ведется съемка видео для, например, отправления заявки на кредит. Таким образом вы сможете защитить пользователей, если мошенники попытаются убедить их подтвердить такой запрос.
Метод OzLivenessSDK::init
при передаче параметра StatusListener
теперь работает корректно.
Изменили анимацию жеста "Сканирование".
Обратите внимание: с этой версии используется Kotlin 1.8.20.
Улучшили работу алгоритмов SDK.
Обновили модель для выполнения анализов на устройстве.
Обновили анимацию для солнечных очков / маски.
Немного уменьшили размеры овала для Liveness.
Исправили ошибку, появлявшуюся при выполнении серверных анализов после использования для авторизации permanentAccessToken.
Добавили возможность анимации подсказки.
Полосу статуса и системные кнопки теперь можно скрывать (работает с версии 7.0.0).
В метод OzLivenessSDK.init
теперь нужно первым параметром передавать context
.
OzAnalysisResult
теперь корректно показывает оценки по серверным анализам.
Исправлены ошибки инициализации и некорректного отображения настроек кастомизации, а также ошибки некорректной авторизации на версиях Android < 7.1.1.
Исправили ошибку с вылетами на версиях Android <6.
Поправили расположение овала для некоторых моделей телефонов.
Улучшили работу SDK.
Обновили систему безопасности.
Добавили некоторые внутренние улучшения.
Метод addMedia
больше не работает. Для загрузки медиафайлов воспользуйтесь методом uploadMedia
.
Из соображений безопасности мы теперь поставляем два типа библиотек: sdk только для серверного анализа и full для серверного анализа и анализа на устройстве.
Заменили OzCustomization
на UICustomization
.
Значительно расширили список настроек кастомизации SDK и обновили дизайн. Если вы хотите вернуть дизайн из прошлых версий, соответствующие настройки описаны здесь.
Добавили испанский язык.
Исправили ошибку с зависаниями на некоторых моделях телефонов.
SDK теперь снимает видео в разрешении 720p (с 6.4.2.3).
Наименование режимов анализа приведено в соответствие с iOS: SERVER_BASED и ON_DEVICE.
Исправили ошибку с отображением настроек локализации.
Теперь в качестве Liveness-экрана можно использовать Fragment.
Добавили новое поле params
в структуру Analysis
– с его помощью можно задавать дополнительные параметры, например, для извлечения на сервере лучшего кадра. Алгоритм "лучший кадр" выбирает из видеозаписи наиболее качественный и удачный кадр с лицом.
Жесты отдаления и приближения больше не поддерживаются.
Обновили биометрическую модель.
Добавили новую упрощенную структуру AnalysisRequest
– теперь конструировать запросы на анализы стало проще и удобнее.
Добавили модуль для выполнения анализов локально на устройстве. Подключите модуль:
Для запуска анализов biometry и liveness используйте соответствующие методы класса OzLivenessSDK
: runOnDeviceBiometryAnalysis
и runOnDeviceLivenessAnalysis
.
Liveness теперь работает плавнее.
На устройствах Xiaomi больше не зависает камера.
Оптимизировали преобразования изображений с камеры.
В OzLivenessSDK.uploadMedia
добавили параметр metadata
и методы OzLivenessSDK.uploadMediaAndAnalyze
для передачи metadata
в папки.
Добавили функции для инициализации SDK с лицензиями LicenseSources
: LicenseSource.LicenseAssetId
иLicenseSource.LicenseFilePath
. Для инициализации используйте метод OzLivenessSDK.init
.
Добавили возможность получения информации о лицензии после инициализации val licensePayload = OzLivenessSDK.getLicensePayload().
Добавили киргизский язык.
Добавили функции для локальных анализов.
Добавили конфигурацию рамки вокруг лица.
Номер версии на экране Liveness теперь отображается корректно.
Добавили поддержку основной камеры.
Добавили жест OneShot
.
Добавили состояний в OzAnalysisResult.Resolution
.
Добавили метод uploadMediaAndAnalyze
– он загружает список изображений/видео на сервер и сразу отправляет их на анализ.
OzMedia
превратили в OzAbstractMedia
и добавили подклассы изображений и видео.
Исправили ошибки камеры на некоторых устройствах.
Токен доступа теперь обновляется автоматически.
Переименовали accessToken
в permanentAccessToken
.
Добавили правила R8.
Упростили процесс конфигурации. Свойства config
теперь можно менять.
Исправили овальную рамку.
Убрали неиспользуемые параметры params из AnalyseRequest
.
Убрали лимит по умолчанию на количество попыток.
Убрали свойства конфигурации - baseURL
, accessToken
и так далее. Заменили их на свойство config, которое нужно инициализировать с помощью OzConfig.Builder.
Добавили поддержку лицензий. Их нужно устанавливать как raw ресурсы и передавать в OzConfig
через setLicenseResourceId.
Убрали методы, которым нужен был контекст. Заменили аналогами.
Анализ изображений теперь работает лучше.
Убрали ненужные зависимости.
Поправили ошибки журналирования.
Работа с OZ Mobile SDK в операционной системе «iOS»
Чтобы начать пользоваться нашим SDK, нужно выполнить следующие шаги.
Добавьте SDK в проект, как описано .
Получите лицензию на SDK – сгенерируйте тестовую самостоятельно на нашем или запросите «боевую» по . Для лицензии потребуется bundle id
. Добавьте лицензию в проект, как описано .
SDK к API. Это необязательный шаг, он выполняется, только если вам нужно обрабатывать какие-либо данные на сервере. Если вы используете , никакие данные никуда не передаются, и подключение к API не нужно.
Создайте контроллер для съемки, как описано – вы получите медиафайлы, которые потом можно будет отправить на анализ.
Запустите нужные вам проверки для полученных на предыдущем шаге медиафайлов. описано, как выполнять проверки.
Если вы хотите настроить внешний вид SDK, написано, как это делается.
Минимальная версия iOS: 11.
Минимальная версия Xcode: 15 (для версий 8.10.0 и новее).
Доступные языки: EN, RU, ES, HY, KK, KY, TR.
Исходный код примера приложения с использованием Oz Liveness SDK расположен в репозитории GitLab:
Список методов и полей SDK:
Синглтон (шаблон-одиночка) для Oz SDK.
Удаляет все видеоролики.
Параметры
-
Возвращает
-
Создает намерение (intent) для запуска Liveness.
Возвращает
-
Запрашивает ошибку из намерения (intent) OnActivityResult (при наличии).
Возвращает
Текст ошибки.
Запрашивает информацию о лицензии SDK.
Параметры
-
Возвращает
Запрашивает медиафайлы из намерения (intent) OnActivityResult.
Возвращает
Инициализирует SDK, используя данные лицензии.
Возвращает
-
Включает журналирование, запуская соответствующие механизмы Oz Liveness SDK.
Возвращает
-
Подключение к API.
Подключение к серверу телеметрии.
Удаляет сохраненный токен.
Параметры
-
Возвращает
-
Запрашивает идентификатор сессии телеметрии.
Параметры
-
Возвращает
Идентификатор сессии телеметрии (String).
Запрашивает версию SDK.
Параметры
-
Возвращает
Номер версии SDK (String).
Создает payload
с подписями медиафайлов.
Возвращает
payload
для загрузки вместе с медиафайлами, для которых он был сгенерирован.
Класс для выполнения проверок.
Запускает анализы.
Конструктор для AnalysisRequest.
Создает AnalysisRequest.
Параметры
-
Возвращает
Экземпляр класса AnalysisRequest.
Добавляет в запрос анализ.
Возвращает
Ошибку в случае ее появления.
Добавляет в запрос список анализов (можно назначить несколько анализов для одной папки).
Возвращает
Ошибку в случае ее появления.
Добавляет метаданные в создаваемую папку (только для анализа на сервере).
Возвращает
Ошибку в случае ее появления.
Добавляет один или несколько медиафайлов в папку для последующего выполнения проверок.
Возвращает
Ошибку в случае ее появления.
Устанавливает идентификатор для ранее созданной папки. Эта папка должна существовать на сервере, иначе создастся новая.
Возвращает
Ошибку в случае ее появления.
Конфигурация OzLivenessSDK (используйте OzLivenessSDK.config
).
Устанавливает длительность жеста Селфи (в миллисекундах).
Возвращает
Ошибку в случае ее появления.
Возможность отображать дополнительную отладочную информацию при нажатии на текст версии.
Количество попыток выполнить анализы, после которого SDK выдаст ошибку.
URL сервера API для работы с телеметрией.
Время, в течение которого нужно поместить лицо в рамку и выполнить жест (в миллисекундах).
Настройки повторной отправки медиафайлов.
Интерфейс для обработки ошибок.
Локализация текста.
Настройки журналирования.
Включает использование основной (задней) камеры для съемки вместо фронтальной.
Настройки кастомизации OzLivenessSDK (используйте OzLivenessSDK.config.customization
).
Скрывает системные части экрана: полосу статуса и кнопки. По умолчанию имеет значение True
.
Настройки кастомизации верхней панели.
Настройки кастомизации текста подсказки, ориентируясь на который, пользователь снимает фото или видео.
Настройки кастомизации для анимации подсказки.
Настройки кастомизации рамки вокруг лица.
Настройки кастомизации фона за рамкой.
Настройки кастомизации текста версии SDK.
Настройки кастомизации для защиты от мошенничества (сообщение о том, что идет запись).
Параметры настройки логотипа, если лицензия предусматривает возможность его изменения.
Действие, представленное на видео.
Содержит расширенную информацию о параметрах лицензии.
Класс для снятого фото или видео, может быть:
Фото документа.
Набор кадров (shot set) в архиве.
Видео с проверкой Liveness.
Тег в соответствии с жестом на видео.
Класс для хранения лицензии, может быть:
Содержит идентификатор лицензии.
Содержит путь к лицензии.
Класс для статуса анализа, может быть:
Статус означает, что анализы запущены.
Статус означает, что в настоящее время загружаются медиафайлы.
Тип анализа.
В настоящее время для типа DOCUMENTS
режим ON_DEVICE
не поддерживается.
Режим анализа.
Содержит информацию о том, какие анализы и к каким медиафайлам применять.
Сводный статус по выполненным анализам.
Количество попыток выполнения анализов, после которого SDK выдаст ошибку.
Настройки журналирования.
Настройки цвета, в зависимости от принимаемого значения могут быть:
Форма рамки.
Класс для описания ошибок.
Описывает отправленный на анализ медиафайл.
Описывает результат анализа для одного медиафайла.
Сводный результат анализа для всех медиафайлов.
Описывает результаты анализов для всех медиафайлов в папке.
Определяет метод авторизации.
Авторизация по токену.
Авторизация по логину и паролю.
Настройки повторной отправки медиафайлов.
Определяет размер файла, отправляемого на сервер после успешного завершения проверки на устройстве в составе гибридного анализа. По умолчанию отправляется сжатое видео.
Для добавления OZLivenessSDK в ваше приложение через менеджер зависимостей CocoaPods и интеграции OZLivenessSDK в проект Xcode добавьте в Podfile:
VERSION (опционально, по умолчанию устанавливается последняя версия) – версия, которую можно найти в .
Начиная с версии 8.1.0, можно использовать упрощенный код:
По умолчанию устанавливается полная версия SDK (с режимами анализа на сервере и на устройстве). Если нужен только серверный анализ, код будет выглядеть так:
Для версий 8.1.0 и выше:
Установка через SPM возможна для SDK версий 8.7.0 и новее.
Вы также можете добавить файлы SDK в проект вручную.
OZLivenessSDK.xcframework,
OZLivenessSDKResources.bundle,
OZLivenessSDKOnDeviceResources.bundle (если вы не используете анализы на устройстве, этот файл можно не скачивать).
Убедитесь, что:
оба файла xcframework отображаются в Target-Build Phases -> Link Binary With Libraries и Target-General -> Frameworks, Libraries, and Embedded Context;
файл(ы) bundle отображаются в Target-Build Phases -> Copy Bundle Resources.
Мастер-лицензия – это оффлайн-лицензия, с которой можно использовать мобильные SDK без ограничений по bundle_id
, в отличие от обычных лицензий. Для получения мастер-лицензии нужно создать пару ключей, как описано ниже. Отправьте нам публичный ключ по электронной почте, и вскоре после этого мы отправим вам мастер-лицензию.
Вашему приложению нужно будет подписать свой bundle_id
приватным ключом. Мобильные SDK проверяют подпись с помощью публичного ключа из мастер-лицензии. Действие таких лицензий ограничено по времени.
В этом разделе описано, как создавать приватный и публичный ключи.
Чтобы создать приватный ключ, последовательно запустите следующие команды:
Вы получите два файла:
privateKey.der – приватный ключ .der;
privateKey.txt – privateKey.der в кодировке base64. Содержимое этого файла используется в качестве подписи bundle_id хостового приложения.
Спецификация команд OpenSSL:
Чтобы создать публичный ключ, последовательно запустите следующие команды:
Вы получите публичный ключ publicKey.pub. Отправьте его нам по электронной почте. В ответ мы пришлем вам лицензию.
Инициализация SDK:
Установка лицензии:
Перед инициализацией SDK создайте закодированную base64 подпись для bundle_id
хостового приложения с помощью приватного ключа.
Пример создания подписи:
Передайте подпись как параметр masterLicenseSignature
во время инициализации SDK или установки лицензии.
Если подпись невалидна, инициализация продолжится по стандартной схеме: проверка включенных в лицензию bundle_id
.
Для работы SDK требуется лицензия. Сгенерируйте тестовую лицензию самостоятельно (внимание, страница на английском языке) или свяжитесь с нами по для выпуска продуктивной лицензии. Для подготовки лицензии потребуется bundle id
. Есть два способа добавить лицензию в проект:
Переименуйте файл в forensics.license и поместите его в проект. Прописывать путь в этом случае не нужно.
Обновление лицензии для уже работающего приложения или в том случае, если вы хотите держать лицензию вне проекта:
или
LicenseSource
– источник лицензии, LicenseData
– информация о лицензии. В этот метод встроена проверка наличия активной лицензии, если такая лицензия есть – будет использоваться она, а не та, путь к которой вы указали. Для принудительной замены лицензии используйте метод setLicense
.
Если при обработке лицензии возникнут ошибки, вы получите сообщение с описанием этих ошибок. Если ошибок нет, система выведет данные о лицензии. Вы также можете запросить эти данные с помощью OZSDK.licenseData
.
Сообщение об ошибке | Что делать |
---|
Для авторизации в Oz API используйте адрес API и , как показано ниже.
Мы рекомендуем указывать адрес API в вашем приложении на экране, предшествующем проверке Liveness. После установки адреса происходит служебный вызов API, и если вы устанавливаете адрес при запуске или инициализации приложения, нагрузка на сервер может быть слишком высокой.
Второй вариант: логин и пароль.
Мы рекомендуем использовать метод аутентификации по токену доступа, как более безопасный.
По умолчанию логи сохраняются вместе с данными по анализам. Если вы планируете хранить логи отдельно от этих данных, настройте отдельное подключение для :
Обратите внимание: описанная ниже функциональность работает, начиная с версии 8.1.0.
Чтобы добавить или обновить языковой пакет для Oz iOS SDK, используйте метод set(languageBundle: Bundle)
. Он информирует SDK, что вы планируете использовать отличный от стандартного бандл. В OzLocalizationCode
используйте кастомный язык (опционально).
Перевод состоит из ключа локализации и соответствующей ему строчки, например, "about" = "О программе"
.
Если вы не укажете кастомные язык и бандл, SDK будет использовать имеющиеся переводы.
Если бандл указан, а язык нет, приоритетным считается перевод для ключа из файла локализации кастомного бандла. Если такой ключ там не найден, перевод берется из стандартного бандла.
Если указаны кастомные и бандл, и язык, все переводы берутся из файла локализации кастомного бандла.
Список переводов для iOS:
Ключи вида Action.*.Task
относятся к соответствующим жестам. Остальные – к подсказкам для всех жестов, информационным сообщениям или ошибкам.
При появлении новых ключей, если переводов для них в кастомном бандле нет, будет показываться текст на языке по умолчанию (английском).
Создайте контроллер для съемки видео:
action
– перечень при записи видео.
По окончании съемки вызывается метод onOZLivenessResult(results:[OZMedia])
:
Метод возвращает результаты съемки в виде массива объектов[
]
, которые используются на следующем шаге для выполнения проверок.
Если наш SDK используется только для съемки, пропустите шаг "Выполнение проверок".
Если пользователь прервет запись видео (закроет экран), появится ошибка failedBecauseUserCancelled
.
Если наш SDK используется только для съемки, пропустите этот шаг.
Чтобы выполнить проверку, нужно загрузить в систему медиафайлы, а затем запустить для них анализы.
Как интерпретировать результаты анализов, описано здесь: .
Пример:
Для удаления медиафайлов после выполнения всех проверок используйте метод clearTempDirectory
.
Для добавления метаданных используйте метод AnalysisRequest.addFolderMeta
.
В структуре Analysis можно передать дополнительные параметры, например, для извлечения на сервере лучшего кадра.
Для добавления медиафайлов в определенную папку используйте метод addFolderId:
Если вы при обновлении с прежних версий (до 6.4.2 включительно) хотите сохранить привычный для клиентов дизайн, сбросьте настройки интерфейса экрана съемки до значений по умолчанию и примените следующие параметры (приведены только те параметры, которые нужно изменить):
Актуальную сборку демо-приложения Вы можете загрузить по .
Полную информацию о лицензии – объект .
Массив объектов .
Код языка SDK в соответствии с .
Добавьте через SPM зависимости пакетов по ссылке: (, как добавить зависимости). Файл OzLivenessSDK обязателен для добавления, OzLivenessSDKOnDevice можно не добавлять, если вы не используете анализы на устройстве.
Скачайте следующие файлы и добавьте их в проект:
Скачайте TensorFlow : потребуется версия 2.11.
Чтобы использовать медиафайлы, снятые не Oz iOS SDK, укажите путь к ним в структуре (полеbestShotURL
):
Удаленный метод
Замена
OzLivenessSDK.uploadMediaAndAnalyze
AnalysisRequest.run
OzLivenessSDK.uploadMedia
AnalysisRequest.Builder.uploadMedia
OzLivenessSDK.runOnDeviceBiometryAnalysis
AnalysisRequest.run
OzLivenessSDK.runOnDeviceLivenessAnalysis
AnalysisRequest.run
AnalysisRequest.build(): AnalysisRequest
-
AnalysisRequest.Builder.addMedia
AnalysisRequest.Builder.uploadMedia
Параметр | Тип | Описание |
data | Intent | Проверяемое намерение |
Параметр | Тип | Описание |
data | Intent | Проверяемое намерение |
Параметр | Тип | Описание |
tag | String | Метка сообщения |
log | String | Тело сообщения |
Параметр | Тип | Описание |
key | String | Ключ |
value | String | Значение |
Параметр | Тип | Описание |
folderID | String | Идентификатор папки |
Параметр | Тип | Описание |
selfieLength | Int | Длительность жеста Селфи (в миллисекундах). Должна быть в пределах 500-5000, по умолчанию – 700 |
Параметр | Тип | Описание |
allowDebugVisualization | Boolean | Включает / выключает отображение дополнительной информации |
Параметр | Тип | Описание |
baseURL | String | Адрес сервера |
Параметр | Тип | Описание |
faceAlignmentTimeout | Long | Значение тайм-аута |
Параметр | Тип | Описание |
livenessErrorCallback | ErrorHandler | Callback для обработки ошибок |
Параметр | Тип | Описание |
useMainCamera | Boolean |
|
Parameter | Type | Description |
image | Bitmap (@DrawableRes) | Изображение для лого |
size | Size | Размер лого (в dp) |
Значение | Описание |
OneShot | Лучший кадр из снятого видео |
Blank | Селфи с проверкой позиционирования лица |
Scan | Сканирование |
HeadRight | Поворот головы направо |
HeadLeft | Поворот головы налево |
HeadDown | Наклон головы вниз |
HeadUp | Подъем головы вверх |
EyeBlink | Моргание |
Smile | Улыбка |
Параметр | Тип | Описание |
expires | Float | Период времени, спустя который срок действия лицензии истечет |
features | Features | Особенности лицензии |
appIDS | [String] | Массив идентификаторов приложений |
Значение | Описание |
Blank | Видео без определенного жеста |
PhotoSelfie | Селфи-фото |
VideoSelfieOneShot | Видео с извлекаемым лучшим кадром |
VideoSelfieScan | Видео с жестом «сканирование» |
VideoSelfieEyes | Видео с жестом «моргание» |
VideoSelfieSmile | Видео с жестом «улыбка» |
VideoSelfieHigh | Видео с жестом «подъем головы наверх» |
VideoSelfieDown | Видео с жестом «наклон головы вниз» |
VideoSelfieRight | Видео с жестом «поворот головы направо» |
VideoSelfieLeft | Видео с жестом «поворот головы налево» |
PhotoIdPortrait | Фото, извлеченное из документа |
PhotoIdBack | Фото оборотной стороны документа |
PhotoIdFront | Фото лицевой стороны документа |
Параметр | Тип | Описание |
id | Int | Идентификатор лицензии |
Параметр | Тип | Описание |
path | String | Абсолютный путь к лицензии |
Значение | Описание |
BIOMETRY | Позволяет сравнить несколько фото или видео и оценить уровень схожести запечатленных на них людей. |
QUALITY | Проверяет наличие живого человека в кадре |
DOCUMENTS | Определяет наличие документа в кадре и проверяет корректность полей документа согласно его типу. |
Значение | Описание |
ON_DEVICE | Анализ на устройстве |
SERVER_BASED | Анализ на сервере |
HYBRID | Гибридный анализ для Liveness: если итоговая оценка анализа на устройстве больше определенного порога, медиафайл дополнительно анализируется на сервере |
Значение | Описание |
FAILED | Один или более анализов не удалось завершить из-за ошибок |
DECLINED | Проверка не пройдена (лица не совпадают или замечена спуфинг-атака) |
SUCCESS | Проверка успешно пройдена |
OPERATOR_REQUIRED | Результат анализов должен быть дополнительно перепроверен оператором |
Параметр | Тип | Описание |
singleCount | Int | Количество попыток для одного действия/жеста |
commonCount | Int | Суммарное количество попыток для всех действий/жестов, если используется последовательность (комбо) |
Значение | Описание |
EN | Английский |
RU | Русский |
HY | Армянский |
KK | Казахский |
KY | Кыргызский |
TR | Турецкий |
ES | Испанский |
PT-BR | Португальский |
Параметр | Тип | Описание |
allowDefaultLogging | Boolean | Включает запись в LogCat |
allowFileLogging | Boolean | Включает запись в файл |
journalObserver | StatusListener | Обработчик для получения событий на стороне приложения |
Параметр | Тип | Описание |
resId | Int | Ссылка на цвет в системе ресурсов Android |
Параметр | Тип | Описание |
hex | String | Цвет в формате HEX (например #FFFFFF) |
Параметр | Тип | Описание |
color | Int | Int-значение цвета в Android |
Значение | Описание |
Oval | Овал |
Rectangle | Прямоугольник |
Circle | Круг |
Square | Квадрат |
Параметр | Тип | Описание |
apiErrorCode | Int | Код ошибки |
message | String | Сообщение |
Параметр | Тип | Описание |
host | String | Адрес сервера API |
token | String | Токен доступа |
Параметр | Тип | Описание |
host | String | Адрес сервера API |
username | String | Логин |
password | String | Пароль |
Параметр | Тип | Описание |
attemptsCount | Int | Количество попыток отправки медиафайлов |
attemptsTimeout | Int | Интервал времени между попытками |
Значение | Описание |
UPLOAD_ORIGINAL | Исходное видео |
UPLOAD_COMPRESSED | Сжатое видео |
UPLOAD_BEST_SHOT | Полученный из видео лучший кадр |
UPLOAD_NOTHING | Ничего (в этом случае на сервер не отправляется ничего, папка не создается) |
License error. License at (your_URI) not found | Отсутствует файл лицензии. Проверьте наименование и путь к файлу. |
License error. Cannot parse license from (your_URI), invalid format | Файл лицензии поврежден. Пожалуйста, отправьте его нам по электронной почте. |
License error. Bundle company.application.id is not in the list allowed by license (bundle.id1, bundle.id2) | Идентификатор приложения отсутствует в списке разрешенных для данной лицензии идентификаторов. Проверьте написание, если все корректно, нужна новая лицензия. |
License error. Current date yyyy-mm-dd hh:mm:ss is later than license expiration date yyyy-mm-dd hh:mm:ss | Срок действия лицензии истек. Пожалуйста, свяжитесь с нами. |
License is not initialized. | Лицензия не устанавливалась. Добавьте лицензию в проект. |
Метод executeLiveness
больше не используется. Съемка теперь запускается с помощью метода startLiveness
.
Обновили код для получения результата съемки.
Обновления безопасности и телеметрии.
При попытке передать пустую строку в качестве аргумента для методов addFolderId
(iOS) и setFolderID (Android)
теперь показывается информативная ошибка.
Android: исправили ошибку с бесконечно крутящимся спиннером, который появлялся при переключении пользователя на другое приложение во время прохождения проверки Liveness.
Android: исправили несколько ошибок, появлявшихся только на определенных моделях смартфонов.
Обновления безопасности и телеметрии.
Android: улучшили модель Liveness для проверки на устройстве.
Android: обновления безопасности.
iOS: синхронизировали с Android сообщения, которые SDK показывает после загрузки медиафайла.
iOS: исправили баг с задержками запуска анализа, которые иногда возникали для анализа по одному кадру.
Длительность жеста Селфи теперь можно менять (размер видеофайла также изменится).
Убрали паузу после жеста Сканирование.
Обновления безопасности и журналирования.
Android: если размер записанного видеофайла больше 10 Мбайт, видео будет сжато.
Android: обновили модель Liveness для проверки на устройстве.
iOS: изменили поведение для отсутствующих переводов при добавлении новых ключей в локализацию: теперь вместо названия ключа показывается текст на языке по умолчанию (английском).
Исправили ошибки.
Добавили возможность использования мастер-лицензии, которая работает с любым bundle_id
.
Android: исправили ошибку со сжатием видео при гибридном анализе, которая возникала на некоторых моделях телефонов.
iOS: исправили ошибку с мигающим фоном при съемке.
Выпущена первая версия.
Этот раздел описывает, как работать с Oz Flutter SDK для iOS и Android.
Перед началом работы мы рекомендуем установить:
Flutter версии 3.0.0 или выше;
Android SDK версии 21 или выше;
dart версии 2.18.6 или выше;
iOS версии 13 или выше;
Xcode.
Образец кода для Flutter вы можете найти здесь.
Параметр | Тип | Описание |
actions | Список возможных действий |
Параметр | Тип | Описание |
context | Context | Базовый класс Context |
licenseSources | Список источников лицензий |
statusListener (опционально) | StatusListener | Обработчик для проверки результата |
Параметр | Тип | Описание |
connection | Тип подключения |
statusListener | StatusListener<String?> | Обработчик |
Параметр | Тип | Описание |
connection | Тип подключения |
statusListener | StatusListener<String?> | Обработчик |
Параметр | Тип | Описание |
media | Массив медиафайлов |
Параметр | Тип | Описание |
onStatusChange , | Callback-функция:
|
onError | Callback-функция:
| Вызывается в случае ошибки. |
onSuccess | Callback-функция:
|
Параметр | Тип | Описание |
analysis | Структура с данными об анализе |
Параметр | Тип | Описание |
analysis | Массив структур Analysis |
Параметр | Тип | Описание |
mediaList | Объект или массив объектов OzAbstractMedia |
Параметр | Тип | Описание |
attemptsSettings | Количество попыток |
Parameter | Type | Description |
uploadMediaSettings | Устанавливает количество попыток и интервал между ними |
Параметр | Тип | Описание |
localizationCode | Код языка SDK |
Параметр | Тип | Описание |
logging | Настройки журналирования |
Параметр | Тип | Описание |
closeIconRes | Int (@DrawableRes) | Иконка кнопки закрытия |
closeIconTint | Цвет кнопки закрытия |
titleTextFont | Int (@FontRes) | Шрифт текста на верхней панели |
titleTextFontStyle | Int (значения из | Стиль шрифта текста на верхней панели |
titleTextSize | Int | Размер текста на верхней панели (в sp, 12-18) |
titleTextAlpha | Int | Непрозрачность текста на верхней панели (в %, 0-100) |
titleTextColor | Цвет текста на верхней панели |
backgroundColor | Цвет фона верхней панели |
backgroundAlpha | Int | Непрозрачность фона верхней панели (в %, 0-100) |
isTitleCentered | Boolean | Центрирует текст на верхней панели |
title | String | Текст на верхней панели |
Параметр | Тип | Описание |
textFont | String | Шрифт текста подсказки |
textStyle | Int (значения из | Стиль текста подсказки |
textSize | Int | Размер шрифта текста подсказки (в sp, 12-34) |
textColor | Цвет текста подсказки |
textAlpha | Int | Непрозрачность текста подсказки (в %, 0-100) |
verticalPosition | Int | Положение подсказки по вертикали (от нижнего края экрана, в %, 0-100) |
backgroundColor | Цвет фона |
backgroundOpacity | Int | Непрозрачность фона |
backgroundCornerRadius | Int | Радиус скругления углов рамки фона (в dp, 0-20) |
Параметр | Тип | Описание |
hintGradientColor | Цвет градиента |
hintGradientOpacity | Int | Непрозрачность градиента |
animationIconSize | Int | Размер квадрата, в который вписан значок анимации |
hideAnimation | Boolean | Настройки скрытия анимации, при значении |
Параметр | Тип | Описание |
geometryType | Форма рамки (oval, rectangle, circle или square) |
cornerRadius | Int | Угловой радиус прямоугольника (в dp, 0-20) |
strokeDefaultColor | Цвет рамки, когда лицо не в кадре |
strokeFaceInFrameColor | Цвет рамки, когда лицо в кадре |
strokeAlpha | Int | Непрозрачность рамки (в %, 0-100) |
strokeWidth | Int | Толщина линии (в dp, 0-20) |
strokePadding | Int | Отступ от рамки до овала, куда нужно поместить лицо (в dp, 0-10) |
Параметр | Тип | Описание |
backgroundColor | Цвет фона |
backgroundAlpha | Int | Непрозрачность фона (в %, 0-100) |
Параметр | Тип | Описание |
textFont | Int (@FontRes) | Шрифт текста версии SDK |
textSize | Int | SDK version text size (в sp, 12-16) |
textColor | Цвет текста версии SDK |
textAlpha | Int | Непрозрачность текста версии SDK (в %, 20-100) |
Параметр | Тип | Описание |
textMessage | String | Текст сообщения |
textFont | String | Шрифт текста сообщения |
textSize | Int | Размер шрифта сообщения (в px, 12-18) |
textColor | Цвет текста сообщения |
textAlpha | Int | Непрозрачность текста сообщения (в %, 0-100) |
backgroundColor | Цвет фона сообщения |
backgroundOpacity | Int | Непрозрачность фона сообщения |
cornerRadius | Int | Радиус скругления углов рамки фона (в px, 0-20) |
flashColor | Цвет мигающего индикатора рядом с сообщением |
Параметр | Тип | Описание |
tag | Тег для фото документа |
photoPath | String | Абсолютный путь к фото |
additionalTags (опционально) | String | Дополнительные теги, если требуются (в том числе не из перечисления OzMediaTag) |
metaData | Map<String, String> | Метаданные медиафайла |
Параметр | Тип | Описание |
tag | Тег для shot set |
archivePath | String | Путь к архиву |
additionalTags (опционально) | String | Дополнительные теги, если требуются (в том числе не из перечисления OzMediaTag) |
metaData | Map<String, String> | Метаданные медиафайла |
Параметр | Тип | Описание |
tag | Тег видео |
videoPath | String | URL видео с проверкой Liveness |
bestShotPath (optional) | String | URL лучшего кадра в формате PNG |
preferredMediaPath (optional) | String | URL медиаконтейнера API |
additionalTags (опционально) | String | Дополнительные теги, если требуются (в том числе не из перечисления OzMediaTag) |
metaData | Map<String, String> | Метаданные медиафайлам |
Параметр | Тип | Описание |
analysis | Информация о том, какие анализы и к каким медиафайлам применять. |
Параметр | Тип | Описание |
media | Объект, который загружается в данный момент |
index | Int | Номер объекта в списке |
from | Int | Количество объектов |
percentage | Int | Процент завершения |
Параметр | Тип | Описание |
type | Тип анализа |
mode | Режим анализа |
mediaList | Массив объектов OzAbstractMedia |
params (опционально) | Map<String, Any> | Дополнительные параметры |
sizeReductionStrategy | Определяет размер файла, отправляемого на сервер после успешного завершения проверки на устройстве в составе гибридного анализа |
Параметр | Тип | Описание |
mediaId | String | Идентификатор медиафайла |
mediaType | String | Тип медиа |
originalName | String | Первоначальное название файла |
ozMedia | Медиафайл |
tags | List<String> | Теги файла |
Параметр | Тип | Описание |
confidenceScore | Float | Итоговая оценка |
isOnDevice | Boolean | Режим анализа |
resolution | Общий результат анализа |
sourceMedia | Анализируемый медиафайл |
type | Тип анализа |
Параметр | Тип | Описание |
analysisResults | Результат анализа |
folderId | String | Идентификатор |
resolution | Общий результат анализа |
Параметр | Тип | Описание |
resolution | Общий результат анализа |
type | Тип анализа |
mode | Режим анализа |
resultMedia | Список результатов отдельных анализов |
confidenceScore | Float | Итоговая оценка |
analysisId | String | Идентификатор анализа |
params | @RawValue Map<String, Any> | Дополнительные параметры папки |
error | Ошибка |
serverRawResponse | String | Ответ сервера |
Код ошибки | Сообщение | Описание |
ERROR = 3 | Error. | Неизвестная ошибка |
ATTEMPTS_EXHAUSTED_ERROR = 4 | Error. Attempts exhausted for liveness action. |
VIDEO_RECORD_ERROR = 5 | Error by video record. | Ошибка записи видео |
NO_ACTIONS_ERROR = 6 | Error. OzLivenessSDK started without actions. |
FORCE_CLOSED = 7 | Error. Liveness activity is force closed from client application. | Клиент закрыл экран Liveness во время работы |
DEVICE_HAS_NO_FRONT_CAMERA = 8 | Error. Device has not front camera. | Фронтальная камера на устройстве не найдена |
DEVICE_HAS_NO_MAIN_CAMERA = 9 | Error. Device has not main camera. | Задняя (основная) камера на устройстве не найдена |
DEVICE_CAMERA_CONFIGURATION_NOT_SUPPORTED = 10 | Error. Device camera configuration is not supported. | Liveness не поддерживает конфигурацию камеры на устройстве |
FACE_ALIGNMENT_TIMEOUT = 12 | Error. Face alignment timeout in OzLivenessSDK.config.faceAlignmentTimeout milliseconds | Время подготовки, выделенное на съемку, истекло |
ERROR = 13 | The check was interrupted by user | Пользователь закрыл экран Liveness во время проверки |
Образец кода для Flutter вы можете найти здесь.
Добавьте строки из блока ниже в pubspec.yaml проекта, где планируется использовать плагин.
Поместите файл лицензии (например, license.json или forensics.license) в папку Flutter application/assets. В pubspec.yaml добавьте asset:
Для Android укажите путь к репозиторию Oz в /android/build.gradle, раздел allprojects → repositories:
Для Flutter 8.24.0 и новее или Android Gradle plugin 8.0.0 и новее добавьте строку в android/gradle.properties:
Минимальная версия SDK – 21 или выше:
Для iOS в Runner → Info → Deployment target → iOS Deployment Target установите версию 13 или выше.
В ios/Podfile закомментируйте строку use_frameworks!
(#use_frameworks!
).
Для инициализации вызовите метод init
. Название и путь к файлу лицензии должны совпадать с теми, которые вы указали в pubspec.yaml (например, assets/license.json).
Для подключения используйте полученные от нас логин, пароль и адрес API сервера.
На стадии коммерческого использования вместо логина и пароля мы рекомендуем использовать токен доступа, который можно получить с помощью метода API /api/authorize/auth
.
По умолчанию логи сохраняются вместе с данными по анализам. Если вы планируете хранить логи отдельно от этих данных, настройте отдельное подключение для телеметрии:
или
Для запуска съемки и получения результата вызовите метод startLiveness
:
Обратите внимание: для версий до 8.11 включительно метод для запуска называется executeLiveness
. Он возвращает результат съемки.
Для получения результата съемки в версии 8.12 и новее подпишитесь на livenessResult
, как показано ниже:
Размещенный ниже код поможет вам запустить анализы.
Создайте объект Analysis
:
Запустите созданный анализ:
Результат анализа запишется в массив объектов analysisResult
.
Для анализа медиафайла, полученного не нашим SDK, используйте следующий код:
Итоговый блок кода (пример):
Журнал изменений для iOS.
Улучшили работу SDK.
Добавили поддержку Xcode 16.
Обновления безопасности и телеметрии.
Обновления безопасности.
Исправили ошибки.
Для работы SDK теперь нужен Xcode 15 и новее.
Обновления безопасности.
Исправили ошибки.
Улучшили работу SDK.
Улучшили работу SDK.
Исправили ошибки.
Обновления журналирования.
Обновления безопасности.
Добавили образец кода для SwiftUI.
При попытке передать пустую строку в качестве аргумента для метода addFolderId
теперь показывается информативная ошибка.
Исправили ошибки.
Синхронизировали с Android сообщения, которые SDK показывает после загрузки медиафайла.
Исправили баг с задержками запуска анализа, которые иногда возникали для анализа по одному кадру.
Длительность жеста Селфи теперь можно менять (размер видеофайла также изменится).
Вы можете заменить логотип Oz своим, если ваша лицензия это предусматривает.
Убрали паузу после жеста Сканирование.
Обновили код в Readme.md.
Обновления безопасности и журналирования.
Обновления безопасности.
Изменили поведение для отсутствующих переводов при добавлении новых ключей в локализацию: теперь вместо названия ключа показывается текст на языке по умолчанию (английском).
Исправили ошибки.
Улучшили работу механизмов лицензирования.
Добавили возможность использования мастер-лицензии, которая работает с любым bundle_id
.
Исправили ошибку с мигающим фоном при съемке.
Исправили ошибки.
Добавили в структуру Analysis
поле sizeReductionStrategy
. Оно определяет размер файла, отправляемого на сервер после успешного завершения проверки на устройстве в составе гибридного анализа.
Сообщения для получаемых из API ошибок теперь более информативны.
Настройка toFrameGradientColor
для кастомизации подсказки hintAnimationCustomization
больше не используется. Вместо нее используйте hintGradientColor
.
Вернули поддержку iOS 11.
Если несколько анализов назначаются на папку одновременно, система отправляет их группой. Таким образом, выбирается “худший” результат среди всех анализов, а не последний назначенный. Прочитать про отправку анализов группой можно здесь.
В анализе Liveness для количественного результата теперь берется максимальный из вычисленных. Прочитать о результате можно здесь.
Обновили модель Liveness для проверки на устройстве.
Добавили португальский язык (бразильский вариант).
Вы теперь можете добавить язык или изменить текущие переводы самостоятельно. Как это сделать, описано здесь.
Если медиафайл по каким-то причинам не загрузился, система теперь повторяет загрузку.
Добавили новый метод для получения идентификатора телеметрии (логирования): getEventSessionId
.
Методы setPermanentAccessToken
, configure
и login
больше не используются. Вместо них, пожалуйста, используйте метод setApiConnection
.
Метод setLicense(from path:String)
больше не используется. Вместо него, пожалуйста, используйте метод setLicense(licenseSource: LicenseSource)
.
Исправили ошибки и улучшили работу SDK.
Исправили ошибки, улучшили работу алгоритмов SDK.
Добавлен новый тип анализа – гибридный (сейчас работает только для Liveness). В случае спорных результатов анализа на устройстве проводится дополнительная проверка на сервере.
Обновлены модели для выполнения анализов на устройстве.
Обновили метод run
.
Добавили новые структуры RequestStatus
(статус анализа), ResultMedia
(статус анализов для одного медиафайла) и RequestResult
(сводный результат анализа для всех медиа).
Структура OzAnalysisResult
больше не используется; вместо нее – обновленная структура AnalysisResult
.
Для объекта OZMedia
теперь можно добавить дополнительные теги не из списка основных.
Длительность видео для жеста “Селфи” снижена до 0,7 секунд, соответственно, уменьшились размер файла и время его загрузки на сервер.
Текст подсказки теперь может выходить за границы рамки для лица по горизонтали (для основной камеры).
Прекращена поддержка методов:
Добавили настройки для фона подсказки.
Добавили новые формы рамки (круг, квадрат).
Добавили виджет для защиты от мошенничества и набор настроек к нему. С помощью этого виджета вы можете уведомлять пользователей, что ведется съемка видео для, например, отправления заявки на кредит. Таким образом вы сможете защитить пользователей, если мошенники попытаются убедить их подтвердить такой запрос.
Синхронизировали значения настроек кастомизации по умолчанию с Android.
Добавили испанский язык.
iOS 11 больше не поддерживается; минимальная необходимая версия – 12.
Исправили ошибки, связанные с проведением однокадрового анализа на стороне сервера.
Улучшили работу алгоритмов SDK.
Исправлен баг с серверными анализами при отсутствии видео: если по каким-то причинам видео не загрузилось в папку (например, при потере интернет-соединения), папка будет пустой – без видео и назначенных анализов.
Улучшили работу Liveness-анализов на устройстве.
Обновили анимацию для солнечных очков / маски.
Исправили ошибку с добавлением анализа.document
.
Обновили версию TensorFlow до 2.11.
Исправили несколько багов, в том числе ошибки биометрической проверки, возникавшие на некоторых моделях телефонов.
Добавили возможность управлять цветом анимации.
Обновили модель для выполнения анализов.
Добавили метод uploadMedia
в AnalysisRequest
. Метод addMedia
больше не используется.
Исправили ошибку в жесте Комбо.
Добавили кнопку для сброса настроек языка и темы SDK.
Увеличили тайм-аут сетевых запросов до 90 с.
Добавили возможность управлять размером значка анимации.
Исправили баги.
Значительно расширили список настроек кастомизации SDK и обновили дизайн. Если вы хотите вернуть дизайн из прошлых версий, соответствующие настройки описаны здесь.
Синхронизировали ответы методов run
с Android SDK, теперь метод возвращает массив результатов анализов.
Синхронизировали нумерацию версий с Android SDK.
Добавили новое поле params
в структуру Analysis
– с его помощью можно задавать дополнительные параметры, например, для извлечения на сервере лучшего кадра. Алгоритм "лучший кадр" выбирает из видеозаписи наиболее качественный и удачный кадр с лицом.
Исправили ошибки локализации.
Поменяли жест Комбо.
Теперь можно запускать проверку Liveness на устройстве для анализа изображений, снятых вне SDK.
Жесты отдаления и приближения больше не поддерживаются.
Добавили новую упрощенную структуру анализа AnalysisRequest.
Добавили методы для локального анализа: runOnDeviceLivenessAnalysis
и runOnDeviceBiometryAnalysis
.
Версию для установки можно выбрать: стандартная установка дает доступ ко всем функциям, а в версии core
(OzLivenessSDK/Core
) отсутствует возможность делать анализы локально на устройстве.
Добавили универсальный метод для загрузки данных на сервер и немедленного запуска анализов: uploadAndAnalyse
.
Дополнили процесс лицензирования: теперь лицензию можно указать при инициализации SDK. Воспользуйтесь методом OZSDK(licenseSources: [LicenseSource], completion: @escaping ((LicenseData?, LicenseError?) -> Void))
, где LicenseSource
– путь до лицензии, LicenseData
– информация о лицензии.
Добавили метод setLicense
для принудительной установки лицензии.
Добавили турецкий язык.
Добавили киргизский язык.
Добавили Completion Handler
для результатов анализа.
Добавили в телеметрию передачу Error User Info
, теперь можно узнавать подробности об ошибке, которая происходит в работе анализа.
Добавили локальные анализы – теперь анализ можно делать прямо на устройстве.
Добавили рамки для лица, теперь их две – овал и прямоугольник.
Теперь поддерживаем Xcode 12.5.1+.
Добавили конфигурацию SDK через лицензии.
Добавили жест One Shot
.
В OZVerificationResult
добавили bestShotURL
(содержит изображение лучшего кадра) и preferredMediaURL
(содержит медиаконтейнер с url лучшего видео для назначения анализа)
При запуске локальной проверки теперь можно указать тип камеры: front / back.
Авторизационные сессии теперь пролонгируются автоматически.
Обновили интерфейсы авторизации.
Добавили казахский язык.
Добавили тексты для ошибок лицензирования.
Сетевые запросы теперь можно отменить.
Для лицензии можно указать Bundle.
Добавили параметризации анализов documentAnalyse
.
Исправили ошибки при сборках проекта. (Xcode 12.4 / Cocoapods 1.10.1).
Добавили поддержку лицензий.
Теперь поддерживаем Xcode 12. 11 поддерживать перестали.
Исправили ошибку documentAnalyse
– анализы не назначались без указания analyseStates
. Теперь все корректно.
Поправили ошибки в сборе логов.
Синглтон (шаблон-одиночка) для Oz SDK.
Инициализирует OZSDK, используя данные лицензии. В качестве замыкания передаются либо данные о лицензии, либо LicenseError.
Возвращает
-
Принудительно устанавливает лицензию.
Запрашивает токен доступа для пользователя.
Возвращает
Токен доступа или ошибку.
Запрашивает токен доступа для отправки телеметрии.
Возвращает
Токен доступа или ошибку.
Проверяет, существует ли токен доступа.
Параметры
-
Возвращает
Результат проверки – true или false.
Удаляет сохраненный токен доступа.
Параметры
-
Возвращает
-
Создает контроллер для проверки Liveness.
Возвращает
UIViewController или исключение.
Создает контроллер для проверки Liveness.
Возвращает
UIViewController или исключение.
Удаляет все видеоролики.
Параметры
-
Возвращает
-
Запрашивает идентификатор сессии телеметрии.
Параметры
-
Возвращает
Идентификатор сессии телеметрии (String).
Устанавливает кастомный бандл, в котором содержатся переводы строк.
Возвращает
-
Устанавливает длительность жеста Селфи (в миллисекундах).
Создает payload
с подписями медиафайлов.
Возвращает
payload
для загрузки вместе с медиафайлами, для которых он был сгенерирован.
Язык SDK (если язык не указывается, локаль устанавливается автоматически).
Хост, к которому обращается система для проверки Liveness.
Количество попыток выполнения анализов, после которого SDK выдаст ошибку.
Версия SDK.
Делегат OZSDK.
Запрашивает результаты проверки Liveness.
Возвращает
-
Обрабатывает ошибки.
Возвращает
-
Протокол для выполнения проверок.
Создает инстанс AnalysisRequest.
Возвращает
Инстанс AnalysisRequest.
Добавляет в AnalysisRequest анализы.
Возвращает
-
Загружает медиафайл(ы) на сервер.
Возвращает
-
Добавляет идентификатор папки для загрузки на сервер.
Возвращает
-
Добавляет в папку метаданные.
Возвращает
-
Запускает анализы.
Возвращает
Результат проверок или ошибку.
Настройки кастомизации OzLivenessSDK (используйте OZSDK.customization
).
Настройки кастомизации верхней панели.
Настройки кастомизации текста подсказки, ориентируясь на который, пользователь снимает фото или видео.
Настройки кастомизации для анимации подсказки.
Настройки кастомизации рамки вокруг лица.
Настройки кастомизации фона за рамкой.
Настройки кастомизации текста версии SDK.
Настройки защиты от мошенников – сообщения, предупреждающего человека о том, что его снимают.
Параметры настройки логотипа, если лицензия предусматривает возможность его изменения.
Источник лицензии.
Полная информация о лицензии
Действие, представленное на видео.
Код языка SDK в соответствии с ISO 639-1.
Содержит информацию о медиафайле.
Тип медиафайла.
Описание ошибки.
Содержит информацию о том, какие анализы и к каким медиафайлам применять.
Тип анализа.
В настоящее время для типа DOCUMENTS
режим onDevice
не поддерживается.
Режим анализа.
Отображает статус обработки медиафайлов.
Отображает статус загрузки файлов.
Отображает промежуточный результат обработки анализов.
Описывает результат анализа для одного медиафайла.
Сводный результат анализа для всех медиафайлов.
Содержит результат проверок.
Сводный статус по выполненным анализам.
Содержит результаты одиночных анализов.
Форма рамки.
Возможные ошибки лицензирования.
Тип авторизации.
Настройки повторной отправки медиафайлов.
Определяет размер файла, отправляемого на сервер после успешного завершения проверки на устройстве в составе гибридного анализа. По умолчанию отправляется сжатое видео.
[]
Вызывается при изменении статуса AnalysisRequest. Текущий статус отображается в .
Вызывается по завершении анализов. В качестве результата передается объект .
[]
[]
[]
List<>
List<>
Превышено количество
на видео не найдены
Параметр | Тип | Описание |
---|---|---|
Параметр
Тип
Описание
actions
List<VerificationAction>
Действия на видео
use_main_camera
Boolean
Если установлено True
, используется основная камера, False
– передняя
Параметр
Тип
Описание
licenseSources
Источник лицензии
Параметр
Тип
Описание
licenseSource
Источник лицензии
Параметр
Тип
Описание
apiConnection
Параметры авторизации
Параметр
Тип
Описание
eventsConnection
Параметры авторизации для телеметрии
Параметр
Тип
Описание
delegate
Делегат Oz Liveness
actions
Действие на видео
cameraPosition (опционально)
AVCaptureDevice.Position
front
– фронтальная камера (по умолчанию),
back
– основная камера
Параметр
Тип
Описание
actions
Действие на видео
FaceCaptureCompletion
type alias
пример использования::
public typealias FaceCaptureCompletion = (_ results: [OZMedia]?, _ error: OZVerificationStatus?) -> Void
Callback-функция, которая вызывается по завершении метода. В качестве замыкания передается либо массив объектов OzMedia, либо ошибка.
cameraPosition (опционально)
AVCaptureDevice.Position
front
– фронтальная камера (по умолчанию),
back
– основная камера
Параметр
Тип
Описание
languageBundle
Bundle
Бандл для поиска переводов
Параметр
Тип
Описание
selfieLength
Int
Длительность жеста Селфи (в миллисекундах). Должна быть в пределах 500-5000, по умолчанию – 700
Параметр
Тип
Описание
media
Массив медиафайлов
Параметр
Тип
Описание
String
Код локали
Параметр
Тип
Описание
host
String
Адрес хоста
Параметр
Тип
Описание
singleCount
Int
Количество попыток для одного действия/;tcnf
commonCount
Int
Суммарное количество попыток для всех действий/жестов, если используется последовательность (комбо)
faceAlignmentTimeout
Float
Время, в течение которого нужно поместить лицо в рамку
uploadMediaSettings
Настройки повторной отправки медиафайлов
Параметр
Тип
Описание
version
String
Номер версии
Параметр
Тип
Описание
results
[OzMedia]
Массив объектов OzMedia
Параметр
Тип
Описание
status
Описание ошибки
Параметр
Тип
Описание
folderId (опционально)
String
Идентификатор папки; указывается только в том случае, если нужно загрузить файлы в определенную папку
Параметр
Тип
Описание
analysis
Analysis
Структура с информацией об анализах
Параметр
Тип
Описание
media
Объект или массив объектов OzMedia
Параметр
Тип
Описание
folderId
String
Идентификатор папки
Параметр
Тип
Описание
meta
[String]
Массив метаданных; пример:
["meta1": "data1"]
Параметр
Тип
Описание
statusHandler
Callback-функция
statusHandler: @escaping ((_ status: RequestStatus) -> Void)
Вызывается в момент смены состояния метода. В качестве замыкания передается RequestStatus, который показывает статус обработки анализов.
errorHandler
Callback-функция
errorHandler: @escaping ((_ error: Error) -> Void)
Вызывается при возникновении ошибки
completionHandler
Callback-функция
completionHandler: @escaping (_ results : RequestResult) -> Void)
Вызывается по завершении метода. В качестве замыкания передается RequestResult, который содержит информацию о результатах проверок.
Параметр
Тип
Описание
closeButtonIcon
UIImage
Иконка кнопки закрытия
closeButtonColor
UIColor
Цвет кнопки закрытия, tintColor
titleFont
UIFont
Шрифт текста на верхней панели
titleColor
UIColor
Цвет текста на верхней панели
backgroundColor
UIColor
Цвет фона верхней панели
titleText
String
Текст на верхней панели
Параметр
Тип
Описание
textFont
UIFont
Шрифт текста подсказки
textColor
UIColor
Цвет текста подсказки
backgroundColor
UIColor
Цвет фона текста подсказки
verticalPosition
Int
Положение подсказки по вертикали (от верхнего края экрана, в %, 0-100)
hideTextBackground
Bool
Скрывает подложку подсказки
backgroundCornerRadius
Int
Угловой радиус подложки
Параметр
Тип
Описание
hideAnimation
Bool
Переключатель для отображения анимации, значение True
скрывает анимацию
animationIconSize
CGfloat
Размер стороны квадрата, в который вписана иконка анимации
hintGradientColor
UIColor
Цвет градиента у рамки
Параметр
Тип
Описание
geometryType
Форма рамки: овал, прямоугольник, круг или квадрат
cornerRadius
CGFloat
Угловой радиус прямоугольника/квадрата (в dp)
strokeFaceNotAlignedColor
UIColor
Цвет рамки, когда лицо не в кадре
strokeFaceAlignedColor
UIColor
Цвет рамки, когда лицо в кадре
strokeWidth
CGFloat
Толщина линии (в dp, 0-20)
strokePadding
CGFloat
Отступ от рамки до овала, куда нужно поместить лицо (в dp, 0-10)
Параметр
Тип
Описание
backgroundColor
UIColor
Цвет фона за рамкой
Параметр
Тип
Описание
textFont
UIFont
Шрифт текста версии SDK
textColor
UIColor
Цвет текста версии SDK
Parameter
Type
Description
customizationEnableAntiscam
Bool
Включает защиту от мошенников
customizationAntiscamTextMessage
String
Текст сообщения
customizationAntiscamTextFont
UIFont
Шрифт текста сообщения
customizationAntiscamTextColor
UIColor
Цвет текста сообщения
customizationAntiscamBackgroundColor
UIColor
Цвет подложки сообщения
customizationAntiscamCornerRadius
CGFloat
Угловой радиус подложки
customizationAntiscamFlashColor
UIColor
Цвет мигающего индикатора рядом с сообщением
Parameter
Type
Description
image
UIImage
Изображение для лого
size
CGSize
Размер лого (в dp)
Значение
Описание
licenseFilePath
Абсолютный путь к лицензии (String)
licenseFileName
Имя файла лицензии
Параметр
Тип
Описание
appIDS
[String]
Массив идентификаторов приложений
expires
TimeInterval
Период времени, спустя который срок действия лицензии истечет
features
Features
Особенности лицензии
configs (опционально)
ABTestingConfigs
Дополнительная конфигурация
Значение
Описание
smile
Улыбка
eyes
Моргание
scanning
Сканирование
selfie
Селфи с проверкой позиционирования лица
one_shot
Лучший кадр из снятого видео
left
Поворот головы налево
right
Поворот головы направо
down
Наклон головы вниз
up
Подъем головы наверх
Значение
Описание
en
Английский
ru
Русский
hy
Армянский
kk
Казахский
ky
Кыргызский
tr
Турецкий
es
Испанский
pt-BR
Португальский (бразильский вариант)
custom(String)
Кастомный язык (код языка ISO 639-1, две буквы)
Параметр
Тип
Описание
movement
Действие на видео
mediaType
Тип медиафайла
metaData
[String]
Метаданные, если есть
videoURL
URL
URL видео с проверкой Liveness
bestShotURL
URL
URL лучшего кадра в формате PNG
preferredMediaURL
URL
URL медиаконтейнера API
timestamp
Date
Время окончания проверки
Значение
Описание
movement
Видео/фото с действием
documentBack
Фото оборотной стороны документа
documentFront
Фото лицевой стороны документа
Значение
Описание
userNotProcessed
Проверка не была обработана
failedBecauseUserCancelled
Проверка была прервана пользователем.
failedBecauseCameraPermissionDenied
Нельзя выполнить проверку из-за отсутствия доступа к камере
failedBecauseOfBackgroundMode
Нельзя выполнить проверку, так как приложение было свернуто
failedBecauseOfTimeout
Нельзя выполнить проверку, так как время, отведенное на проверку, закончилось
failedBecauseOfAttemptLimit
Нельзя выполнить проверку, так как превышен лимит попыток
failedBecausePreparingTimout
Нельзя выполнить проверку, так как время, отведенное на съемку, закончилось
failedBecauseOfLowMemory
Нельзя выполнить проверку, так как не хватает памяти
Параметр
Тип
Описание
media
[OzMedia]
Массив объектов OzMedia
type
Тип анализа
mode
Режим анализа
sizeReductionStrategy
Определяет размер файла, отправляемого на сервер после успешного завершения проверки на устройстве в составе гибридного анализа.
params (опционально)
String
Дополнительные параметры
Значение
Описание
biometry
Позволяет сравнить несколько фото или видео и оценить уровень схожести запечатленных на них людей.
quality
Проверяет наличие живого человека в кадре
document
Определяет наличие документа в кадре и проверяет корректность полей документа согласно его типу.
blacklist
Сравнивает лицо снятого на фото или видео человека с лицами из заранее созданной базы медиафайлов
Значение
Описание
onDevice
Анализ на устройстве
serverBased
Анализ на сервере
hybrid
Гибридный анализ для Liveness: если итоговая оценка анализа на устройстве больше определенного порога, медиафайл дополнительно анализируется на сервере.
Значение
Описание
addToFolder
Система создает папку и помещает в нее медиафайлы
addAnalyses
Система добавляет анализы
waitAnalysisResult
Система ожидает результата
Параметр
Тип
Описание
media
Объект, который загружается в данный момент
index
Int
Номер объекта в списке
from
Int
Количество объектов
progress
Progress
Статус загрузки
Параметр
Тип
Описание
status
Статус обработки анализов
progressStatus
Статус загрузки медиафайла
Параметр
Тип
Описание
resolution
Общий результат анализа
sourceId
String
Идентификатор медиафайла на сервере
isOnDevice
Bool
Режим анализа
confidenceScore
Float
Итоговая оценка
mediaType
String
Тип медиафайла: VIDEO / IMAGE / SHOT_SET
media
Анализируемый медиафайл
error
AnalysisError (наследуется от базового Error)
Ошибка
Параметр
Тип
Описание
resolution
Сводный результат анализов
folderId
String
Идентификатор
analysisResults
Результаты анализов
Параметр
Тип
Описание
resolution
Общий результат анализа
type
Тип анализа
mode
Режим анализа
analysisId
String
Идентификатор анализа
error
AnalysisError (наследуется от базового Error)
Ошибка
resultMedia
Список результатов анализов по отдельным медиафайлам
confidenceScore
Float
Итоговая оценка
serverRawResponse
String
Ответ сервера
Значение
Описание
INITIAL
Анализы не назначались
PROCESSING
Анализы выполняются
FAILED
Один или более анализов не удалось завершить из-за ошибок
FINISHED
Анализы выполнены
DECLINED
Проверка не пройдена (лица не совпадают или замечена спуфинг-атака)
SUCCESS
Проверка успешно пройдена
OPERATOR_REQUIRED
Результат анализов должен быть дополнительно перепроверен оператором
Параметр
Тип
Описание
analyseResolutionStatus
Статус анализа
type
Тип анализа
folderID
String
Идентификатор папки
score
Float
Результат выполненной проверки
Значение
Описание
oval
Овальная рамка
rectangle(cornerRadius: CGFloat)
Прямоугольная рамка (угловой радиус рамки)
circle
Круглая рамка
square(cornerRadius: CGFloat)
Квадратная рамка (угловой радиус рамки)
Case
Description
licenseFileNotFound
Лицензия не найдена
licenseParseError
Невозможно распознать файл лицензии
licenseBundleError
Указанный в лицензииbundle_id
не совпадает с используемым bundle_id
.
licenseExpired
Срок действия лицензии истек
Значение
Описание
fromServiceToken
Авторизация через токен:
host: String
token: String
fromCredentials
Авторизация через логин и пароль:
host: String
login: String
password: String
attemptsCount
Int
Количество попыток загрузки медиафайла
attemptsTimeout
Int
Интервал времени между попытками
Case
Description
uploadOriginal
Исходное видео
uploadCompressed
Сжатое видео
uploadBestShot
Полученный из видео лучший кадр
uploadNothing
Ничего (в этом случае на сервер не отправляется ничего, папка не создается)
Удаленный метод
Замена
analyse
AnalysisRequest.run
addToFolder
uploadMedia
documentAnalyse
AnalysisRequest.run
uploadAndAnalyse
AnalysisRequest.run
runOnDeviceBiometryAnalysis
AnalysisRequest.run
runOnDeviceLivenessAnalysis
AnalysisRequest.run
addMedia
uploadMedia