Autenticar Requisições
A segurança na Get Smart API Cloud é garantida por meio de uma assinatura digital incluída em cada requisição e resposta. Este guia explica como gerar essa assinatura usando sua Merchant Secret Key (Chave Secreta do Estabelecimento) e como verificar as respostas enviadas pelo servidor.
A Lógica de Assinatura
A API não utiliza um Bearer token padrão ou Basic Auth. Em vez disso, ela utiliza um mecanismo de assinatura customizado baseado no algoritmo de hash SHA-256.
Cada envelope de mensagem JSON contém dois campos de nível superior:
info: O payload real de dados.signature: O hash criptográfico que verifica o payloadinfo.
O Algoritmo
Para gerar uma assinatura válida, siga esta sequência específica:
- Extrair o Payload: Pegue todo o conteúdo do objeto JSON
info. - Minimizar o JSON: Certifique-se de que a string JSON esteja “minimizada” (remova todos os espaços em branco extras, tabulações e quebras de linha). Ela deve começar com
{e terminar com}. - Adicionar o Segredo: Adicione a sua Merchant Secret Key diretamente ao final da string JSON minimizada.
- Hash: Calcule o hash SHA-256 desta string combinada.
- Formato: O hash resultante (string hexadecimal) é a sua assinatura.
Exemplo Passo a Passo
Vamos percorrer o processo de geração utilizando os dados de exemplo fornecidos no manual de integração.
Credenciais:
- Código do Estabelecimento:
777888991 - Chave Secreta:
AAABBB
Passo 1: Construir o Objeto info
{
"comercio": "777888991",
"timestamp": "20250428 111217",
"terminal": 1,
"notificacion": {
"urlNotificacion": "[http://www.miservicio.es/servicio/notificaciones/tpvpc](http://www.miservicio.es/servicio/notificaciones/tpvpc)",
"correoNotificacion": "[email protected]"
},
"datosOperacion": {
"importe": "15.00",
"factura": "FACTURA1"
}
}Passo 2: Minimizar a String JSON
Serialize o objeto em uma string sem espaçamento:
{"comercio":"777888991","timestamp":"20250428 111217","terminal":1,"notificacion":{"urlNotificacion":"[http://www.miservicio.es/servicio/notificaciones/tpvpc](http://www.miservicio.es/servicio/notificaciones/tpvpc)","correoNotificacion":"[email protected]"},"datosOperacion":{"importe":"15.00","factura":"FACTURA1"}}Passo 3: Adicionar a Chave Secreta
Adicione a chave AAABBB ao final:
{"comercio":"777888991","timestamp":"20250428 111217","terminal":1,"notificacion":{"urlNotificacion":"[http://www.miservicio.es/servicio/notificaciones/tpvpc](http://www.miservicio.es/servicio/notificaciones/tpvpc)","correoNotificacion":"[email protected]"},"datosOperacion":{"importe":"15.00","factura":"FACTURA1"}}AAABBBPasso 4: Calcular o Hash SHA-256
Passar a string acima por uma calculadora SHA-256 resulta em: 0ED5D16230C0E2683CF304A713154B90D887D592EF72437AA214CBA305B00646
Passo 5: Formar a Requisição Final
Coloque o hash no campo signature:
{
"info": {
... (the JSON object from Step 1) ...
},
"signature": "0ED5D16230C0E2683CF304A713154B90D887D592EF72437AA214CBA305B00646"
}Verificando Respostas
Quando a API responde, ela inclui uma signature calculada usando a mesma Chave Secreta. Para verificar se a resposta é autêntica e não foi adulterada:
- Extraia o objeto
infoda resposta. - Execute exatamente os mesmos passos de geração de assinatura (Minimizar -> Adicionar Chave -> Hash).
- Compare o hash calculado com a
signaturerecebida na resposta.
Sempre verifique a assinatura da resposta antes de confiar nos códigos de status ou resultados da transação dentro do bloco info.
Solução de Problemas de Assinatura
O erro mais comum é TPC0101: Firma Incorrecta (Assinatura Incorreta).
| Causa Comum | Solução |
|---|---|
| Formatação JSON | Certifique-se de que está fazendo o hash da string exata que está enviando. Algumas bibliotecas JSON adicionam espaços ou reordenam chaves. A assinatura é sensível à representação específica em nível de byte. |
| Codificação de Caracteres | Certifique-se de que a string esteja codificada em UTF-8 antes de fazer o hash. |
| Confusão de Chaves | Verifique se você está usando a chave correta para o ambiente (Chave de Teste para URL de Sandbox, Chave de Produção para URL de Produção). |
Próximos Passos
Agora que você pode se autenticar, você está pronto para explorar a arquitetura principal ou implementar fluxos de pagamento específicos.
- Arquitetura da API Cloud: Entenda a natureza síncrona vs. assíncrona do sistema.
- Processar Pagamentos em Etapa Única: Aplique esta lógica de assinatura a uma transação de pagamento real.