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é (certificat)

La valeur de la clé est disponible dans votre Back Office depuis le menu Paramétrage > Boutique > onglet Certificats.

Le type d'algorithme est défini dans votre Back Office 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.

Pour calculer la signature :

  1. Triez les champs dont le nom commence par vads_ par ordre alphabétique.
  2. Assurez-vous que tous les champs soient encodés en UTF-8.
  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.
    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.
  6. 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://secure.payzen.eu/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:

  1. 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
  2. On concatène la valeur de ces champs avec le caractère "+" :
    INTERACTIVE+5124+TEST+978+PAYMENT+SINGLE+12345678+20170129130025+123456+V2
  3. 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
  4. Si vous utilisez l’algorithme SHA-1, appliquez le à la chaîne obtenue.

    Le résultat à transmettre dans le champ signature est : 59c96b34c74b9375c332b0b6a32e6deeec87de2b

  5. 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=