• Francia
lyra.com
Buscar
Categoria
Tags
España
Francia
España
Europa (Inglés)
India
Implementación
Formulario incrustado (tarjetas)
API REST
API REST PCI-DSS
API REST SEPA
Formulario en redirección
Formulario de recolección de datos
Intercambio de ficheros
Pago móvil
Módulos de pago
Guías
Back office Experto
Ayuda
FAQ
Video tutorials
Contacte el soporte tecnico

Calcular la firma de la IPN

La firma se calcula de acuerdo con la misma lógica utilizada al solicitar el pago.

 Los datos transmitidos por la plataforma de pago están codificados en UTF-8. Cualquier alteración de los datos recibidos dará lugar a un cálculo de firma errónea.

Debe calcular la firma con los campos recibidos en la notificación y no con los que transmitió en la solicitud de pago.

  1. Considere todos los campos cuyos nombres comienzan con vads_.
  2. Ordene estos campos alfabéticamente.
  3. Concatene los valores de estos campos separándolos con el carácter " +".
  4. Concatene el resultado con la clave de prueba o de producción separándolos con el carácter " +".
  5. De acuerdo con el algoritmo de firma definido en la configuración de su tienda:
    1. si su tienda está configurada para usar "SHA-1", aplique la función de hash SHA-1 en el string obtenido en el paso anterior. Depreciado.
    2. si su tienda está configurada para usar "HMAC-SHA-256", calcule y codifique en formato Base64 la firma del mensaje usando el algoritmo HMAC-SHA-256 con los siguientes parámetros:
      • la función hash SHA-256,
      • la clave de prueba o de producción (según el valor del campo vads_ctx_mode) como clave compartida,
      • el resultado del paso anterior como mensaje a autenticar.
Ejemplos en PHP:
función getSignature ($params,$key)
{
    /**
     * Función que calcula la firma.
     * $ params: matriz que contiene los campos que se enviarán en la IPN.
     * $key : clave de TEST o PRODUCTION
     */
    //Inicialización de la variable que contendrá el string a cifrar
    $contenu_signature = "";
    //Ordenar los campos alfabéticamente
    ksort($params);
    foreach($params as $nom=>$valeur){
        //Recuperación de los campos vads_
        if(substr($nom,0,5)=='vads_'){
            //Concatenación con el separador  "+"
            $contenu_signature .= $valeur."+";
         }
    }
    //Añadir la clave al final del string
    $contenu_signature .= $key;
    //Codificación base64 del string cifrada con el algoritmo HMAC-SHA-256
    $sign = base64_encode(hash_hmac('sha256',$contenu_signature, $key, true));
    return$sign;
 }
Contratación

Head Office :

LYRA NETWORK
109, rue de l’innovation
31670 Labège
FRANCE

2.8.1-doc-1.8