Geração de HMAC
Está página tem como objetivo orientar a implementação do cálculo HMAC para acesso as nossas APIs. O HMAC é uma nova camada de segurança para garantir a correta identificação do chamador.
Basicamente, o funcionamento desta camada consiste em incluir uma assinatura eletronicamente gerada nas chamadas. As nossas APIs, ao receber esta chamada, irão recalculas a mesma assinatura e bater com a assinatura enviada.
#
RequisitosVocê precisará ter as seguintes informações, que normalmente já são usadas nas chamadas sem esta camada de autenticação:
- API Key: Sua identificação como cliente. O seu código de cliente, ou Merchant ID.
- Secret Key: Sua chave de segurança. Nas chamadas sem esta camada, ela é enviada como Merchant Key. Nas chamadas usando HMAC, esta informação nunca é enviada. Ela apenas participa do cálculo.
#
Adaptando suas chamadasOs exemplos abaixo vão se comportar tal como os exemplos citados na página de pagemento.
Considerando uma chamada simples commo ilustrada abaixo:
Vamos fazer as seguintes alterações para torná-la compatível com a nova camada de segurança.
- Passo 1: Coloque o script abaixo no seu Postsman como pre-req script:
- Passo 2: Configure as seguintes variáveis header no seu Postman:
Parâmetro | Descrição | Formato | Obrigatório |
---|---|---|---|
Content-Type | Deve ser enviado com o valor application/json . | = 15 AN | SIM |
merchant_id | Código da loja no Carat. Os códigos de produção e certificação serão diferentes. | < 15 AN | SIM |
merchant_key | Chave de autenticação da loja no Carat. As chaves de produção e certificação serão diferentes. | < 80 AN | SIM |
Auth-Token-Type | Identificação do tipo de autenticação usado na chamada. No caso, HMAC | < 10 AN | SIM |
Authorization | Resultado gerado na rotina JavaScript do Passo 1. No Postman, pode ser usado {Authorization} para pegar a variável de ambiente criada pelo Script | < 250 AN | |
Timestamp | Deve conter a representação numérica da data e hora. No Postman, pode ser usado {time} para pegar a variável de ambiente criada pelo Script | < 15 N | SIM |
Client-Request-Id | Este campo irá conter um número gerado e único para ser propagado por toda a vida da transação. | < 100 N | SIM |
api-key | Vai conter a sua chave para acesso via HMAC. Isso deverá ser fornecido pela Fiserv. | < 100 N | SIM |
- Passo 3: Executar a chamada:
Após as mudanças, o novo curl gerado pelo Postman seria algo parecido com o seguinte:
O exemplo acima irá se comportar tal qual as demais chamadas na página de pagamento.