La firma no coincide
La causa más común es firmar el JSON analizado en lugar del cuerpo sin formato exacto, o usar una marca de tiempo diferente a la del encabezado de la solicitud.
Probador de Webhooks
Edita un cuerpo de ejemplo y genera una firma HMAC-SHA256 y una solicitud cURL para tu entorno de prueba.
Introduce la URL, la clave de prueba y la marca de tiempo.
La firma se calcula en el navegador. Usa una clave de prueba.
Marca de tiempo Unix en milisegundos, como en los encabezados de BoltUtil.
La firma y cURL se actualizan al editar el JSON.
Introduce una clave, una marca de tiempo y un JSON válidos.
Calculada con la marca de tiempo, el cuerpo original y la clave de prueba.
Introduce una URL, una clave, una marca de tiempo y un JSON válidos.Ejemplo de callback de una orden USDC, adaptable a USDT. La orden, las direcciones y el hash son ficticios y no acreditan un pago.
La herramienta no envía solicitudes. Ejecuta cURL manualmente en tu entorno de prueba.
Verificación
Verifica con la misma regla, guarda el evento y actualiza la orden.
Ver guía de verificaciónHMAC_SHA256(timestamp + "." + rawBody, secret)Utilice la marca de tiempo de milisegundos del encabezado y el cuerpo sin formato exacto para calcular HMAC antes de analizar JSON. Los espacios en blanco, los saltos de línea y el orden de los campos afectan la firma.
Compare la firma recibida con un asistente de tiempo constante proporcionado por el tiempo de ejecución de su idioma.
Solo se obtiene el éxito después de registrar el evento o colocarlo en una cola interna duradera.
Diagnóstico de Webhooks
La mayoría de problemas vienen de verificación de firma, parseo del body, gestión de reintentos o devolver éxito antes de registrar el evento de pago.
La causa más común es firmar el JSON analizado en lugar del cuerpo sin formato exacto, o usar una marca de tiempo diferente a la del encabezado de la solicitud.
Utilice el secreto del webhook configurado para el punto final del comerciante. Las claves de API y los secretos de webhook deben tratarse como credenciales diferentes.
El middleware JSON puede reordenar o reformatear cargas útiles. Capture el cuerpo sin formato antes de analizarlo al verificar las firmas HMAC.
Un estado distinto de 2xx indica fallo. Los reintentos dependen del tipo de callback, del estado HTTP y de la política de reintentos.
Deduplica por identificador de orden y estado, o por un ID de evento único. Un hash puede incluir varias transferencias.
Devuelva HTTP 2xx solo después de escribir el evento en su base de datos o cola. De lo contrario, una falla puede hacer perder una notificación de pago completada.
Preguntas frecuentes
Usa estas comprobaciones cuando el pago está completado pero tu aplicación no se actualiza.
Verifique el cuerpo exacto de la solicitud sin procesar, el encabezado de la marca de tiempo y el secreto del webhook configurado. La firma de JSON analizado o un cuerpo reformateado generalmente produce un HMAC diferente.
No. BoltUtil usa el estado HTTP: 2xx indica recepción correcta. Verifica y guarda el evento antes de responder.
Usa una restricción única o una operación atómica por orden y estado, o ID de evento. No uses solo el hash de la transacción.
Devuelve 2xx tras verificar y guardar el evento. Si falla, devuelve un error adecuado; los reintentos dependen del tipo de callback y la política.