- Parceiro vai cadastrar uma URL de callback (enviar para nós por e-mail)
- Parceiro receberá um client_id e um client_sercret (enviaremos por e-mail)
URL_ORAMA/parceiros/solicitacao/
- cpf: cpf formatado do cliente ( opcional ) -> tipo string ex: xxx.xxx.xxx-xx
- client_id: id de identificação do parceiro ( Obrigatório ) -> tipo string
- scope: Quais dados quer consultar ( Obrigatório ) - tipo string separado por vírgula ex: bolsa, perfil
URL_ORAMA/parceiros/solicitacao/?cpf=xxx.xxx.xxx-xx&client_id=XXXXXXXX&scope=bolsa,perfil
- O cliente será redirecionado ao login
- Irá efetuar o login
- Ser redirecionado para conceder permissão.
- Concordar com os termos
- Preencher assinatura eletrônica
- Enviar
Assim que houver a permissão, será redirecionado para URL de callback cadastrada com o resultado criptografado com o client_secret do parceiro.
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
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))
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'}