2xx.
Cabeçalhos de entrega
Toda tentativa de entrega carrega estes cabeçalhos:
Os cabeçalhos descrevem a tentativa de entrega; o corpo descreve o evento. Em um replay,
Sphere-Timestamp e Sphere-Signature são gerados novamente — de forma que o mesmo caminho de código de verificação trata originais e replays — enquanto o corpo permanece idêntico byte a byte ao original.
Como a assinatura é calculada
A assinatura é um digest HMAC-SHA256, codificado em hexadecimal:secret— o segredo de assinatura do endpoint (whsec_...), retornado uma única vez quando você criou o endpoint.timestamp— o valor do cabeçalhoSphere-Timestamp.rawBody— os bytes brutos do corpo da requisição HTTP, exatamente como transmitidos.
Sphere-Signature usando uma comparação de tempo constante.
Proteja-se contra ataques de replay
Para impedir que entregas capturadas sejam reenviadas por terceiros, rejeite entregas cujoSphere-Timestamp tenha mais de 5 minutos. Replays manuais recebem um timestamp e uma assinatura novos, então replays legítimos sempre passam nesta verificação.
Implementações de referência
Cada snippet recebe os bytes do corpo bruto, os dois cabeçalhos e o segredo do seu endpoint, e retorna se a entrega é autêntica.Quando a verificação falha
Responda com um código de status não-2xx (por exemplo 401) e não processe o payload. A entrega é registrada como failed do lado do SpherePay, dando a você uma trilha de auditoria na API de Eventos.
Se você registrou a mesma URL receptora em múltiplas aplicações do SpherePay, o endpoint de cada aplicação tem seu próprio segredo. Use o
applicationId do payload para selecionar o segredo correto — consulte Payloads de eventos. Se não puder fazer o parse do corpo antes de verificar, tente cada um dos seus segredos conhecidos.