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 Android para la captura de documentos.
Este guía ha sido 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 consultar la sección Personalización Android.
En este modo de cámara, existe un marco de captura para ayudar al usuario a posicionar correctamente el documento. Después de posicionar el documento de manera 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 documentos:
CPF: Captura del frente del CPF;
CNH: Captura de la CNH abierta;
CNH frente: Captura del frente de la CNH;
CNH verso: Captura del reverso de la CNH;
RG frente: Captura del frente del RG;
RG verso: Captura del reverso del RG;
Otros: Captura de cualquier otro documento.
Cree una instancia del builder (Generado a través de la interfaz IAcessoBioBuilder
), proporcionando como parámetro el contexto en cuestión y la implementación de la clase AcessoBioListener
.
La implementación de esta clase es bastante simple y se puede hacer con pocas líneas de código. Todo lo que necesita hacer es instanciar el builder proporcionando el contexto correspondiente y sobrescribir los métodos de callback con las lógicas de negocio de su aplicación:
Tenga en cuenta que el trabajo de implementación de la clase AcessoBioListener
consiste en gran parte en 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 las lógicas de negocio de su aplicación:
onErrorAcessoBio(ErrorBio errorBio)
Al ser invocado, el método recibe un parámetro del tipo ErrorBio que contiene detalles del error. Infórmese más sobre el tipo ErrorBio
en la sección de tratamiento de errores.
onUserClosedCameraManually()
Este método se invoca siempre cuando el usuario cierra 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).
Puede configurarse 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 al utilizar la funcionalidad de detección facial (Cámara de selfies con captura inteligente). Si el tiempo determinado para capturar la foto se excede, 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 alcanza el tiempo máximo para la detección facial de un usuario (sin que nada haya sido detectado). 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 selfies con captura inteligente) es de 13 segundos. Si el usuario tiene dificultades para capturar la foto mediante la detección facial y excede 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.
La implementación de estos métodos listeners debe hacerse a través de 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 cuando logre 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é ocurre en su App en situaciones de error (Método onErrorDocument
) o éxito (Método onSuccessDocument
) durante la captura de imágenes.
El siguiente ejemplo ilustra la configuración de los listeners, el build y la apertura de la cámara:
Es necesario crear una instancia del builder a través del método build()
. Este método está disponible a través del objeto generado con la interfaz IAcessoBioBuilder
y la clase AcessoBio
:
El siguiente paso es preparar la cámara utilizando el método prepareDocumentCamera()
con el objeto retornado por el builder (nombrado como UnicoCheckCamera
en el ejemplo anterior).
El método prepareDocumentCamera()
genera un objeto del tipo UnicoCheckCameraOpener.Document
, que se utiliza para abrir la cámara con su método open()
, recibiendo los parámetros del tipo de documento a capturar, siendo estos:
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
Caso precise capturar um documento que não possuímos um frame Si necesita capturar un documento para el cual no tenemos un marco específico (por ejemplo, RNE, entre otros), utilice el marco DocumentCameraType.None
, que le permitirá usar un marco genérico, rectangular, que puede ser utilizado para orientar cualquier captura.
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 desea mostrar una vista previa de la imagen en su app.
Tanto el atributo encrypted
como el atributo base64
pueden enviarse 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 desea saber más, lea el artículo How to convert a Base64 string into a Bitmap image to show it in an ImageView?.
Cuando ocurre un 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.
La captura de las imágenes es solo la primera parte del proceso. Después de capturar la imagen, es necesario enviar el base64
generado por el SDK a las APIs REST. Infórmese más en la sección 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.
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.
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.