Validador de Hash

Herramienta de depuración para comprobar que el hash HMAC-SHA256 recibido en una notificación IPN coincide con el que debería calcular tu servidor. Útil para identificar errores de decodificación, concatenación o encoding sin necesidad de desplegar cambios ni agregar logs adicionales.

¿Cómo usarla?

  1. Copia tu CLAVE_SECRETA desde la plataforma Yappy Comercial WEB — es la cadena en base64 que obtuviste al generar tus credenciales.
  2. Toma los valores orderId, status, domain y hash directamente de los query parameters de la notificación IPN que recibiste.
  3. Pega cada valor en el campo correspondiente y haz clic en Validar hash.
  4. La herramienta ejecuta los 6 pasos del algoritmo y muestra el resultado de cada uno, más el veredicto final.
Privacidad garantizada

Todo el cálculo ocurre localmente en tu navegador. Tu CLAVE_SECRETA nunca abandona tu dispositivo ni se transmite a ningún servidor.

1
Decodificar CLAVE_SECRETA de base64 a bytes
atob(claveSecreta) convierte el base64 en un string donde cada carácter representa un byte crudo.
Base64 original
Bytes decodificados (hex)
2
Interpretar bytes como texto UTF-8
TextDecoder('utf-8').decode(bytes) — equivalente a Buffer.from(clave, 'base64').toString('utf-8') en Node.
Texto UTF-8 resultante
3
Dividir por "." y tomar el primer segmento
decoded.split('.') — solo el fragmento [0] se usa como llave HMAC; el resto se descarta.
Partes obtenidas
Llave HMAC → partes[0]
4
Concatenar orderId + status + domain
Sin espacios ni separadores, en ese orden exacto.
orderId
status
domain
Mensaje concatenado
5
Calcular HMAC-SHA256 en hexadecimal
crypto.subtle.sign('HMAC', llave, mensaje), resultado convertido a hex en minúsculas.
Hash calculado
6
Comparar contra el hash recibido
Si son idénticos, la notificación es auténtica. Si difieren, debe rechazarse.
Hash recibido
Hash calculado

Si tu CLAVE_SECRETA no contiene un punto "." se usa el texto decodificado completo como llave. La comparación es sensible a mayúsculas/minúsculas; Yappy genera el hash en hex minúsculas.

¿Te fue útil esta página?