Skip to content

Instantly share code, notes, and snippets.

@ppaulojr
Last active August 22, 2019 12:25
Show Gist options
  • Save ppaulojr/7b4aa216500ea8541cf014d08ef15481 to your computer and use it in GitHub Desktop.
Save ppaulojr/7b4aa216500ea8541cf014d08ef15481 to your computer and use it in GitHub Desktop.
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