Jornadas do Usuário
Jornadas do Usuário são sessões de captura em múltiplas etapas orquestradas pelo SDK em conjunto com o fluxo configurado. Por exemplo, um fluxo com Prova de Vida + Classificação de risco de fraude + Classificação de risco de fraude + Captura de Documentos + Assinatura Eletrônica executa selfie, captura de documento e assinatura em uma única sessão.
As jornadas disponíveis dependem do fluxo configurado para a sua integração. Consulte Casos de Uso para o mapeamento completo de caso de uso → fluxo → capability.
O SDK:
- Lê a configura ção de fluxo fornecida durante a inicialização.
- Orquestra a sequência de capturas necessárias para o fluxo (selfie, documento, assinatura).
- Retorna um objeto de resultado para cada etapa de captura.
A orquestração é gerenciada inteiramente pelo SDK — você não precisa implementar a sequência de etapas no seu app.
Passo 1 — Implementar AcessoBioListener
AcessoBioListener trata os callbacks de ciclo de vida do SDK. Implemente os quatro métodos obrigatórios:
| Método | Quando é chamado |
|---|---|
onErrorAcessoBio(errorBio) | Ocorreu um erro durante a operação do SDK |
onUserClosedCameraManually() | O usuário fechou a câmera manualmente |
onSystemClosedCameraTimeoutSession() | O limite de tempo da sessão foi atingido — consulte Limites de sessão |
onSystemChangedTypeCameraTimeoutFaceInference() | O limite de tempo de inferência facial foi atingido — alterna para captura manual — consulte Limites de sessão |
- 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() { }
};
Passo 2 — Implemente iAcessoBioSelfie
iAcessoBioSelfie gerencia os callbacks de resultado da captura na jornada:
| Método | Descrição |
|---|---|
onSuccessSelfie(result) | Imagem capturada com sucesso — retorna ResultCamera para chamadas subsequentes à REST API |
onSuccess(result) | Fluxo WebApp concluído com sucesso — retorna SuccessResult com um processId usado para consultar os resultados da validação |
onErrorSelfie(errorBio) | Captura falhou — retorna um ErrorBio com os detalhes do erro |
- 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) { }
};
Passo 3 — Chame prepareCamera
Com unicoCheckCamera inicializado e ambos os listeners implementados, chame prepareCamera passando a configuração do SDK, um CameraListener e seu web_app_token:
O web_app_token é o campo process.webAppToken retornado por POST /client/v1/process ao criar o processo no seu backend. Consulte Criar Processo.
onCameraReady— câmera pronta; chameopenpassando ocameraListenere seuweb_app_token.onCameraFailed— preparação da câmera falhou; trate a mensagem de erro.
- 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 o tratamento completo do resultado, consulte Recebendo o resultado.