Captura de documentos
Esta guía está diseñada para ayudarlo a implementar el SDK iOS de forma rápida y sencilla. Los conceptos básicos, los ejemplos de implementación de SDK están disponibles y las formas de interactuar con las API REST de los motores.
A través de esta guía, se puede:
- Implementar la apertura de la cámara y la captura de imágenes;
- Manipular los datos de devolución;
- Utilizar la devolución del SDK con las API del motor.
Antes de comenzar, asegúrese de haber seguido las instrucciones paso a paso para instalar e importar el SDK en esta guía.
RECURSOS DISPONIBLES
SDK iOS ofrece un componente para la captura de documentos que contiene un frame de captura que ayuda al usuario a colocar el documento de manera correcta para la foto. Luego de posicionar correctamente, el usuario debe hacer clic en un botón para capturar la foto del documento.
La captura de los siguientes tipos de documentos está disponible:
- Sin silueta: Captura documento genérico;
- Documento de identidad brasileño (RG): Captura del RG (frente y reverso);
- LICENCIA DE CONDUCIR: Captura de la Licencia de conducir abierta;
- Lado delantero de la Licencia de Conducir: Captura del lado delantero de la Licencia de conducir;
- Lado reverso de la Licencia de conducir: Captura del lado reverso de la Licencia de conducir;
- CPF: Captura del documento CPF;
IMPLEMENTACIÓN
Al seguir esta guía paso a paso, tendrá todo el potencial del SDK integrado en su aplicación iOS.
INICIALIZAR EL SDK
Para comenzar con SDK iOS de Unico Check, importe el SDK e implemente la interfaz
AcessoBioManagerDelegate
dentro de ViewController que desea utilizar.La implementación de esta clase es muy simple y se puede hacer con pocas líneas de código. Todo lo que necesita hacer es instanciar al builder informando el contexto en cuestión y anular los métodos de callback con las lógicas comerciales de su aplicación:
- Objective-C
- Swift
.m:
#import "ViewController.h"
#import <AcessoBio/AcessoBio.h>
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
unicoCheck = [[AcessoBioManager alloc]initWithViewController:self];
}
- (void)onErrorAcessoBioManager:(ErrorBio *)error {
// Your code
}
- (void)onSystemChangedTypeCameraTimeoutFaceInference {
// Your code
}
- (void)onSystemClosedCameraTimeoutSession {
// Your code
}
- (void)onUserClosedCameraManually {
// Your code
}
@endimport UIKit
import AcessoBio
class ViewController: UIViewController, AcessoBioManagerDelegate {
var unicoCheck: AcessoBioManager!
override func viewDidLoad() {
super.viewDidLoad()
unicoCheck = AcessoBioManager(viewController: self)
}
func onErrorAcessoBioManager(_ error: ErrorBio!) {
// Your code
}
func onUserClosedCameraManually() {
// Your code
}
func onSystemClosedCameraTimeoutSession() {
// Your code
}
func onSystemChangedTypeCameraTimeoutFaceInference() {
// Your code
}
}IMPLEMENTAR LAS FUNCIONES DE CALLBACK
Tenga en cuenta que, según el ejemplo anterior, el trabajo de implementar la clase
AcessoBioManagerDelegate
es, en gran medida, configurar los métodos de callback. Cada método se llama en una situación específica de devolución de llamada de SDK.Simplemente sobrescriba los métodos ejemplificados en el paso anterior con las lógicas comerciales de su aplicación.
Método
onErrorAcessoBioManager(_ error: ErrorBio!)
Este método se invoca cuando ocurre algún error de implementación al utilizar cualquiera de los métodos, por ejemplo, al informar un tipo de documento incorrecto para la funcionalidad de captura de documentos.
Cuando se invoca, el método recibirá un parámetro de tipo
ErrorBio
que contiene detalles del error. Más informaciones sobre el tipoErrorBio
en el artículo de Referencias de este SDK.Método
onUserClosedCameraManually()
Este método se invoca cada vez que el usuario cierra la cámara manualmente, como por ejemplo, al hacer clic en el botón "Volver".
Método
onSystemClosedCameraTimeoutSession()
Este método se invoca una vez que se ha alcanzado el tiempo máximo de sesión (Sin capturar ninguna imagen).
AlertaTodos los métodos anteriores deben crearse como se indica en su proyecto (Incluso sin ninguna lógica). De lo contrario, el proyecto no se compila con éxito.
Implementar delegates para eventos de la cámara
El método de apertura de la cámara necesita saber qué hacer cuando logra capturar una imagen con éxito o cuando tiene 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 delegates que se llaman en situaciones de éxito o error.
A través de la configuración de los delegates, puede especificar qué sucede en su aplicación en situaciones de error (método
onErrorDocument
) o éxito (métodoonSuccessDocument
) en la captura de imágenes.Para la configuración de los delegates, debe implementar las interfaces
DocumentCameraDelegate
YAcessoBioDocumentDelegate
:- Objective-C
- Swift
.h:
#import <UIKit/UIKit.h>
#import <AcessoBio/AcessoBio.h>
#import "SelfieCameraDelegate.h"
@interface ViewController: UIViewController <AcessoBioManagerDelegate, DocumentCameraDelegate,
AcessoBioDocumentDelegate> {
AcessoBioManager *unicoCheck;
// Your code from previous and next steps here
}import UIKit
import AcessoBio
class ViewController: UIViewController, AcessoBioManagerDelegate, DocumentCameraDelegate,
AcessoBioDocumentDelegate {
// Your code from previous and next steps here
}Método
onSuccessDocument
Al efectuar la captura de imagen con éxito, se invoca este método y devuelve un resultado del tipo
ResultCamera
que se utiliza en la llamada de las API REST.- Objective-C
- Swift
- (void)onSuccessDocument:(DocumentResult *)result {
NSLog(@"%@", result.base64);
}func onSuccessDocument(_ result: DocumentResult!) {
// Your code
}El objeto ResultCamera devuelve 2 atributos: Base64 y Encrypted:
- El atributo Base64 se puede usar si desea mostrar una vista previa de la imagen en su aplicación;
- El atributo Encrypted debe enviarse en la llamada de las API REST de Unico Check.
CONVERSIÓN DEL BASE64 PARA BITMAPSi es necesario convertir base64 en bitmap, la forma predeterminada 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 a ImageView?.
::alert importante
El atributo Encrypted está estrictamente destinado a enviar la imagen a través de las API de Unico. No debes abrir ni serializar este atributo, ya que sus características pueden cambiar sin previo aviso. Su uso debe ser exclusivo en interacciones con APIs para garantizar la integridad y seguridad de los datos. Unico no es responsable de ningún daño resultante de esta práctica, ya que pueden ocurrir cambios de manera impredecible. :::
Método
onErrorDocument
Cuando se produce un error en la captura de imagen, se invoca este método y devuelve un objeto de tipo
ErrorBio
.- Objective-C
- Swift
- (void)onErrorDocument:(ErrorBio *)errorBio {
// Your code
}func onErrorDocument(_ errorBio: ErrorBio!) {
// Your code
}MÁS INFORMACIONESSobre los tipos de ErrorBio en la sección de Referencias de este SDK.
PERSONALIZAR EL PROCESO DE CAPTURA
Este es un paso opcional, pero muy recomendado para que el proceso de captura tenga la identidad visual de su empresa.
Se puede personalizar el frame de captura a través del SDK. Para personalizar el frame, simplemente utilice el método correspondiente a la propiedad que se personalizará y luego aplique el nuevo estilo usando el método
setTheme()
.Entienda un poco más sobre el método
setTheme()
, ejemplos de uso y lo que se puede personalizar en la página de Referencias de este SDK.PREPARAR Y ABRIR LA CÁMARA
Para seguir la apertura de la cámara, primero debe prepararla utilizando el método
prepareDocumentCamera
. Este método recibe como parámetro la implementación de la claseDocumentCameraDelegate
y el JSON con las credenciales, generado en esta etapa.- Objective-C
- Swift
.h:
#import <UIKit/UIKit.h>
#import <AcessoBio/AcessoBio.h>
#import "SelfieCameraDelegate.h"
@interface ViewController: UIViewController < AcessoBioManagerDelegate,
DocumentCameraDelegate, AcessoBioDocumentDelegate> {
AcessoBioManager *unicoCheck;
}
.m:
- (IBAction)openCamera:(UIButton *)sender {
[[unicoCheck build] prepareDocumentCamera:self config:[YourUnicoConfigClass new]];
}import UIKit
import AcessoBio
class ViewController: UIViewController, AcessoBioManagerDelegate,
DocumentCameraDelegate, AcessoBioDocumentDelegate {
@IBAction func openCamera(_ sender: Any) {
unicoCheck.build().prepareDocumentCamera(self, config: YourUnicoConfigClass())
}
}Cuando la cámara está lista, se activa el evento
onCameraReadyDocument
, que toma como parámetro un objeto de tipoAcessoBioCameraOpenerDelegate
.Debe anular este método, abriendo la cámara con el objeto recibido a través del método
openDocument()
, informando los siguientes parámetros:Tipo de documento que será capturado, ellos son:
DocumentEnums.none
: Frame para captura de documento genérico, sin ninguna silueta;DocumentEnums.RG
: Frame para captura del RG, primero el lado delantero, luego el reverso;DocumentEnums.rgFrente
: Frame para captura del lado delantero del RG;DocumentEnums.rgVerso
: Frame para captura del lado reverso del RG;DocumentEnums.CNH
: Frame para captura de Licencia de conducir;DocumentEnums.cnhFrente
: Frame para captura del lado delantero de la Licencia de conducir;DocumentEnums.cnhVerso
: Frame para captura del lado reverso de la Licencia de conducir;DocumentEnums.CPF
: Frame para captura CPF;
Los delegates implementados anterior (aqui descritos como Self);
- Objective-C
- Swift
- (void)onCameraReadyDocument:(id)cameraOpener {
[cameraOpener openDocument:DocumentCNH delegate:self];
}
- (void)onCameraFailedDocument:(ErrorPrepare *)message {
// Your code
}func onCameraReadyDocument(_ cameraOpener: AcessoBioCameraOpenerDelegate!) {
cameraOpener.openDocument(DocumentEnums.CNH, delegate: self)
}
func onCameraFailedDocument(_ message: ErrorPrepare!) {
// Your code
}info MÁS INFORMACIONESEl tipo
ErrorPrepare
é uma extensão deErrorBio
contendo assim todas as suas propriedades. Sobre los tipos de ErrorBio en la sección de Referencias de este SDK.Si se produce un error al preparar la cámara, se activa el evento
onCameraFailedDocument
. Debe implementar este método aplicando las reglas comerciales de su aplicación.En caso de éxito, se activa el evento
onSuccessDocument
, conforme explicado en este paso.LLAMAR LAS APIS
La captura de las imágenes es solo la primera parte del viaje. Después de capturar la imagen, es necesario enviar el Encrypted generado a las API, seleccionando uno de los flujos disponibles detallados en Flujos.
AtenciónPor motivos de seguridad, el intervalo entre la generación del Encriptado y su envío a través de uno de los flujos disponibles debe ser de un máximo de 10 minutos. Los envíos realizados más allá de este período serán rechazados automáticamente por la API.
¿Dudas?
¿No encontró algo o aún necesita ayuda? Si ya es cliente o asociado, puede contactarnos a través del Centro de Ayuda.