Wompi API
  • Introducción
  • Auntenticación
    • Autenticación
  • Métodos API
    • Crear Enlace de Pago
    • Crear Transacción Compra con 3DS
    • Ejecutar Transacciones de Prueba
    • Datos Aplicativo
  • Plugins
    • WooCommerce (Wordpress)
    • Shopify
  • Webhook
    • Definición Webhook
    • Como Registrar mi Webhook
    • Validar Webhook
  • Redirect URL
    • Parámetros de URL de Redirect
    • Validar Parámetros URL Redirect
  • Referencia API
    • Swagger
Powered by GitBook
On this page
  • Validar con Hash
  • Ejemplos
  • Validar Consultando Transacción

Was this helpful?

  1. Webhook

Validar Webhook

Para asegurar que el webhook es de Wompi es necesario validarlo, en esta documento se muestra como.

PreviousComo Registrar mi WebhookNextParámetros de URL de Redirect

Last updated 8 months ago

Was this helpful?

Usuario mal intencionados podrían tratar de falsificar un webhook de Wompi para forzar que una transacción se marque como pagada en el sistema cliente. Se ofrecen dos formas para evitar esto.

Validar con Hash

Todo webhook enviado por Wompi incluirá el header "wompi_hash", este header es el hash SHA256 del contenido del body calculado con HMAC.

Los pasos para validar son:

  1. Leer el "body" completo del webhook. Asegurarse leerlo tal cual es enviando sin agregar ningún espacio o salto de linea.

  2. Sacar el HMAC con algoritmo SHA256 del "body" utilizando el API Secret de su aplicativo de Wompi como llave del HMAC

  3. Comparar el resultado del punto anterior con el valor de header "wompi_hash", si es igual el webhook se puede considerar válido.

Ejemplos

Nuestro plugin de Woocommerce ya hace esta validación, para ver como se realiza la validación en PHP puede consultar el código .

Si desea calcular un hash SHA256 con HMAC en C# puede usar este código

        private static string EncriptarData(string body, string secret)
        {
            UTF8Encoding encoding = new UTF8Encoding();

            var hash = new HMACSHA256(encoding.GetBytes(secret));
            byte[] stream = hash.ComputeHash(encoding.GetBytes(body));
            string textHash = string.Concat(stream.Select(b => b.ToString("x2")));
            hash.Dispose();
            return textHash;
        }

Validar Consultando Transacción

Si desea probar en linea el calculo del HMAC del webhook puede usar esta herramienta: colocando SHA256 en el algoritmo Digest y su Api Secret en el "Secret Key".

Como se puede ver en nuestro , se incluye un método para extraer los datos de una transacción /TransaccionCompra/{id}. Puede utilizar la propiedad "IdTransaccion" para consultar los datos de la transacción y así confirmar que exista y este aprobada.

aqui
https://www.freeformatter.com/hmac-generator.html
Swagger