Recorridos de usuario
Los recorridos de usuario son sesiones de captura de múltiples pasos orquestadas por el SDK en conjunto con el flujo configurado. Por ejemplo, un flujo con Detección de Vida + Clasificación de riesgo de fraude + Clasificación de Riesgo de Fraude + Captura de Documentos + Firma Electrónica ejecuta selfie, captura de documento y firma en una sola sesión.
Los recorridos disponibles dependen del flujo configurado para tu integración. Consulta Casos de uso para ver el mapeo completo de caso de uso → flujo → capacidad.
El SDK:
- Lee la configuración del flujo proporcionada durante la inicialización.
- Orquesta la secuencia de capturas requeridas para el flujo (selfie, documento, firma).
- Devuelve un objeto de resultado para cada paso de captura.
La orquestación es gestionada en su totalidad por el SDK — no es necesario implementar la secuencia de pasos en tu aplicación.
Paso 1 — Implementar AcessoBioListener
AcessoBioListener gestiona los callbacks del ciclo de vida del SDK. Implemente los cuatro métodos obligatorios:
| Método | Cuándo se llama |
|---|---|
onErrorAcessoBio(errorBio) | Ocurrió un error durante la operación del SDK |
onUserClosedCameraManually() | El usuario cerró la cámara manualmente |
onSystemClosedCameraTimeoutSession() | Se alcanzó el límite de tiempo de sesión — ver Límites de sesión |
onSystemChangedTypeCameraTimeoutFaceInference() | Se alcanzó el límite de tiempo de inferencia facial — cambia a captura manual — ver Límites de sesión |
- Kotlin
- Java
val callback = object : AcessoBioListener {
override fun onErrorAcessoBio(errorBio: ErrorBio?) { }
override fun onUserClosedCameraManually() { }
override fun onSystemClosedCameraTimeoutSession() { }
override fun onSystemChangedTypeCameraTimeoutFaceInference() { }
}
AcessoBioListener callback = new AcessoBioListener() {
@Override
public void onErrorAcessoBio(ErrorBio errorBio) { }
@Override
public void onUserClosedCameraManually() { }
@Override
public void onSystemClosedCameraTimeoutSession() { }
@Override
public void onSystemChangedTypeCameraTimeoutFaceInference() { }
};
Paso 2 — Implementar iAcessoBioSelfie
iAcessoBioSelfie gestiona los callbacks del resultado de captura del recorrido:
| Método | Descripción |
|---|---|
onSuccessSelfie(result) | Imagen capturada correctamente — devuelve ResultCamera para las llamadas posteriores a la REST API |
onSuccess(result) | Flujo WebApp completado correctamente — devuelve SuccessResult con un processId utilizado para consultar los resultados de la validación |
onErrorSelfie(errorBio) | Captura fallida — devuelve un ErrorBio con los detalles del error |
- Kotlin
- Java
val cameraListener: iAcessoBioSelfie = object : iAcessoBioSelfie {
override fun onSuccessSelfie(result: ResultCamera?) { }
override fun onSuccess(result: SuccessResult) { }
override fun onErrorSelfie(errorBio: ErrorBio?) { }
}
iAcessoBioSelfie cameraListener = new iAcessoBioSelfie() {
@Override
public void onSuccessSelfie(ResultCamera result) { }
@Override
public void onSuccess(SuccessResult result) { }
@Override
public void onErrorSelfie(ErrorBio errorBio) { }
};
Paso 3 — Llamar a prepareCamera
Con unicoCheckCamera inicializado y ambos listeners implementados, llama a prepareCamera pasando la configuración del SDK, un CameraListener y tu web_app_token:
El web_app_token es el campo process.webAppToken devuelto por POST /client/v1/process al crear el proceso en tu backend. Ver Crear Proceso.
onCameraReady— la cámara está lista; llama aopenpasando elcameraListenery tuweb_app_token.onCameraFailed— la preparación de la cámara falló; gestiona el mensaje de error.
- Kotlin
- Java
unicoCheckCamera.prepareCamera(unicoConfig, object : CameraListener {
override fun onCameraReady(cameraOpener: UnicoCheckCameraOpener.Camera?) {
cameraOpener?.open(cameraListener, "your_web_app_token")
}
override fun onCameraFailed(message: String?) {
Log.e(TAG, message)
}
})
unicoCheckCamera.prepareCamera(unicoConfig, new CameraListener() {
@Override
public void onCameraReady(UnicoCheckCameraOpener.Camera cameraOpener) {
cameraOpener.open(cameraListener, "your_web_app_token");
}
@Override
public void onCameraFailed(String message) {
Log.e(TAG, message);
}
});
Para el manejo completo del resultado, consulta Recibir el resultado.