Calculer la signature
Afin de pouvoir calculer la signature vous devez être en possession :
- de la totalité des champs dont le nom commence par vads_
- du type d'algorithme choisi dans la configuration de la boutique
- de la clé
La valeur de la clé est disponible dans votre Back Office Marchand depuis le menu Paramétrage > Boutique > onglet Clés.
Le type d'algorithme est défini dans votre Back Office Marchand depuis le menu Paramétrage > Boutique > onglet Configuration.
Pour un maximum de sécurité, il est recommandé d'utiliser l'algorithme HMAC-SHA-256 ainsi qu'une clé alphanumérique.
L'utilisation de l'algorithme SHA-1 est dépréciée mais maintenue pour des raisons de compatibilité.
Pour calculer la signature :
- Triez les champs dont le nom commence par vads_ par ordre alphabétique.
- Assurez-vous que tous les champs soient encodés en UTF-8.
- Concaténez les valeurs de ces champs en les séparant avec le caractère "+".
- Concaténez le résultat avec la clé de test ou de production en les séparant avec le caractère "+".
- Selon l'algorithme de signature défini dans la configuration de votre
boutique:
- 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é.
- 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.
- Sauvegardez le résultat de l'étape précédente dans le champ signature.
Exemple de paramètres envoyés à la plateforme de
paiement:
<form method="POST" action="https://paiement.systempay.fr/vads-payment/"> <input type="hidden" name="vads_action_mode" value="INTERACTIVE" /> <input type="hidden" name="vads_amount" value="5124" /> <input type="hidden" name="vads_ctx_mode" value="TEST" /> <input type="hidden" name="vads_currency" value="978" /> <input type="hidden" name="vads_page_action" value="PAYMENT" /> <input type="hidden" name="vads_payment_config" value="SINGLE" /> <input type="hidden" name="vads_site_id" value="12345678" /> <input type="hidden" name="vads_trans_date" value="20170129130025" /> <input type="hidden" name="vads_trans_id" value="123456" /> <input type="hidden" name="vads_version" value="V2" /> <input type="hidden" name="signature" value="ycA5Do5tNvsnKdc/eP1bj2xa19z9q3iWPy9/rpesfS0="/> <input type="submit" name="payer" value="Payer"/> </form>
Cet exemple de formulaire s'analyse de la manière suivante:
- On trie par ordre alphabétique les champs dont le nom commence par vads_ :
- vads_action_mode
- vads_amount
- vads_ctx_mode
- vads_currency
- vads_page_action
- vads_payment_config
- vads_site_id
- vads_trans_date
- vads_trans_id
- vads_version
- On concatène la valeur de ces champs avec le caractère "+" :
INTERACTIVE+5124+TEST+978+PAYMENT+SINGLE+12345678+20170129130025+123456+V2
- On ajoute la valeur de la clé de test à la fin de la chaîne en la séparant par le caractère "+". Dans cet exemple, la clé de test est 1122334455667788
INTERACTIVE+5124+TEST+978+PAYMENT+SINGLE+12345678+20170129130025+123456+V2+1122334455667788
- Si vous utilisez l’algorithme SHA-1, appliquez-le à la
chaîne obtenue.
Le résultat à transmettre dans le champ signature est : 59c96b34c74b9375c332b0b6a32e6deeec87de2b
- 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.
Le résultat à transmettre dans le champ signature est :
ycA5Do5tNvsnKdc/eP1bj2xa19z9q3iWPy9/rpesfS0=