Envoyer un formulaire de paiement en POST

Le site marchand redirige l’acheteur vers la plateforme de paiement sous la forme d'un formulaire HTML POST en HTTPS.

Ce formulaire contient :

Les éléments techniques suivants :

  • Les balises <form> et </form> qui permettent de créer un formulaire HTML.
  • L’attribut method="POST" qui spécifie la méthode utilisée pour envoyer les données.
  • L’attribut action="https://secure.payzen.eu/vads-payment/" qui spécifie où envoyer les données du formulaire.

Les données du formulaire :

Toutes les données du formulaire doivent être encodées en UTF-8.

Les caractères spéciaux (accents, ponctuation etc.) seront ainsi correctement interprétés par la plateforme de paiement. Dans le cas contraire, le calcul de signature sera erroné et le formulaire sera rejeté.

Nous vous invitons à consulter le tableau suivant pour mieux comprendre la codification des formats.

Notation Description
a Caractères alphabétiques (de ‘A’ à ‘Z’ et de ‘a’ à ‘z’)
n Caractères numériques
s Caractères spéciaux
an Caractères alphanumériques
ans Caractères alphanumériques et spéciaux (à l'exception de "<" et ">")
3 Longueur fixe de 3 caractères
..12 Longueur variable jusqu’à 12 caractères
json JavaScript Object Notation.

Objet contenant des paires de clé/valeur séparées par une virgule.

Il commence par une accolade gauche " { et se termine par une accolade droite " } ".

Chaque paire clé/valeur contient le nom de la clé entre double-quotes suivi par " : ", suivi par une valeur.

Le nom de la clé doit être alphanumérique.

La valeur peut être :
  • une chaine de caractères (dans ce cas elle doit être encadrée par des doubles-quotes)
  • un nombre
  • un objet
  • un tableau
  • un booléen
  • vide
Exemple: {"name1":45,"name2":"value2", "name3"=false}
enum

Caractérise un champ possèdant un nombre fini de valeurs.

La liste des valeurs possibles est donnée dans la définition du champ.

liste d'enum Liste de valeurs séparées par un " ; ".

La liste des valeurs possibles est donnée dans la définition du champ.

Exemple: vads_payment_cards=VISA;MASTERCARD

map Liste de paires clé/valeur séparées par un " ; ".

Chaque paire clé/valeur contient le nom de la clé suivi par " = ", suivi par une valeur.

La valeur peut être :
  • une chaine de caractères
  • un booléen
  • un objet json
  • un objet xml

La liste des valeurs possibles pour chaque paire de clé/valeur est donnée dans la définition du champ.

