• Francia
página de estado
demo
asistencia
FAQContacte el soporte tecnico
Buscar
Categoria
Tags
España
Francia
España
Europa (Inglés)
India
Página principal
Casos de uso
Crear un pago
Crear un pago en vencimientos
Crear un pago multitarjeta
Crear un pago por token
Crear un enlace de pago
Crear una suscripción
Gestione sus suscripciones
Gestione sus transacciones
Analizar los diarios
Docs API
Formulario incrustado
API REST
Formulario en redirección
Pago móvil
Intercambio de ficheros
Ejemplo de código
Medios de pago
Plugins
Guías
Back office Experto
Guías funcionales

Calcular la firma de la IPN

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

La plataforma de pago transmite datos codificados en UTF-8. Cualquier alteración de los datos recibidos resulta en un cálculo de firma erróneo.

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 convads_.
  2. Ordene los campos por orden alfabético.
  3. Concatene los valores de estos campos separándolos con el carácter “+".
  4. Concatene el resultado a la clavede prueba o de producción separándolos con el carácter "+".
  5. Según 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. Obsoleto
    2. si su tienda está configurada para usar "HMAC-SHA-256", calcule y codifique la firma del mensaje en formato Base64 usando el algoritmo HMAC-SHA-256 con los siguientes parámetros:
      • la función de hash SHA-256,
      • la clave de test o de producción (según el valor del campovads_ctx_mode) como clave compartida,
      • el resultado de la etapa anterior como mensaje para autentificar.
Ejemplos en PHP
función getSignature ($params,$key)
{
    /**
     * Función que calcula la firma.
     * $ params: tabla que contiene los campos recibidos en la IPN.
     * $key : clave de TEST o PRODUCTION
     */
    //Inicialización de la variable que contiene la cadena que se debe 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."+";
         }
    }
    //Adición de la clave al final de la cadena
    $contenu_signature .= $key;
    //Codificación base64 de cifrada con el algoritmo HMAC-SHA-256
    $sign = base64_encode(hash_hmac('sha256',$contenu_signature, $key, true));
    return $sign;
 }
Jobs
Legal
GDPR
25.20-1.11