Por qué suele fallar la verificación
- El cuerpo se parseó y volvió a serializar antes de calcular el hash. Firma los bytes exactamente como llegaron.
- Secreto equivocado: modo test frente a producción, o el app secret frente al verify token.
- Comparar con == en lugar de una comparación de tiempo constante, o comparar hex con base64.
- En esquemas con timestamp, desfase de reloj o una petición reenviada de hace más de cinco minutos.
Las interacciones de Discord usan firmas Ed25519 de clave pública, no HMAC; verifícalas con la clave pública de tu aplicación.
Relacionado: probador de payloads, guía de APIs y webhooks.