Coletando os Retornos
O método startFaceRecon retorna um Future<FaceReconReturnValues>. Não é necessário realizar nenhuma decodificação manual de JSON — o plugin já entrega objetos Dart tipados.
FaceReconReturnValues
class FaceReconReturnValues {
final String imageKey;
final String deviceScanSessionId;
}
| Atributo | Tipo | Descrição |
|---|---|---|
| imageKey | String | Chave de identificação da imagem fornecida, que pode ser utilizada em qualquer outro serviço do sistema QI Tech. Importante: armazene este valor para enviar nas APIs de validação (ex.: API de Onboarding). |
| deviceScanSessionId | String | Chave de identificação da sessão de scan de dispositivo realizada internamente pelo SDK de Reconhecimento facial, que pode ser utilizada em qualquer outro serviço do sistema QI Tech. |
FaceReconException
Em caso de falha, o método lança uma FaceReconException tipada:
class FaceReconException implements Exception {
final int? statusCode;
final String reason;
final String description;
}
| Atributo | Tipo | Descrição |
|---|---|---|
| statusCode | int? | Código HTTP do erro. |
| reason | String | Identificador do motivo do erro. |
| description | String | Descrição detalhada do erro. |
Erros mais comuns
| reason | statusCode | description |
|---|---|---|
INVALID_TOKEN | 401 | Authentication token expired or invalid — o clientSessionKey é inválido ou expirou. |
USER_CANCELED | 0 | User canceled FaceRecon. — o usuário interrompeu o fluxo antes de concluí-lo. |
Exemplo de tratamento
try {
final result = await plugin.startFaceRecon(
CaaSEnvironment.sandbox,
clientSessionKey,
);
print('Image key: ${result.imageKey}');
print('Device Scan Session Id: ${result.deviceScanSessionId}');
} on FaceReconException catch (e) {
print('Error executing FaceRecon:');
print('Status: ${e.statusCode}');
print('Reason: ${e.reason}');
print('Description: ${e.description}');
} catch (e) {
print('An unknown error occurred: $e');
}