• France
état des services
démonstrations
assistance
FAQContacter le support
Video tutorials
Rechercher
Catégories
Tags
France
France
Espagne
Europe (Anglais)
Inde
Accueil
Cas d'usage
Créer un paiement
Créer un paiement en plusieurs fois
Proposer un paiement complémentaire
Créer un paiement par alias (token)
Créer un lien de paiement
Créer un abonnement
Gérer vos abonnements
Gérer vos transactions (rembourser,...)
Analyser vos journaux
Docs API
Formulaire embarqué
API REST
Formulaire en redirection
SDK Mobile
Échange de fichiers
Mandats SEPA par API REST
Exemples de code
Moyens de paiement
Modules de paiement
Marketplace
Guides
Back Office Marchand
Back Office Expert
Guides fonctionnels

Calculer la signature de l'IPN

La signature se calcule selon la même logique utilisée lors de la demande de paiement.

Les données transmises par la plateforme de paiement sont encodées en UTF-8. Toute altération des données reçues aboutira à un calcul de signature erroné.

Vous devez calculer la signature avec les champs reçus dans la notification et pas ceux que vous avez transmis dans la demande de paiement.

  1. Prenez en considération la totalité des champs dont le nom commence par vads_.
  2. Triez ces champs par ordre alphabétique.
  3. Concaténez les valeurs de ces champs en les séparant avec le caractère "+".
  4. Concaténez le résultat avec la clé de test ou de production en les séparant avec le caractère "+".
  5. Selon l'algorithme de signature défini dans la configuration de votre boutique:
    1. si votre boutique est configurée pour utiliser "SHA-1", appliquez la fonction de hachage SHA-1 sur la chaîne obtenue à l'étape précédente. Déprécié.
    2. si votre boutique est configurée pour utiliser "HMAC-SHA-256", calculez et encodez au format Base64 la signature du message en utilisant l'algorithme HMAC-SHA-256 avec les paramètres suivants:
      • la fonction de hachage SHA-256,
      • la clé de test ou de production (en fonction de la valeur du champ vads_ctx_mode) comme clé partagée,
      • le résultat de l'étape précédente comme message à authentifier.
Exemples en PHP
function getSignature ($params,$key)
{
    /**
     * Fonction qui calcule la signature.
     * $params : tableau contenant les champs reçus dans l'IPN.
     * $key : clé de TEST ou de PRODUCTION
     */
    //Initialisation de la variable qui contiendra la chaine à chiffrer
    $contenu_signature = "";
    //Tri des champs par ordre alphabétique
    ksort($params);
    foreach($params as $nom=>$valeur){
        //Récupération des champs vads_
        if (substr($nom,0,5)=='vads_'){
            //Concaténation avec le séparateur "+"
            $contenu_signature .= $valeur."+";
         }
    }
    //Ajout de la clé en fin de chaine
    $contenu_signature .= $key;
    //Encodage base64 de la chaine chiffrée avec l'algorithme HMAC-SHA-256
    $sign = base64_encode(hash_hmac('sha256',$contenu_signature, $key, true));
    return $sign;
 }
Nous recrutons
Mentions légales
Charte de Protection des Données Personnelles
25.18-1.11