Nesta seção, você encontrará todas as informações necessárias para o uso e integração do SDK da plataforma Unico IDCloud em suas aplicações Web
Nesta seção, você encontrará todas as informações necessárias para o uso e integração do SDK da plataforma Unico IDCloud em suas aplicações Web para a captura da selfie
Este guia foi elaborado para ajudá-lo a implementar o SDK Web 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 Web.
Para começar, você deve efetuar 3 passos simples em seu projeto:
Instancie um novo Builder:
Especifique o caminho dos arquivos adicionais (caso adicionados em seu projeto):
Especifique o caminho dos arquivos dos modelos de IA, caso utilize a funcionalidade de Câmera Inteligente
A partir da versão 3.18.0, para que o SDK busque automaticamente os recursos adicionais basta que o método setResourceDirectory
não seja implementado e as configurações de CSP para uso do SDK sejam aplicadas corretamente.
Caso não seja configurado, por padrão o SDK Web utiliza o ambiente de produção.
É possível configurar o ambiente que será utilizado na execução da SDK. Utilize o enumerado SDKEnvironmentTypes
que contém os seguintes enumerados:
SDKEnvironmentTypes.PROD
: para ambiente de Produção;
SDKEnvironmentTypes.UAT
: para ambiente de Homologação.
Veja como implementar no exemplo abaixo:
Um dos objetos que deve ser passado como parâmetro ao método responsável por renderizar o frame de captura é o de callback. Este objeto deverá conter funções de callback para casos de sucesso e erro, como exemplificados abaixo.
Este objeto é obrigatório e caso não seja corretamente implementado (contemplando todos os eventos de success
ou error
) gera uma exceção, que caso não tratada, é exibida no console do usuário.
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.
Para iniciar a câmera com as configurações feitas até aqui, é preciso criar uma instância do builder através do método build()
.
Em seguida, com a câmera "montada", deve-se configurar o modo de captura da câmera.
A preparação da câmera será efetuada a partir do método prepareSelfieCamera()
, disponibilizado a partir do builder. Este método recebe 2 parâmetros:
A classe UnicoConfig obtida neste passo;
Modo de câmera desejado, sendo eles:
SelfieCameraTypes.NORMAL
para o modo de câmera normal;
SelfieCameraTypes.SMART
para o modo de câmera inteligente.
Este método gera uma promise que ao ser resolvida, devolve um objeto que é utilizado para efetivamente abrir a câmera através do método open
, que recebe como parâmetro as funções de callback
configuradas no passo acima.
Para otimizar a abertura da câmera é possível separar as chamadas dos métodos prepareSelfieCamera()
e open()
.
Caso deseje utilizar a captura automática, passe o parâmetro Unico.SelfieCameraTypes.SMART
para o método prepareSelfieCamera
.
Para a captura inteligente, os modelos de visão computacional também devem ser carregados através do método setModelsPath
, conforme explicado no primeiro passo deste guia.
Usando a classe UnicoConfig:
É possível utilizar o SDK Web com Liveness Interativo embarcado em um iFrame, para isso é preciso realizar uma implementação semelhante a seção anterior na preparação da câmera.
A preparação da câmera será efetuada através do método prepareSelfieCameraForIFrame()
, também disponibilizado a partir do builder. Este método recebe os mesmos parâmetros do prepareSelfieCamera()
:
O método prepareSelfieCameraForIFrame()
só funciona se a implementação estiver em um iFrame, o uso fora de um iFrame resulta no erro 73724
. Assim como usar o método prepareSelfieCamera()
dentro de um iFrame resulta no erro 73724
Para que a captura funcione corretamente é necessário implementar o elemento <iframe>
como no exemplo abaixo:
Para executar a captura é necessário estar no modo tela cheia do browser para que o SDK possa se redimensionar automaticamente. Sendo assim, ao executar a captura, o SDK apresenta uma tela solicitando a abertura do frame em modo tela cheia. Veja no exemplo a seguir:
Após permitir o uso de tela cheia, o frame de captura abrirá normalmente:
A Apple impede o uso de APIs de tela cheia especificamente em iPhones (iPads são aceitáveis). Sendo assim, para capturas em iPhones, é necessário configurar o posicionamento do iFrame por conta própria.
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 CreateProcess do by Client.
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.
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 suas aplicações Web para a captura do documento
Este guia foi elaborado para ajudá-lo a implementar o SDK Web 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 Web.
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 começar, você deve efetuar 2 passos simples em seu projeto:
Instancie um novo Builder:
Especifique o caminho dos arquivos adicionais (caso adicionados em seu projeto):
É recomendado que você configure o tamanho do frame dentro de sua aplicação, a fim de otimizar a área de captura dentro de seu WebApp. Confira abaixo como fazer esta configuração para Web Desktop ou Mobile.
Muitas vezes o funcionamento do frame pode ser afetado por alguns design-systems que possuam algum tipo de grid-system como, por exemplo, bootstrap ou material-ui. Para minimizar este risco, certifique-se de posicionar o frame (id="box-camera"
) em algum lugar do código que não herde regras indesejadas de css.
Nas versões Web Desktop, é possível restringir o tamanho do frame para que o mesmo não utilize toda a dimensão de seu WebApp. Para isto, basta envolver o frame (id="box-camera"
) em outra tag html, como no exemplo abaixo:
Idealmente, você deve tentar manter uma proporção adequada entre altura e largura, o que irá facilitar o enquadramento da face do usuário. A seguir um exemplo:
Seguindo o exemplo acima, o frame respeita o tamanho do elemento "pai", neste caso representado pelo container. Desta forma, você tem a flexibilidade para implementar o frame da forma mais conveniente para sua aplicação (como em um modal, por exemplo).
Testes alterando o tamanho da tela através do modo desenvolvedor de seu browser não funcionam. É recomendado que este tipo de teste seja feito alterando o tamanho da janela de seu browser.
Para uma view Web Mobile é recomendado que o frame de captura ocupe 100% da tela para evitar problemas com os algorítimos de visão computacional. Caso a área de captura esteja distorcida, a funcionalidade de captura automática (Câmera Inteligente) pode apresentar problemas de calculo no tracking da face dos usuários.
Sendo assim, é recomendado que na view Web Mobile:
O frame de captura ocupe 100% da tela do dispositivo (100vw/vh
);
Evitar o scroll horizontal ou vertical (isso pode ser minimizado com um modal);
Você pode conferir um exemplo de implementação através de um projeto nesta página (Angular).
Testes de devices utilizando o modo desenvolvedor de seu browser não funcionam, dado que, a camera utilizada pelo seu browser é a mesma de seu desktop, que possui uma resolução totalmente diferente da camera de um dispositivo móvel. Recomendamos que este tipo de teste seja feito diretamente no dispositivo.
Um dos objetos que é necessário passar como parâmetro ao método responsável por renderizar o frame de captura é o de callback. Este objeto deve conter funções de callback para casos de sucesso e erro, como exemplificados abaixo.
Este objeto é obrigatório e caso não seja corretamente implementado (contemplando todos os eventos de success
ou error
gera uma exceção, que caso não tratada, é exibida no console do usuário).
Para iniciar a câmera com as configurações feitas até aqui, é preciso criar uma instância do builder através do método build()
.
Em seguida, com a câmera "montada", deve-se configurar o modo de captura da câmera.
A preparação da câmera é efetuada a partir do método prepareDocumentCamera()
, disponibilizado a partir do builder. Este método recebe 2 parâmetros:
A classe UnicoConfig obtida neste passo;
Tipo de documento a ser capturado, sendo eles:
Este método gera uma promise que ao ser resolvida, devolve um objeto que é utilizado para efetivamente abrir a câmera através do método open
, que recebe como parâmetro as funções de callback
configuradas no passo acima.
Abaixo um exemplo utilizando a captura de CNH:
Usando a classe UnicoConfig
:
Caso precise capturar um documento que não possuímos um frame específico (ex: RNE, entre outros), utilize o frame DocumentCameraType.None
, que irá te possibilitar um frame genérico, retangular, que pode ser utilizado para orientar qualquer captura.
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.
Parâmetro | Descrição |
---|---|
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
DocumentCameraTypess.RG_FRENTE
Frame para captura da frente do RG
DocumentCameraType.RG_VERSO
Frame para captura do verso do RG
DocumentCameraTypes.RG_FRENTE_NOVO
Frame para captura da frente do novo RG
DocumentCameraTypes.RG_VERSO_NOVO
Frame para captura da parte traseira do novo RG
DocumentCameraTypes
.OTHERS("descrição")
Frame para captura de qualquer outro documento