Nesta seção, você encontrará todas as informações necessárias para o uso e integração do SDK da plataforma Unico IDCloud em seus aplicativos Flutter
Nesta seção, você encontrará todas as informações necessárias para o uso e integração do SDK da plataforma Unico IDCloud em seus aplicativos Flutter para a captura do documento
Este guia foi elaborado para ajudá-lo a implementar o SDK Flutter de forma rápida e fácil. Abaixo veja o passo a passo de todo o processo de integração. Após isso, caso deseje personalizar a experiência, não deixe de ver a seção Personalização Flutter.
Neste modo de câmera, existe um frame de captura para auxiliar o usuário a posicionar o documento corretamente. Após posicionar o documento corretamente, o usuário deve clicar no botão para realizar a captura da foto do documento.
A SDK não realiza nenhum tipo de validação do que está sendo capturado.
Neste modo de câmera é possivel capturar os documentos:
CPF: Captura da frente do CPF;
CNH: Captura da CNH aberta;
CNH frente: Captura da frente da CNH;
CNH verso: Captura do verso da CNH;
RG frente: Captura da frente do RG;
RG verso: Captura do verso do RG;
Outros: Captura de qualquer outro documento.
Para iniciar, crie uma instância do builder (gerado através da interface UnicoCheckBuilder
, fornecendo como parâmetro o contexto em questão e a implementação da classe UnicoListener
.
A implementação dessa classe é bem simples e pode ser feita com poucas linhas de código. Tudo que precisa fazer é sobrescrever os métodos de callback com as lógicas de negócio de sua aplicação.
Note que, conforme o exemplo anterior, o trabalho de implementação da classe UnicoListener é, em grande parte, a configuração dos métodos de callback. Cada método é chamado em uma situação específica de retorno do SDK.
Basta sobrescrever os métodos exemplificados no passo anterior com as lógicas de negócio de sua aplicação:
onErrorUnico(UnicoError error)
Ao ser invocado, o método recebe um parâmetro do tipo UnicoError
que contem detalhes do erro. Saiba mais sobre o tipo UnicoError
na seção tratamento de erros do SDK.
onUserClosedCameraManually()
Este método é invocado sempre quando o usuário fechar a câmera de forma manual, como por exemplo, ao clicar no botão "Voltar".
onSystemClosedCameraTimeoutSession()
Este método é invocado assim que o tempo máximo de sessão for atingido (Sem capturar nenhuma imagem).
Pode ser configurado no builder através do método setTimeoutSession. Este método deve receber o tempo máximo da sessão em segundos. É possível alterar o tempo máximo de sessão do seu usuário ao utilizar a funcionalidade de detecção do rosto (Câmera de selfie com captura inteligente). Caso ele ultrapasse o tempo determinado em seu processo para capturar a foto, você pode apresentar alguma mensagem personalizável ou instrução ao usuário. O valor padrão é de 40 segundos e seu valor mínimo também é de 40 segundos.
onSystemChangedTypeCameraTimeoutFaceInference()
Este método é invocado assim que o tempo máximo para detecção do rosto de um usuário for atingido (Sem ter nada detectado). Neste caso, o modo de câmera é alterado automaticamente para o modo de captura manual (Sem a silhueta de captura inteligente).
O tempo máximo de captura ao utilizar a detecção do rosto (Câmera de selfie com captura inteligente) é de 13 segundos. Se o usuário encontra alguma dificuldade para captura da foto através da detecção do rosto e ultrapasse o tempo determinado em seu processo, a captura é alterada automaticamente para a manual, tendo como objetivo facilitar a ação para o usuário (TimeoutToFaceInference).
Todos os métodos acima devem ser criados da forma indicada em seu projeto (Mesmo que sem nenhuma lógica). Caso contrário, o projeto não compila com sucesso.
A implementação destes métodos listeners deve ser feita através de uma instância da classe iAcessoBioSelfie
.
O método de abertura da câmera precisa saber o que fazer ao conseguir capturar uma imagem ou ao ter algum erro no processo. É informado "o que fazer" ao método de abertura da câmera através da implantação de listeners que são chamados em situações de sucesso ou erro.
Através da implementação dos listeners, você pode especificar o que acontece em seu App em situações de erro (método onErrorDocument
) ou sucesso (método onSuccessDocument
) na captura de imagens.
onSucessDocument
Ao efetuar uma captura de imagem com sucesso, este método é invocado e retorna um objeto do tipo ResultCamera
que é utilizado posteriormente na chamada das APIs REST:
O objeto ResultCamera
retorna 2 atributos: base64
e encrypted
:
O atributo base64
pode ser utilizado se quiser exibir uma prévia da imagem em seu app;
Tanto o atributo encrypted
quanto o atributo base64
podem ser enviados na chamada das APIs REST do by Client.
Se for necessário converter o base64 para bitmap, a maneira padrão não funciona para o Android. É necessário realizar o split a partir da vírgula(,
) para que funcione. Se quiser saber mais, leia o artigo How to convert a Base64 string into a Bitmap image to show it in a ImageView?.
onErrorDocument
Ao ocorrer algum erro na captura de imagem, este método é invocado e retorna um objeto do tipo UnicoError
:
Saiba mais sobre os tipos de ErrorBio
na seção de tratamento de erros do SDK.
Para abrir a câmera, o método openCameraDocument()
é utilizado. Esse método é disponibilizado através do objeto gerado com uma instancia da classe UnicoCheck
.
Este método recebe os seguintes parâmetros:
Arquivo JSON com as credenciais, gerado no passo de configurar credenciais;
Os listeners configurados acima;
Tipo de documento a ser capturado, sendo eles:
Caso precise capturar um documento que não possuímos um frame específico (ex: RNE, entre outros), utilize o frame DocumentCameraTypes.OUTROS("descrição")
, que irá te possibilitar um frame genérico, retangular, que pode ser utilizado para orientar qualquer captura.
Exemplo para captura de CNH:
A captura das imagens é apenas a primeira parte da jornada. Após capturar a imagem, é necessário enviar o base64
gerado pelo SDK para as APIs REST do by Client. Saiba mais na seção CreateProcess do by Client.
Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da Central de Ajuda.
Nesta seção, você encontrará todas as informações necessárias para o uso e integração do SDK da plataforma Unico IDCloud em seus aplicativos Flutter para a captura da selfie
Este guia foi elaborado para ajudá-lo a implementar o SDK Flutter de forma rápida e fácil. Abaixo veja o passo a passo de todo o processo de integração. Após isso, caso deseje personalizar a experiência, não deixe de ver a seção .
Para iniciar, crie uma instância do builder (gerado através da interface UnicoCheckBuilder
, fornecendo como parâmetro o contexto e ambiente em questão e a implementação da classe UnicoListener
.
A implementação dessa classe é bem simples e pode ser feita com poucas linhas de código. Tudo que precisa fazer é sobrescrever os métodos de callback com as lógicas de negócio de sua aplicação.
Configure o ambiente que será utilizado na execução da SDK. Utilize o enumerado Environment
que contém os seguintes enumerados:
UnicoEnvironment.PROD
: para ambiente de Produção;
UnicoEnvironment.UAT
: para ambiente de Homologação.
Veja como implementar no exemplo abaixo:
Note que, conforme o exemplo anterior, o trabalho de implementação da classe UnicoListener é, em grande parte, a configuração dos métodos de callback. Cada método será chamado em uma situação específica de retorno do SDK.
Basta sobrescrever os métodos exemplificados no passo anterior com as lógicas de negócio de sua aplicação:
onErrorUnico(UnicoError error)
onUserClosedCameraManually()
Este método é invocado sempre quando o usuário fechar a câmera de forma manual, como por exemplo, ao clicar no botão "Voltar".
onSystemClosedCameraTimeoutSession()
Este método é invocado assim que o tempo máximo de sessão for atingido (Sem capturar nenhuma imagem).
Pode ser configurado no builder através do método setTimeoutSession. Este método deve receber o tempo máximo da sessão em segundos. É possível alterar o tempo máximo de sessão do seu usuário ao utilizar a funcionalidade de detecção do rosto (Câmera de selfie com captura inteligente). Caso ele ultrapasse o tempo determinado em seu processo para capturar a foto, você pode apresentar alguma mensagem personalizável ou instrução ao usuário. O valor padrão é de 40 segundos e seu valor mínimo também é de 40 segundos.
onSystemChangedTypeCameraTimeoutFaceInference()
Este método é invocado assim que o tempo máximo para detecção do rosto de um usuário for atingido (Sem ter nada detectado). Neste caso, o modo de câmera é alterado automaticamente para o modo de captura manual (Sem a silhueta de captura inteligente).
O tempo máximo de captura ao utilizar a detecção do rosto (Câmera de selfie com captura inteligente) é de 13 segundos. Se o usuário encontra alguma dificuldade para captura da foto através da detecção do rosto e ultrapasse o tempo determinado em seu processo, a captura é alterada automaticamente para a manual, tendo como objetivo facilitar a ação para o usuário (TimeoutToFaceInference).
Todos os métodos acima devem ser criados da forma indicada em seu projeto (Mesmo que sem nenhuma lógica). Caso contrário, o projeto não compila com sucesso.
O SDK tem configurado e habilitado por padrão o enquadramento inteligente e a captura automática. Em função disso, deve-se configurar o modo de câmera no seu builder da seguinte forma:
Os valores false/true dos métodos acima não alteram a experiência de captura, servem apenas para a lógica interna do funcionamento do SDK.
A implementação destes métodos listeners deve ser feita através de uma instância da classe UnicoSelfie
.
O método de abertura da câmera precisa saber o que fazer ao conseguir capturar uma imagem ou ao ter algum erro no processo. É informado "o que fazer" ao método de abertura da câmera através da implantação de listeners que são chamados em situações de sucesso ou erro.
Através da implementação dos listeners, você pode especificar o que acontece em seu App em situações de erro (método onErrorSelfie
) ou sucesso (método onSuccessSelfie
) na captura de imagens.
onSucessSelfie
Ao efetuar uma captura de imagem com sucesso, este método é invocado e retorna um objeto do tipo ResultCamera
que é utilizado posteriormente na chamada das APIs REST:
O objeto ResultCamera
retorna 2 atributos: base64
e encrypted
:
O atributo base64
pode ser utilizado se quiser exibir uma prévia da imagem em seu app;
O atributo encrypted
é destinado estritamente ao envio da imagem através das APIs do by Client. Não se deve abrir e serializar esse atributo, pois suas características podem ser alteradas sem aviso prévio. Seu uso deve ser exclusivo nas interações com as APIs para garantir a integridade e segurança dos dados. A Unico não se responsabiliza por quaisquer danos decorrentes dessa prática, uma vez que as modificações podem ocorrer de maneira imprevista.
Os arquivos base64/encrypted
podem sofrer variações de tamanho de acordo com diversas variáveis, dentre elas, a qualidade dos aparelhos e das fotos geradas pelos mesmos e regras de negócio da Unico. Para não encontrar problemas em sua aplicação, não limite em sua lógica de programação ou sua infraestrutura o tamanho da string gerada pela SDK para os arquivos.
onErrorSelfie
Ao ocorrer algum erro na captura de imagem, este método é invocado e retorna um objeto do tipo UnicoError
:
O método openCameraSelfie
é utilizado para abrir a camera. Este método recebe como parâmetro a implementação da classe UnicoSelfie
e o JSON com as credenciais, gerado na etapa acima.
O exemplo a seguir ilustra os passos de configuração dos listeners e abertura da câmera:
Por motivos de segurança, o intervalo entre a geração do encrypted
e o envio via um dos fluxos disponíveis deve ser de até no máximo 10 minutos. Envios feitos além deste período serão rejeitados automaticamente pela API.
Parâmetro | Descrição |
---|---|
Ao ser invocado, o método recebe um parâmetro do tipo UnicoError
que contem detalhes do erro. Saiba mais sobre o tipo UnicoError
no documento de do SDK.
O atributo encrypted
deve ser enviado na chamada das APIs REST do .
Se for necessário converter o base64 para bitmap, a maneira padrão não funciona para o Android. É necessário realizar o split a partir da vírgula(,
) para que funcione. Se quiser saber mais, leia o artigo: .
Saiba mais sobre os tipos de ErrorBio
na seção de do SDK.
A captura das imagens é apenas a primeira parte da jornada. Após capturar a imagem, é necessário enviar o encrypted
gerado pelo SDK para as APIs REST do by Client. Saiba mais na seção .
Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da .
DocumentCameraTypes.CPF
Frame para captura da frente do CPF
DocumentCameraTypes.CNH
Frame para captura da CNH aberta
DocumentCameraTypes.CNH_FRENTE
Frame para captura da frente da CNH
DocumentCameraTypes.CNH_VERSO
Frame para captura do verso da CNH
DocumentCameraTypes.RG_FRENTE
Frame para captura da frente do RG
DocumentCameraTypes.RG_VERSO
Frame para captura do verso do RG
DocumentCameraTypes.OUTROS("descrição")
Frame para captura de qualquer outro documento