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 Web para la captura de selfies.
Este guía fue elaborada para ayudarlo a implementar el SDK Android de manera rápida y sencilla. A continuación, vea el paso a paso de todo el proceso de integración. Después de eso, si desea personalizar la experiencia, no deje de ver la sección Personalización Android.
Cree una instancia del builder (Generado a través de la interfaz IAcessoBioBuilder
), proporcionando como parámetro el contexto y el ambiente en cuestión, y la implementación de la clase AcessoBioListener
.
La implementación de esta clase es muy simple y se puede hacer con pocas líneas de código. Lo único que necesita hacer es instanciar el builder proporcionando el contexto correspondiente y sobrescribir los métodos de callback con la lógica de negocio de su aplicación:
Configure el ambiente que se utilizará en la ejecución del SDK. Utilice el enumerado Environment
que contiene los siguientes valores enumerados:
Environment.PROD
: para ambiente de Producción;
Environment.UAT
: para ambiente de Homologación.
Vea cómo implementarlo en el siguiente ejemplo:
Tenga en cuenta que el trabajo de implementación de la clase AcessoBioListener
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 con sobrescribir los métodos ejemplificados en el paso anterior con la lógica de negocio de su aplicación.
Este método se invoca siempre que ocurra cualquier error de implementación al utilizar alguno de nuestros métodos:
onErrorAcessoBio(ErrorBio errorBio)
Al ser invocado, el método recibe un parámetro de tipo ErrorBio que contiene detalles del error. Obtenga más información sobre el tipo ErrorBio
en la sección de tratamiento de errores.
onUserClosedCameraManually()
Este método se invoca siempre que 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 alcance 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 cambiar el tiempo máximo de sesión de su usuario utilizando la funcionalidad de detección del rostro (cámara de selfie con captura inteligente). Si el usuario supera el tiempo determinado en su proceso para capturar la foto, puede mostrar un mensaje personalizable o una 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 alcance 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 la silueta 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 dificultades para capturar la foto mediante la detección del rostro y supera el tiempo determinado en su proceso, la captura se cambia automáticamente a manual, con el objetivo de facilitar la acción para el usuario (TimeoutToFaceInference).
Todos los métodos anteriores deben ser creados de la forma indicada en su proyecto (aunque sin ninguna lógica). De lo contrario, el proyecto no se compilará correctamente.
El SDK tiene configurado y habilitado por defecto el encuadre inteligente y la captura automática. Por lo tanto, debe configurarse 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.
La implementación de estos métodos listeners debe realizarse mediante una instancia de la clase iAcessoBioSelfie
.
El método de apertura de la cámara, que se llama en la siguiente etapa, necesita saber qué hacer al lograr capturar una imagen con éxito o si ocurre algún error en el proceso. Es necesario especificar "qué hacer" al método de apertura de la cámara mediante la implementación de listeners que se llaman en situaciones de éxito o error.
A través de la configuración de los listeners, puede especificar qué sucede en su App en situaciones de error (Método onErrorSelfie
) o éxito (Método onSuccessSelfie
) durante la captura de imágenes.
Cambios en la nomenclatura para versiones anteriores a 4.2.1:
El método prepareCamera
, que antes era prepareSelfieCamera
;
La clase CameraListener
, que antes era SelfieCameraListener
;
El objeto UnicoCheckCameraOpener.Camera
, que antes era UnicoCheckCameraOpener.Selfie
.
Para la configuración de los listeners, es necesario implementar:
Para continuar con la apertura de la cámara, primero es necesario prepararla utilizando el método prepareCamera. Este método recibe como parámetro la implementación de la clase CameraListener
, la clase o el JSON con las credenciales, generados en esta etapa.
Cuando la cámara esté preparada, se dispara el evento onCameraReady
, que recibe como parámetro un objeto del tipo UnicoCheckCameraOpener.Camera
.
Es necesario sobrescribir este método, realizando la apertura de la cámara con el objeto recibido a través del método open()
. El método open()
debe recibir como parámetro los listeners configurados en los pasos anteriores.
onSuccessSelfie
Al realizar una captura de imagen con éxito, este método es invocado 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 se desea mostrar una vista previa de la imagen en su app.
El atributo encrypted
debe ser enviado en la llamada a las APIs REST del IDCloud.
El atributo encrypted
está destinado estrictamente al envío de la imagen a través de las APIs. No debe abrirse ni serializarse este atributo, ya que sus características pueden ser alteradas 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 responsabiliza por daños derivados de esta práctica, ya que las modificaciones pueden ocurrir de manera inesperada.
Los archivos base64/encrypted
pueden sufrir variaciones en 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 su aplicación, no limite en su lógica de programación ni en su infraestructura el tamaño de la cadena generada por el SDK para los archivos.
onErrorSelfie
Cuando ocurre algún error en la captura de imagen, este método es invocado y retorna un objeto del tipo ErrorBio
:
Infórmese más sobre los tipos de ErrorBio
en la sección de tratamiento de errores del SDK.
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 desea saber más, lea el artículo: How to convert a Base64 string into a Bitmap image to show it in an ImageView?
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. Infórmese más en la sección Creación de proceso.
Por motivos de seguridad, el intervalo entre la generación del encrypted
y su envío a través de uno de los flujos disponibles debe ser de hasta un 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.