Работа с контейнером данных OzCapsula в мобильных SDK

OzCapsula – это разработанный нами проприетарный формат, контейнер данных, обеспечивающий сквозную защиту и целостность информации в процессе передачи. Функциональность добавлена в версии 8.22. Для использования контейнера введены следующие методы:

  • createMediaCaptureScreen(request) запускает съемку видео и затем пакует готовый файл в контейнер;

  • AnalysisRequest.addContainer добавляет контейнер в запрос на анализ.

Также необходим новый токен: session_token. Как его получить, мы рассказываем здесь.

Примеры кода

С примерами кода вы можете ознакомиться, пройдя по ссылкам ниже. Также ниже размещены краткие иллюстративные примеры.

Kotlin

// захват и упаковка видео
val referentPhoto = MediaRequest.UserMedia(OzAbstractMedia.OzDocumentPhoto(OzMediaTag.Blank, referentPhotoPath))
val blinkVideo = MediaRequest.ActionMedia(OzAction.EyeBlink)
val scanVideo = MediaRequest.ActionMedia(OzAction.Scan)

val intent = OzLivenessSDK.createMediaCaptureScreen(
    CaptureRequest(
        listOf(
            AnalysisProfile(
                Analysis.Type.BIOMETRY,
                listOf(referentPhoto, scanVideo)
            ),
            AnalysisProfile(
                Analysis.Type.QUALITY,
                listOf(referentPhoto, scanVideo, blinkVideo)
            ),
        ),
    ),
    sessionToken
)
startActivityForResult(intent, REQUEST_CODE_SDK)

// подписка на результаты
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    super.onActivityResult(requestCode, resultCode, data)
    if (requestCode == REQUEST_CODE_SDK) {
        when (resultCode) {
            OzLivenessResultCode.USER_CLOSED_LIVENESS -> { /* user closed the screen */ }
            OzLivenessResultCode.SUCCESS -> {
            // result
                val container = OzLivenessSDK.getContainerFromIntent(data)
                ...
            }
            else -> {
            // обработка ошибок
                val errorMessage = OzLivenessSDK.getErrorFromIntent(data)
                ...
            }
        }
    }
}

// запуск анализов
AnalysisRequest.Builder()
    .addContainer(container)
    .build()
    .run(
        object: AnalysisRequest.AnalysisListener {
            override fun onSuccess(result: RequestResult) {
                ...
            }
            override fun onError(exception: OzException) {
                ...
            }
        }
    )

Swift

Методы и поля

addContainer

Метод заменяет addAnalysis в структуре AnalysisRequest при использовании контейнера.

Input

Параметр

Тип

Описание

OzDataContainer

bytearray[]

Зашифрованный файл с медиа и сопутствующей информацией, результат вызова метода createMediaCaptureScreen

createMediaCaptureScreen

Запускает съемку видео и затем пакует снятое видео и сопутствующую ему информацию в контейнер данных.

Входные параметры

Параметр

Type

Description

request

Распознает запрос на съемку видео

session_token

String

Токен для текущей сессии

Выходные параметры

Параметр

Type

Description

OzDataContainer

bytearray[]

Зашифрованный файл с медиа и сопутствующей информацией

public data class CaptureRequest

Распознает запрос на съемку видео.

Параметр

Тип

Описание

analysisProfileList

Список объектов с информацией о медиафайлах и анализах, которые на них назначены

folderMeta (необязательно)

Map<String, Any>

Метаданные папки

additionalMediaList (необязательно)

Дополнительные медиафайлы, которые вы хотите загрузить, но для анализа они не обязательны

cameraPosition (optional)

String

front (по умолчанию) – передняя камера

back – задняя камера

public data class AnalysisProfile

Содержит информацию о медиафайлах и анализах, которые на них назначены.

Параметр

Тип

Описание

mediaList

Список медиа для анализа

type

String (Type (Android) or AnalysisType (iOS))

Тип анализа

params (необязательно)

Map<String, Any>

Дополнительные параметры анализа

public sealed class MediaRequest

Содержит информацию о медиафайле.

circle-exclamation

Параметр

Тип

Описание

id

String (UUID v4)

Идентификатор медиафайла

actionMedia

OzAction (Android) or OzVerificationMovement (iOS)

Действие, которое пользователь выполняет на видео

userMedia

OzAbstractMedia (Android) or OZMedia (iOS)

Файл не из нашего SDK, например, референсное фото или фото документа

Список ошибок

Ошибка

Текст

Описание

session_token_is_empty

Session token must not be empty

Отсутствует session token – обязательный параметр

data_container_internal_failure_1

Internal failure occurred while processing the data container

На устройстве недостаточно памяти

  • data_container_internal_failure_2

  • data_container_internal_failure_3

  • data_container_internal_failure_4

Internal failure occurred while processing the data container

Контейнер создать не удалось. Попробуйте еще раз

data_container_internal_failure_1000

Internal failure occurred while processing the data container

Любая другая ошибка не из списка выше

Если во время съемки возникнет ошибка, из-за которой пользователь не сможет завершить сценарий, контейнер данных будет удален.

Если у вас остались вопросы, пожалуйста, свяжитесь с нами.

Last updated

Was this helpful?