Signature callback serveur

Prérequis

Avoir sollicité l’équipe S-money pour l’activation de cette fonctionnalité. Une fois confirmé, un nouveau paramètre « CallbackSignature » sera ajouté aux contenus des callbacks.

Gestion des callbacks

2.1 Méthode de construction de la signature

CallbackSignature est une chaîne calculée et cryptée qui permet au client de vérifier la validité de l’appel.

Elle est construite comme suit :
-  Extraction de tous les paramètres du callback (hors CallbackSignature)
-  Classement par ordre alphabétique (ascendant) et par clé
-  Extraction de leurs valeurs vers une liste
-  Ajout de la chaîne secrète du client à cette liste (en preproduction par la valeur « 0 »)
-  Concaténation de ces valeurs en une chaîne unique via le symbole « + »
-  Vérification que la chaîne est au format UTF-8
-  Hashage de la chaîne via l’algorithme « SHA-1 »
-  Attribution du résultat au paramètre « CallbackSignature ».

2.2 Méthode de vérification de validité des callbacks

Pour vérifier qu’une requête est valide, il faut d’abord générer une signature selon la méthode construction et effectuer une comparaison de la valeur de la signature généré et la valeur de la signature reçue dans le callback.
Si les deux signatures sont similaires, alors la requête est valide. Sinon, la requête a été corrompue.

2.3 EXEMPLE DE CALCUL DE SIGNATURE

Exemple 1 : Callback valide

orderId=123456amount=1020&CallbackSignature=814de6e4d24008b1764fe093026b5127cddbf6c2

Chaine concaténée (avec chaine secrète = 0) : 1020+123456+0

CallbackSignature calculé : 814de6e4d24008b1764fe093026b5127cddbf6c2

Exemple 2 : Callback corrompu

orderId=123456&amount=1020&CallbackSignature=c7ce2c2adb001127d2c2a12612184669f340dfd7

Chaine concaténée (avec chaine secrète = 0) : 1020+123456+0

CallbackSignature calculé : 814de6e4d24008b1764fe093026b5127cddbf6c2