Onde vive cada segredo
Verificação do webhook (HMAC SHA-256)
A FaciPay assina cada webhook. O headerx-facipay-content-token contém o HMAC SHA-256
do body cru calculado com o seu WEBHOOK_SECRET. A ordem dos passos é crítica.
Leia o body CRU antes de qualquer parser JSON
Se fizer
JSON.parse primeiro, o HMAC não vai bater certo.Calcule o HMAC e compare em tempo constante
Use
crypto.timingSafeEqual. Se os tamanhos diferirem, devolva 401 antes de comparar.Por framework
Outras boas práticas
- Valide a origem do popup. Ao ouvir
postMessage, confirmeevent.origincontra o domínio oficial do checkout antes de confiar na mensagem (ver Eventos). - Recalcule o total no servidor. Nunca aceite o
amountvindo do cliente. - Trate o webhook como idempotente. Reprocessar não pode duplicar fulfillment.
- HTTPS em produção. Obrigatório para a SDK e para receber webhooks.
Próximo passo: Go-live
Checklist para passar de sandbox a produção.