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://paiement.systempay.fr/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 :
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 :
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 :
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 du moyen de paiement enum INTERACTIVE vads_amount Montant du paiement dans sa plus petite unité monétaire (le centime pour l'euro) n..12 Ex : 4525 pour 45,25 EUR vads_ctx_mode Mode de communication avec la plateforme de paiement enum TEST ouPRODUCTION 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 Respectez le format AAAAMMJJHHMMSS
Ex : 20200101130025vads_trans_id Numéro de la transaction. Doit être unique sur une même journée (de 00:00:00 UTC à 23:59:59 UTC).
Attention : ce champ n'est pas sensible à la casse.
an6 Ex : xrT15p vads_version Version du protocole d’échange avec la plateforme de paiement enum V2 - Les champs fortement recommandés :
- Le moyen de paiement à utiliser
Nom du champ Description Format Valeur vads_payment_cards Permet de forcer le type de carte à utiliser. Il est recommandé de proposer sur le site marchand un bouton de paiement différent pour chaque moyen de paiement.
Il est déconseillé de laisser le champ vide.Consultez le chapitre Gérer les moyens de paiement proposés à l'acheteur du Guide d'implémentation - API Formulaire pour plus d'informations.
enum Ex : - CB
- CVCO
- MASTERCARD
- VISA
- Les données de la commande
Nom du champ Description Format Valeur vads_order_id Numéro de commande Peut être composé de majuscules ou de minuscules, chiffres ou tiret ([A-Z] [a-z], 0-9, _, -).
ans..64 Ex : 2-XQ001 vads_order_info Informations supplémentaires sur la commande ans..255 Ex : Code interphone 3125 vads_order_info2 Informations supplémentaires sur la commande ans..255 Ex : Sans ascenseur vads_order_info3 Informations supplémentaires sur la commande ans..255 Ex : Express vads_ext_info_xxxx Information complémentaire nécessaire au marchand qui apparaîtra dans l'e-mail de confirmation de paiement à destination du marchand et dans le Back Office Marchand (onglet Extra du détail de la transaction). xxxx correspond au nom de la donnée transmise.
Par exemple : vads_ext_info_departure_city
ans..255 Ex : LHR - Les données de l'acheteur
Nom du champ Description Format Valeur vads_cust_email Adresse e-mail de l’acheteur ans..150 Ex : abc@example.com vads_cust_id Référence de l’acheteur sur le site marchand an..63 Ex : C2383333540 vads_cust_national_id Identifiant national ans..255 Ex : 940992310285 vads_cust_title Civilité de l’acheteur an..63 Ex : M vads_cust_status Statut enum
PRIVATE : pour un particulier COMPANY : pour une entreprise vads_cust_first_name Prénom ans..63 Ex : Laurent vads_cust_last_name Nom ans..63 Ex : Durant vads_cust_legal_name Raison sociale de l'acheteur ans..100 Ex : D. & Cie vads_cust_phone Numéro de téléphone an..32 Ex : 0467330222 vads_cust_cell_phone Numéro de téléphone mobile an..32 Ex : 06 12 34 56 78 vads_cust_address_number Numéro de voie ans..64 Ex : 109 vads_cust_address Adresse postale ans..255 Ex : Rue de l'innovation vads_cust_address2 Deuxième ligne d'adresse ans..255 Ex : vads_cust_district Quartier ans..127 Ex : Centre ville vads_cust_zip Code postal an..64 Ex : 31670 vads_cust_city Ville an..128 Ex : Labège vads_cust_state Etat / Région ans..127 Ex : Occitanie vads_cust_country Code pays suivant la norme ISO 3166 alpha-2 a2 Ex : "FR" pour la France, "PF" pour la Polynésie Française, "NC" pour la Nouvelle Calédonie, "US" pour les Etats-Unis.
- Le moyen de paiement à utiliser
- Les champs recommandés :
- Les données de 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 (obligatoire pour déclencher une ou plusieurs actions si le profil Contrôle du pays de la livraison est activé). 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 voie 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 données du panier
Nom du champ Description Format Valeur 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...). ans..255 Ex : vads_product_label0 = "tee-shirt"
vads_product_label1 = "Biscuit"
vads_product_label2 = "Sandwich"
vads_product_amountN Prix TTC 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"
Remarque :
En renseignant le champ vads_nb_products, l'onglet Panier dans le détail d'une transaction depuis le Back Office Marchand s'affichera.
Cependant, si les autres champs commençant par vads_product_ ne sont pas renseignés, l'onglet ne comportera pas d'information. Pour cette raison, en valorisant le champ vads_nb_products, il devient obligatoire de valoriser les autres champs commençant par vads_product_.
- Les données de livraison
- 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 visualiser la liste des champs disponibles.
Le bouton Payer qui va permettre l’envoi des données :
<input type="submit" name="payer" value="Payer"/>