• Francia
Back Office Vendedor
asistencia
FAQcontacte el soporte tecnico
Buscar
Categoria
Tags
Perú
Perú
Página principal
Casos de uso
Crear un pago
Crear un pago en cuotas
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
API REST PCI-DSS
Formulario en redirección
Pago móvil
Intercambio de ficheros
Ejemplo de código
Módulos de pago
Guías
Back Office Vendedor
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. Calcule y codifique en formato Base64 la firma 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;
 }
© 2025 Todos los derechos reservados de Izipay
25.17-1.11