Autenticação
A autenticação para emissão do certificado utilizará o protocolo HMAC para envio de mensagens JSON. Objetivo: permitir a comunicação entre um Cliente e o Servidor com segurança.
Nonce
O número nonce deve ser composto pelo timestamp (Unix Timestamp sem microssegundos) concatenado com uma parte pseudoaleatória de 4 (quatro) números.
O Servidor sempre irá verificar se o nonce enviado pelo Cliente na requisição está dentro de uma margem de tolerância em relação ao relógio do Servidor. Se o timestamp do nonce estiver fora dessa margem o Servidor irá recusá-lo e enviar uma mensagem de erro XXXXXXXXX.
HMAC
O protocolo HMAC prevê comunicação com autenticação, de forma simplificada, o objetivo é permitir a comunicação entre dois sistemas remotos com segurança sem o trafego da senha nas requisições.
O Servidor define o algoritmo de hash H() a ser utilizado para cálculo do HMAC. O algoritmo SHA256.
Cliente e Servidor devem utilizar a mesma chave keypara cálculo do HMAC. Essa chave deve ter tamanho e entropia suficiente para desestimular ataques de força bruta e de dicionário.
A key utilizada é obtida através da aplicação web do S.DEAL.
O hmac de cada mensagem é calculado da seguinte forma:
H(): algoritmo de hashhkey: chave utilizada para o cálculo||: concatenação de stringsm: concatenação de todos os dados a serem enviados
A chave hkey é calculada da seguinte forma:
nonce: Nonce enviado pelo Clientekey: Senha de API
Obtendo a key
A key é obtida da seguinte forma:
Acesse o sistema de homologação/produção com o usuário e senha fornecidos pela SOLUTI. Após o acesso, clique na opção Gerador de senha, como demonstra a imagem a seguir:

Em seguida será aberta a tela para gerar uma nova senha. Clique na imagem Gerador de Senha como é demostrado a seguir:

Em seguida, clique em SIM para gerar uma nova senha de integração - API.

Nova senha gerada com sucesso:

Após a geração da senha a mesma não é apresentada novamente para o usuário. Após a geração ela deve ser armazenada pela aplicação Cliente.
Mensagens em JSON
Por questões de compatibilidade, a mensagem JSON deve obedecer aos seguintes critérios:
Não deve conter espaços desnecessários (por exemplo, espaços e quebras de linha entre os elementos do JSON).
Os nomes/descritores dos elementos devem estar entre aspas duplas.
Os valores dos elementos também devem estar entre aspas duplas.
Apenas valores numéricos (inteiros ou de ponto flutuante) podem estar sem as aspas duplas.
Last updated