Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Documentação Integração Trademap

Processo de Credenciamento

  1. Parceiro vai cadastrar uma URL de callback (enviar para nós por e-mail)
  2. Parceiro receberá um client_id e um client_sercret (enviaremos por e-mail)

Solicitar autorização do usuário

URL_ORAMA/parceiros/solicitacao/

Dados passados via HTTP GET:

  1. cpf: cpf formatado do cliente ( opcional ) -> tipo string ex: xxx.xxx.xxx-xx
  2. client_id: id de identificação do parceiro ( Obrigatório ) -> tipo string
  3. scope: Quais dados quer consultar ( Obrigatório ) - tipo string separado por vírgula ex: bolsa, perfil

Exemplo:

URL_ORAMA/parceiros/solicitacao/?cpf=xxx.xxx.xxx-xx&client_id=XXXXXXXX&scope=bolsa,perfil

Caso não passe o CPF:

  1. O cliente será redirecionado ao login
  2. Irá efetuar o login
  3. Ser redirecionado para conceder permissão.
  4. Concordar com os termos
  5. Preencher assinatura eletrônica
  6. Enviar

Assim que houver a permissão, será redirecionado para URL de callback cadastrada com o resultado criptografado com o client_secret do parceiro.

Criptografia:

   1. A criptografia é usando o MODE_CBC
   2. A key é o client_secret do parceiro e o IV é o client_id.
   3. Utilizando o encode PKCS7

Exemplo de código (Python):

          from Crypto.Cipher import AES
          from pkcs7 import PKCS7Encoder
          iv = client_id
          key = client_secret
          aes_key = AES.new(key, AES.MODE_CBC, iv)
          encrypted_message = aes_key.encrypt(PKCS7Encoder().encode(message))

Reconsultas

Caso envie o CPF e não tenha ainda permissão: O sistema irá executar o fluxo normal de autorização.

Caso envie o CPF e já tenha a permissão desse cliente para o scope solicitado: Será redirecionado automáticamente para a url de callback

Exemplo do callback:

URL_CADASTRADA?result=XXXXXXXXXXX

Onde result é o parametro com os dados criptografados.

Exemplo de resultado descriptografado:

   {'cblc': [123123, 123123], 'nome': 'XXX', 'cpf': 'xxx.xxx.xxx-xx'}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.