Implementação Básica
Abaixo um exemplo básico em HTML com um modelo de implementação. Neste modelo observe que o retorno é um objeto com duas propriedades(auth, nonce). A propriedade 'auth' com o valor 'TRUE' serve como Flag de conferência do status do retorno, já a propriedade 'nonce' deve ser usada para recuperar os dados solicitados. Ao clicar no botão um QRCode deve aparecer em sua tela.
OMID Sintaxe
Como parâmetros para o 'OMID' temos 'CID', 'ENV', 'fields':
- CID: ID do CLiente fornecida pela OriginalMy
- ENV: Para teste: 'stag', para produção: 'prod'
-
fields:
Campos solicitados ao usuário
- birthday: Data de nascimento
- blockchainid: Blockchain ID
- email: E-Mail
- name: Nome completo
- namegov: Nome na receita federal
- id: Identificador único no país (Ex: CPF para o Brasil)
- mobile_imei: IMEI do celular
- mobile_brand: Marca do celular
- mobile_model: Modelo do celular
- mobile_so: Sistema Operacional do celular
- mobile_so_version: Versão do Sistema Operacional
- mobile_screensize: Tamanho da tela do Celular
- phone: Número do Celular
- photo: Um 'nonce' para obter a foto do usuário
- photodocument: Um 'nonce' para obter a foto do documento do usuário
- photodocumentback: Um 'nonce' para obter a foto do verso documento do usuário
- photoresidence: Um 'nonce' para obter a foto do comprovante de residência do usuário
- latitude: Um 'nonce' para obter a foto do documento do usuário
- longitude: Um 'nonce' para obter a foto do documento do usuário
- OMID_KEY: Chave do OMID fornecida pela OriginalMy
- CRYPTOGRAPHY_KEY: Chave de criptografia fornecida pela OriginalMy
- IV: Chave de criptografia fornecida pela OriginalMy
- Authorization: Chave de API fornecida pela OriginalMy
- Token: Fornecido pela API de usuário
Preparando NONCE
As informações solicitadas em nosso exemplo são: 'name', 'blockchainid' e 'email'. O processamento da solicitação deve ser descriptografado pelo BACK-END da aplicação, assim evitando expor suas chaves de criptografia.
Abaixo enviamos uma requisição AJAX com o 'nonce' obtido no retorno da chamada ao objeto OMID.
Obtendo e descriptografando os dados
A linguagem de programação de sua aplicação deve ter suporte a UTF-8, Base64, Json e Decriptografia com Algoritmo 'aes256'.
O 'nonce' é enviado por meio de um requisição POST para nossa API. Essa requisição deve conter no HEADER a Autorização 'OMID_KEY' e no corpo o 'cid' e o 'nonce'. O resultado dessa requisição retorna os dados do usuário ofuscados por um algoritimo de criptografia.
O processo de descriptografar utiliza Cipher, com algoritimo 'aes256', mais a chave 'CRYPTOGRAPHY_KEY' e um 'IV'( ambus obitidos na OriginalMy ). A string de dados criptografada do usuário deve passar pelo processo de decode do Base64 com a entrada em UTF-8, sua saida é solicitada também em UTF-8 e o resultado deve ser uma string a ser parseada por JSON.
A partir desse resultado e de posse dessas informações você pode processar o cadastro do usuário e efetuar seu login.
Obtendo as Imagens
Com o 'nonce' da imagem obtida no processo de descriptografia, uma nova requisição é necessária para obter as imagens('photo' e 'photodocument'). Essa requisição deve ser enviada com o Header de Autorização comtento o 'OMID_KEY' e com os dados de 'CID' e 'Token'('nonce').