En esta sección, encontrará toda la información necesaria para el uso e integración del SDK de la plataforma Unico IDCloud en sus aplicaciones iOS.
En esta sección, encontrará toda la información necesaria para el uso e integración del SDK de la plataforma Unico IDCloud en sus aplicaciones iOS para la captura de selfies.
Esta guía ha sido elaborada para ayudarlo a implementar el SDK iOS de forma rápida y fácil. A continuación, verá el paso a paso de todo el proceso de integración. Después de esto, si desea personalizar la experiencia, no deje de consultar la sección Personalización iOS.
Para comenzar con el SDK iOS de Unico Check, importe el SDK e implemente la interfaz AcessoBioManagerDelegate
dentro del ViewController en el que desea utilizarlo.
La implementación de esta clase es bastante simple y puede realizarse con pocas líneas de código. Solo necesita instanciar el builder proporcionando el contexto y el entorno en cuestión, y sobrescribir los métodos de callback con las lógicas de negocio de su aplicación:
Configure el entorno que se utilizará durante la ejecución del SDK. Utilice el enumerado Environment
que contiene los siguientes valores:
PROD
: para entorno de Producción;
UAT
: para entorno de Homologación.
Vea cómo implementarlo en el siguiente ejemplo:
Tenga en cuenta que, conforme al ejemplo anterior, el trabajo de implementación de la interfaz AcessoBioManagerDelegate
consiste en gran parte en configurar los métodos de callback. Cada método es llamado en una situación específica del retorno del SDK.
Basta con sobrescribir los métodos ejemplificados en el paso anterior con la lógica de negocio de su aplicación:
onErrorAcessoBioManager(_ error: ErrorBio!)
Este método es invocado cuando ocurre cualquier error de implementación al utilizar alguno de los métodos, como por ejemplo, al proporcionar un tipo de documento incorrecto para la funcionalidad de captura de documentos.
Al ser invocado, el método recibirá un parámetro del tipo ErrorBio
que contiene detalles del error. Obtenga más información sobre el tipo ErrorBio
en el artículo de tratamiento de errores de este SDK.
onUserClosedCameraManually()
Este método se invoca siempre que el usuario cierre la cámara manualmente, como por ejemplo, al hacer clic en el botón "Volver".
onSystemClosedCameraTimeoutSession()
Este método se invoca tan pronto como se alcance el tiempo máximo de sesión (sin capturar ninguna imagen).
Puede ser configurado en el builder mediante el método setTimeoutSession. Este método debe recibir el tiempo máximo de sesión en segundos. Es posible cambiar el tiempo máximo de sesión de su usuario al utilizar la funcionalidad de detección facial (Cámara de selfie con captura inteligente). Si el usuario supera el tiempo determinado para capturar la foto, puede presentar un mensaje o instrucción personalizable al usuario. El valor predeterminado es de 40 segundos y su valor mínimo también es de 40 segundos.
onSystemChangedTypeCameraTimeoutFaceInference()
Este método se invoca tan pronto como se alcance el tiempo máximo para la detección facial de un usuario (sin que se haya detectado nada). En este caso, el modo de cámara se cambia automáticamente al modo de captura manual (sin la silueta de captura inteligente).
El tiempo máximo de captura al utilizar la detección facial (Cámara de selfie con captura inteligente) es de 13 segundos. Si el usuario tiene dificultades para capturar la foto a través de la detección facial y supera el tiempo determinado en su proceso, la captura se cambia automáticamente al modo manual con el fin de facilitar la acción para el usuario (TimeoutToFaceInference).
Todos los métodos anteriores deben ser creados de la manera indicada en su proyecto (aunque sin ninguna lógica). De lo contrario, el proyecto no compilará con éxito.
El SDK tiene configurado y habilitado por defecto el encuadre inteligente y la captura automática. Debido a esto, se debe configurar el modo de cámara en su builder de la siguiente manera:
Los valores false/true de los métodos anteriores no alteran la experiencia de captura, solo sirven para la lógica interna del funcionamiento del SDK.
El método de apertura de la cámara necesita saber qué hacer al conseguir capturar una imagen con éxito o al tener algún error en el proceso. Se informa "qué hacer" al método de apertura de la cámara a través de la configuración de delegados que son llamados en situaciones de éxito o error.
A través de la configuración de los delegados, puedes especificar qué sucede en tu aplicación en situaciones de error (método onErrorSelfie
) o éxito (método onSuccessSelfie
) en la captura de imágenes.
Para la configuración de los delegados, debes implementar las interfaces SelfieCameraDelegate
y AcessoBioSelfieDelegate
:
onSuccessSelfie
Al realizar una captura de imagen con éxito, este método es invocado y retorna un objeto del tipo SelfieResult
, que se utiliza posteriormente en la llamada a las APIs REST.
El objeto ResultCamera
retorna 2 atributos: base64
y encrypted
:
El atributo base64
puede ser utilizado si deseas mostrar una vista previa de la imagen en tu app;
El atributo encrypted
debe ser enviado en la llamada a las APIs REST.
El atributo encrypted
está destinado estrictamente al envío de la imagen a través de las APIs del by Client. No debe abrirse ni serializarse, ya que sus características pueden ser modificadas sin previo aviso. Su uso debe ser exclusivo en las interacciones con las APIs para garantizar la integridad y seguridad de los datos. Unico no se hace responsable de cualquier daño derivado de esta práctica, ya que las modificaciones pueden ocurrir de manera impredecible.
Los archivos base64/encrypted
pueden sufrir variaciones de tamaño según diversas variables, entre ellas, la calidad de los dispositivos y las fotos generadas por los mismos, así como las reglas de negocio de Unico. Para evitar problemas en tu aplicación, no limites en tu lógica de programación ni en tu infraestructura el tamaño de la cadena generada por el SDK para los archivos.
Si deseas convertir el base64 a bitmap, el método estándar no funciona para iOS. Es necesario realizar el split a partir de la coma (,
) para que funcione. Si deseas saber más, lee el siguiente artículo: How to convert a Base64 string into a Bitmap image to show it in an ImageView?.
onErrorSelfie
Cuando ocurre un error en la captura de la imagen, este método es invocado y retorna un objeto del tipo ErrorBio
:
Infórmate más sobre los tipos de ErrorBio
en la sección de tratamiento de errores del SDK.
Si no se configura, el SDK utiliza el entorno configurado a través del archivo de configuración (getHostKey). Si no se está utilizando getHostKey, se devuelve un error.
Es posible configurar el entorno que se utilizará en la ejecución del SDK. Utiliza el enumerado EnvironmentEnum
, que contiene los siguientes valores:
EnvironmentEnum.PROD
: para el entorno de Producción
EnvironmentEnum.UAT
: para el entorno de Homologación
Mira cómo implementarlo en el siguiente ejemplo:
Para continuar con la apertura de la cámara, primero debes prepararla utilizando el método prepareSelfieCamera
. Este método recibe como parámetro la implementación de la clase SelfieCameraDelegate
y el JSON con las credenciales, generado en la etapa anterior.
Cuando la cámara esté preparada, el evento onCameraReady
se dispara y recibe como parámetro un objeto del tipo AcessoBioCameraOpenerDelegate
.
Debes sobrescribir este método, realizando la apertura de la cámara con el objeto recibido a través del método open()
:
El tipo ErrorPrepare
es una extensión de ErrorBio
, por lo que contiene todas sus propiedades. Infórmate más sobre el tipo ErrorBio
en la sección de tratamiento de errores del SDK.
Si ocurre algún error al preparar la cámara, el evento onCameraFaile
d se dispara. Debes implementar este método aplicando las reglas de negocio de tu aplicación.
La captura de las imágenes es solo la primera parte del proceso. Después de capturar la imagen, es necesario enviar el encrypted
generado por el SDK a las APIs REST del by Client. Infórmate más en la sección Creación de proceso.
Por motivos de seguridad, el intervalo entre la generación del encrypted
y el envío a través de uno de los flujos disponibles debe ser como máximo de 10 minutos. Los envíos realizados después de este período serán rechazados automáticamente por la API.
¿No encontraste algo o aún necesitas ayuda? Si ya eres cliente o socio, puedes ponerte en contacto a través del Centro de Ayuda.
En esta sección, encontrarás toda la información necesaria para el uso e integración del SDK de la plataforma Unico IDCloud en tus aplicaciones iOS para la captura de documentos.
Este guía ha sido elaborada para ayudarte a implementar el SDK iOS de manera rápida y sencilla. A continuación, verás el paso a paso de todo el proceso de integración. Después de eso, si deseas personalizar la experiencia, no olvides consultar la sección Personalización iOS.
En este modo de cámara, existe un marco de captura para ayudar al usuario a colocar el documento correctamente. Después de colocar el documento en la posición correcta, el usuario debe hacer clic en el botón para realizar la captura de la foto del documento.
El SDK no realiza ningún tipo de validación sobre lo que se está capturando.
En este modo de cámara, es posible capturar los siguientes documentos:
RG: Captura del RG (separado en frente y reverso);
CNH: Captura de la CNH abierta;
CNH frente: Captura del frente de la CNH;
CNH reverso: Captura del reverso de la CNH;
CPF: Captura del documento de CPF;
Sin silueta: Captura de documento genérico.
Para comenzar con el SDK iOS de la plataforma Unico IDCloud, importa el SDK e implementa la interfaz AcessoBioManagerDelegate
dentro del ViewController que deseas utilizar.
La implementación de esta clase es bastante simple y puede realizarse con pocas líneas de código. Todo lo que necesitas hacer es instanciar el builder, indicando el contexto en cuestión, y sobrescribir los métodos de callback con las lógicas de negocio de tu aplicación:
Ten en cuenta que, como en el ejemplo anterior, el trabajo de implementación de la interfaz AcessoBioManagerDelegate
es, en su mayoría, la configuración de los métodos de callback. Cada método se llama en una situación específica de retorno del SDK.
Basta sobrescribir los métodos ejemplificados en el paso anterior con las lógicas de negocio de tu aplicación:
onErrorAcessoBioManager(_ error: ErrorBio!)
Este método se invoca cuando ocurre cualquier error de implementación al utilizar alguno de los métodos, como por ejemplo, al informar un tipo de documento incorrecto para la funcionalidad de captura de documentos.
Al ser invocado, el método recibe un parámetro del tipo ErrorBio
que contiene detalles sobre el error. Infórmate más sobre el tipo ErrorBio
en el artículo de tratamiento de errores de este SDK.
onUserClosedCameraManually()
Este método se invoca siempre cuando el usuario cierre la cámara de forma manual, como por ejemplo, al hacer clic en el botón "Volver".
onSystemClosedCameraTimeoutSession()
Este método se invoca tan pronto como se alcanza el tiempo máximo de sesión (sin capturar ninguna imagen).
Se puede configurar en el builder a través del método setTimeoutSession. Este método debe recibir el tiempo máximo de la sesión en segundos. Es posible alterar el tiempo máximo de sesión de tu usuario al utilizar la funcionalidad de detección facial (Cámara de selfie con captura inteligente). Si se supera el tiempo determinado en tu proceso para capturar la foto, puedes mostrar algún mensaje personalizable o instrucción al usuario. El valor predeterminado es de 40 segundos y su valor mínimo también es de 40 segundos.
onSystemChangedTypeCameraTimeoutFaceInference()
Este método se invoca tan pronto como se alcanza el tiempo máximo para la detección del rostro de un usuario (sin haber detectado nada). En este caso, el modo de cámara se cambia automáticamente al modo de captura manual (sin el contorno de captura inteligente).
El tiempo máximo de captura al utilizar la detección del rostro (Cámara de selfie con captura inteligente) es de 13 segundos. Si el usuario tiene alguna dificultad para capturar la foto a través de la detección del rostro y supera el tiempo determinado en su proceso, la captura se cambia automáticamente a modo manual, con el objetivo de facilitar la acción para el usuario (TimeoutToFaceInference).
Todos los métodos anteriores deben ser creados de la manera indicada en tu proyecto (incluso sin ninguna lógica). De lo contrario, el proyecto no se compilará correctamente.
El método de apertura de la cámara (que se llama en el siguiente paso) necesita saber qué hacer cuando se capture una imagen con éxito o cuando ocurra un error en el proceso. Se informa "qué hacer" al método de apertura de la cámara a través de la configuración de delegados que se llaman en situaciones de éxito o error.
A través de la configuración de los delegados, puedes especificar lo que ocurre en tu aplicación en situaciones de error (método onErrorDocument
) o éxito (método onSuccessDocument
) al capturar imágenes.
Para la configuración de los delegados, debes implementar las interfaces DocumentCameraDelegate
y AcessoBioDocumentDelegate
:
onSucessDocument
Al realizar una captura de imagen con éxito, este método se invoca y retorna un objeto del tipo ResultCamera
, que se utiliza posteriormente en la llamada a las APIs REST.
El objeto ResultCamera
retorna 2 atributos: base64
y encrypted
:
El atributo base64
puede ser utilizado si deseas mostrar una vista previa de la imagen en tu app;
Tanto el atributo encrypted
como el atributo base64
pueden ser enviados en la llamada a las APIs REST.
Si es necesario convertir el base64 a bitmap, el método estándar no funciona para Android. Es necesario realizar el split a partir de la coma (,) para que funcione. Si deseas saber más, lee el artículo How to convert a Base64 string into a Bitmap image to show it in an ImageView?.
onErrorDocument
Cuando ocurre un error en la captura de la imagen, este método se invoca y retorna un objeto del tipo ErrorBio
.
Infórmate más sobre los tipos de ErrorBio
en la sección de tratamiento de errores del SDK.
Para abrir la cámara, es necesario prepararla utilizando el método prepareDocumentCamer
a. Este método recibe como parámetro la implementación de la clase DocumentCameraDelegate
y el JSON con las credenciales, generado en la etapa anterior.
Quando a câmera estiver preparada, o evento onCameraReadyDocument
é disparado, que recebe como parâmetro um objeto do tipo AcessoBioCameraOpenerDelegate
.
Você deve sobrescrever este método, efetuando a abertura da câmera com o objeto recebido através do método openDocument()
, recebendo os parâmetros tipo de documento a ser capturado, sendo eles:
DocumentCameraType.CPF
Marco para captura del frente del CPF
DocumentCameraType.CNH
Marco para captura de la CNH abierta
DocumentCameraType.CNH_FRENTE
Marco para captura del frente de la CNH
DocumentCameraType.CNH_VERSO
Marco para captura del reverso de la CNH
DocumentCameraType.RG_FRENTE
Marco para captura del frente del RG
DocumentCameraType.RG_VERSO
Marco para captura del reverso del RG
DocumentCameraType.None
Marco para captura de cualquier otro documento
En caso de que necesites capturar un documento para el cual no tengamos un marco específico (por ejemplo, RNE, entre otros), utiliza el marco DocumentEnums.none
, que te permitirá usar un marco genérico, rectangular, que puede ser utilizado para orientar cualquier captura.
Los delegados implementados anteriormente (aquí descritos como Self):
O tipo ErrorPrepare
é uma extensão de ErrorBio
contendo assim todas as suas propriedades. Saiba mais sobre o tipo ErrorBio
na seção de tratamiento de errores do SDK.
Caso ocorra algum erro ao preparar a câmera, o evento onCameraFailedDocument
é disparado. Você deve implementar este método aplicando as regras de negócio de seu App.
Em caso de sucesso, o evento onSuccessDocument
é disparado, conforme explicado na seção acima.
A captura das imagens é apenas a primeira parte da jornada. Após capturar a imagem, é necessário enviar o base64
gerado pelo SDK para as APIs REST do by Client. Saiba mais na seção Creación de proceso.
¿No encontraste algo o aún necesitas ayuda? Si ya eres cliente o socio, puedes ponerte en contacto a través del Centro de Ayuda.