• France
lyra.com
Rechercher
Catégories
Tags
France
France
Espagne
Europe (Anglais)
Inde
Implémentation
Formulaire intelligent (smartForm)
Formulaire embarqué (cartes)
API REST
API REST PCI-DSS
API REST SEPA
Formulaire en redirection
Échange de fichiers
Paiement mobile
Exemples de code
Modules de paiement
Marketplace
Back Office
Back Office Marchand
Back Office Expert
Guides
Aide
FAQ
Tutoriels vidéos
Support

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

Head Office :

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

2.17.0-doc-1.8