Causes de l'erreur de calcul de signature

Les différents champs du formulaire n'ont pas été encodés en UTF-8.

Lors du calcul de la signature, si les champs ne sont pas envoyés à la plateforme en UTF-8, alors dans le formulaire vous observerez des caractères spéciaux notamment au niveau des accents.

Exemple d'erreur :

[vads_capture_delay=]
[vads_site_id=51872022]
[vads_payment_config=SINGLE]
[vads_version=V2]
[vads_currency=978]
[vads_amount=1000]
[vads_cust_name=Ren�e Martin]
[vads_ctx_mode=PRODUCTION]
[vads_trans_date=20181026083000]
[vads_trans_id=982415]
[vads_payment_cards=]
[signature=ycA5Do5tNvsnKdc/eP1bj2xa19z9q3iWPy9/rpesfS0=]	
									

Dans cet exemple vous pouvez observer que les accents sont mal encodés pour le champ vads_cust_name.

Veillez à gérer correctement l'encodage UTF-8 pour éviter des erreurs de signature.

Attention

Nous rappelons que les champs renvoyés par la plateforme sont encodés en UTF-8. Il est donc inutile de refaire un encodage UTF-8 des données que nous retournons.

Le MODE (TEST ou PRODUCTION) ou la clé utilisée est incorrecte.

Vous pouvez utiliser la plateforme en mode TEST ou PRODUCTION.

A chaque mode correspond une clé. Assurez-vous que vous utilisez la bonne clé en fonction du mode souhaité.

Vérifiez votre clé dans le menu Paramétrage > Boutique > onglet Clés de votre Back Office Expert.

Attention : Retour à la ligne et/ou retour chariot postés dans le formulaire.

Si vous insérez un retour chariot et/ou un retour à la ligne dans l'une des valeurs postées, ils ne seront pas pris en compte.

Exemple d'erreur :

Si vous postez dans le champ adresse :

3 rue des bleuets

bat 10 apt 58

La valeur prise en compte par la plateforme de paiement sera seulement :

3 rue des bleuets

La plateforme de paiement prendra donc la valeur 3 rue des bleuets pour calculer la signature alors que votre calcul de signature sera basé sur l'adresse complète 3 rue des bleuets bat 10 apt 58.

Vous aurez alors une erreur de signature.

CONCLUSION : Avant le calcul de la signature et l'envoi du formulaire de paiement, vous devez échapper les retours chariot et les retours à la ligne.

Attention : Caractère guillemets ["] posté dans le formulaire.

Si vous insérez des guillemets dans l'une des valeurs postées ils ne seront pas pris en compte.

Exemple :

Si vous postez dans le champ adresse :

Résidence "Les Bleuets"

La valeur prise en compte par la plateforme de paiement sera seulement :

Résidence

La plateforme de paiement prendra donc la valeur Résidence pour calculer la signature alors que votre calcul de signature sera basé sur l'adresse complète Résidence "Les Bleuets".

Vous aurez alors une erreur de signature.

CONCLUSION : Avant le calcul de la signature et l'envoi du formulaire de paiement vous devez échapper les guillemets.

La signature envoyée n’est pas conforme à la règle de calcul de signature. Lors du calcul de la signature, les champs doivent être encodés en UTF-8. De même votre boutique doit envoyer à la plateforme de paiement l'ensemble des paramètres en UTF-8.

Vérifiez que vous n'avez ni oublié un paramètre, ni ajouté un paramètre non requis.

Assurez-vous que le tri a été effectué correctement.

Rappel de la méthode de calcul

  1. Triez par ordre alphabétique les champs dont le nom commence par vads_.
  2. Concatènez la valeur de ces champs avec le caractère "+".
  3. Ajoutez la valeur de la clé à la fin de la chaîne en la séparant par le caractère "+".
  4. 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.

Pour plus d'informations, veuillez consulter le chapitre Calculer la signature du Guide d'implémentation de l'API formulaire.

Si vous faites appel à une agence WEB pour l'administration de votre boutique veuillez prendre contact avec celle-ci en lui communiquant l'e-mail d'alerte reçu.