Exemple: vads_theme_config=SIMPLIFIED_DISPLAY=true;RESPONSIVE_MODEL=Model_1

  • Les champs obligatoires :
    Tableau 1. Liste des champs obligatoires
    Nom du champ Description Format Valeur
    signature Signature garantissant l'intégrité des requêtes échangées entre le site marchand et la plateforme de paiement. ans

    Ex : ycA5Do5tNvsnKdc/eP1bj2xa19z9q3iWPy9/rpesfS0=

    vads_action_mode Mode d’acquisition des données de la carte enum INTERACTIVE
    vads_amount Montant du paiement dans sa plus petite unité monétaire (le centime pour l'euro) n..12 Ex : 3000 pour 30,00 EUR
    vads_ctx_mode Mode de communication avec la plateforme de paiement enum TEST ou PRODUCTION
    vads_currency Code numérique de la monnaie à utiliser pour le paiement, selon la norme ISO 4217 (code numérique) n3 Ex : 978 pour l'euro (EUR)
    vads_page_action Action à réaliser enum PAYMENT
    vads_payment_config Type de paiement enum SINGLE pour un paiement en 1 fois

    MULTI pour un paiement en plusieurs fois

    vads_site_id Identifiant de la boutique n8 Ex : 12345678
    vads_trans_date Date et heure du formulaire de paiement dans le fuseau horaire UTC n14 Ex : 20170701130025
    vads_trans_id Numéro de la transaction n6 Ex : 123456
    vads_version Version du protocole d’échange avec la plateforme de paiement enum V2
  • Les champs recommandés :
    • Les données de la commande
      Tableau 2. Liste des champs - Détails de la commande
      Nom du champ Description Format Valeur
      vads_order_id Numéro de commande ans..64 Ex : 2-XQ001
      vads_order_info Informations supplémentaires sur la commande an..255 Ex : Code interphone 3125
      vads_order_info2 Informations supplémentaires sur la commande an..255 Ex : Sans ascenseur
      vads_order_info3 Informations supplémentaires sur la commande an..255 Ex : Express
      vads_nb_products Nombre d’articles présents dans le panier n..12 Ex : 2
      vads_product_ext_idN Code barre du produit dans le site web du marchand. N correspond à l'indice de l'article (0 pour le premier, 1 pour le second...) an..100 Ex :

      vads_product_ext_id0 = "0123654789123654789"

      vads_product_ext_id1 = "0223654789123654789"

      vads_product_ext_id2 = "0323654789123654789"

      vads_product_labelN Libellé de l’article. N correspond à l'indice de l'article (0 pour le premier, 1 pour le second...) an..255 Ex :

      vads_product_label0 = "tee-shirt"

      vads_product_label1 = "Biscuit"

      vads_product_label2 = "sandwich"

      vads_product_amountN Montant de l’article. N correspond à l'indice de l'article (0 pour le premier, 1 pour le second...) n..12 Ex :

      vads_product_amount0 = "1200"

      vads_product_amount1 = "800"

      vads_product_amount2 = "950"

      vads_product_typeN Type de l’article. N correspond à l'indice de l'article (0 pour le premier, 1 pour le second...)

      enum Ex :

      vads_product_type0 = "CLOTHING_AND_ACCESSORIES"

      vads_product_type1 = "FOOD_AND_GROCERY"

      vads_product_type2 = "FOOD_AND_GROCERY"

      vads_product_refN Référence de l’article. N correspond à l'indice de l'article (0 pour le premier, 1 pour le second...) an..64 Ex :

      vads_product_ref0 = "CAA-25-006"

      vads_product_ref1 = "FAG-B5-112"

      vads_product_ref2 = "FAG-S9-650"

      vads_product_qtyN Quantité d’article. N correspond à l'indice de l'article (0 pour le premier, 1 pour le second...) n..12 Ex :

      vads_product_qty0 = "1"

      vads_product_qty1 = "2"

      vads_product_qty2 = "2"

    • Les données de l'acheteur
      Tableau 3. Liste des champs - Détails de l'acheteur
      Nom du champ Description
      vads_cust_email Adresse e-mail de l’acheteur.
      vads_cust_id Référence de l’acheteur sur le site marchand.
      vads_cust_title Civilité de l’acheteur.
      vads_cust_status Statut (PRIVATE: pour particulier / COMPANY pour une entreprise).
      vads_cust_first_name Prénom.
      vads_cust_last_name Nom.
      vads_cust_legal_name Raison sociale de l'acheteur.
      vads_cust_cell_phone Numéro de téléphone mobile.
      vads_cust_phone Numéro de téléphone.
      vads_cust_address_number Numéro de rue.
      vads_cust_address Adresse postale.
      vads_cust_district Quartier.
      vads_cust_zip Code postal.
      vads_cust_city Ville.
      vads_cust_state Etat / Région.
      vads_cust_country Code pays suivant la norme ISO 3166.
    • Les données de livraison
      Tableau 4. Liste des champs - Détails de la livraison
      Nom du champ Description Format Valeur
      vads_ship_to_city Ville an..128 Ex : Bordeaux
      vads_ship_to_country Code pays suivant la norme ISO 3166 a2 Ex : FR
      vads_ship_to_district Quartier ans..127 Ex : La Bastide
      vads_ship_to_first_name Prénom ans..63 Ex : Albert
      vads_ship_to_last_name Nom ans..63 Ex : Durant
      vads_ship_to_legal_name Raison sociale an..100 Ex : D. & Cie
      vads_ship_to_phone_num Numéro de téléphone ans..32 Ex: 0460030288
      vads_ship_to_state Etat / Région ans..127 Ex : Nouvelle aquitaine
      vads_ship_to_status Définit le type d'adresse de livraison

      enum

      PRIVATE: pour une livraison chez un particulier

      COMPANY: pour une livraison en entreprise

      vads_ship_to_street_number Numéro de rue ans..64 Ex : 2
      vads_ship_to_street Adresse postale ans..255 Ex : Rue Sainte Catherine
      vads_ship_to_street2 Deuxième ligne d’adresse ans..255
      vads_ship_to_zip Code postal an..64 Ex : 33000
  • Les champs facultatifs :

    Vous pouvez utiliser des paramètres facultatifs supplémentaires.

    Référez-vous au chapitre Dictionnaire de données du guide d'implémentation API Formulaire disponible sur notre site documentaire afin de visusaliser la liste des champs disponibles.

Le bouton Payer qui va permettre l’envoi des données :

<input type="submit" name="payer" value="Payer"/>