Réussir l`intégration de Payzen Paiement par formulaire

Transcription

Réussir l`intégration de Payzen Paiement par formulaire
Réussir l’intégration de Payzen
Paiement par formulaire
Version 1.4c
Confidentialité
Toutes les informations contenues dans ce document sont considérées comme confidentielles.
L’utilisation de celles-ci en dehors du cadre de cette consultation ou la divulgation à des
personnes extérieures est soumise à l’approbation préalable de Lyra Network.
Payzen –
Réussir l’intégration de Payzen
1/18
Table des matières
1. Principe Général............................................................................................................ 3
2. Etape 1: Envoyer un formulaire de paiement en post ............................................... 4
3. Etape 2: Analyser le formulaire URL serveur en post .................................................. 6
3.1: Notion d’url serveur ........................................................................................................................................ 6
3.1.1: Notification à la fin du paiement ............................................................................................................. 6
3.1.2: Autres cas de notification .......................................................................................................................... 7
3.2: Extrait des paramètres renvoyés ................................................................................................................. 8
3.3: Analyse d’un paiement ................................................................................................................................. 9
3.4: Comment visualiser l’appel à l’URL serveur ............................................................................................. 10
3.5: Non synchronisation des paiements sur le site marchand ................................................................... 10
4. Etape 3: le retour à la boutique (facultatif) ............................................................... 11
5. Phase de test................................................................................................................ 12
5.1: Test de paiement .......................................................................................................................................... 12
5.2: Vérifier le bon fonctionnement de l’url serveur ...................................................................................... 12
5.3: Génération du certificat de production .................................................................................................. 14
6. Passage en production ............................................................................................... 15
7. Annexes........................................................................................................................ 16
7.1: Calcul de la signature ................................................................................................................................. 16
7.2: Certificat de TEST .......................................................................................................................................... 17
7.3: Certificat de Production.............................................................................................................................. 17
7.4: Personnalisation de la page de paiement. ............................................................................................ 17
8. ASSISTANCE TECHNIQUE.............................................................................................. 18
Payzen –
Réussir l’intégration de Payzen
2/18
1. PRINCIPE GENERAL
BOUTIQUE
Etape 1: Formulaire de paiement (https)
PAYZEN
Etape 2: Appel Url serveur
Etape 3: Retour à la boutique
L’implémentation technique se résume à 3 étapes :
Etape 1: Envoyer un formulaire de paiement en post.
Etape 2: Analyser le formulaire URL serveur en post (dialogue peer to peer)
Etape 3: le retour à la boutique (facultatif).
Comprendre et lire ces 3 étapes est essentiel pour implémenter le paiement.
Payzen –
Réussir l’intégration de Payzen
3/18
2. ETAPE 1: ENVOYER UN FORMULAIRE DE PAIEMENT EN POST
L’appel à la plateforme de paiement est réalisé via l’envoi d’un formulaire posté en https.
Ce formulaire contient au minimum les paramètres obligatoires listés ci-dessous ainsi qu’une
variable signature unique par formulaire attestant de son authenticité.
L’URL de la page de paiement est : https://secure.payzen.eu/vads-payment/
Paramètres obligatoires (minimum)
vads_amount
Montant de la transaction dans la plus petite unité de la devise (centime
pour €)
vads_currency
Devise : 978 pour euro
vads_site_id
Identifiant boutique à récupérer dans le back office
vads_trans_id
Identifiant transaction : unique au moins sur une même journée – nombre à
6 chiffres
vads_trans_date
Date de la transaction : fuseau horaire UTC (ex 20110710201030 )
vads_version
Valorisé à V2
vads_payment_config
Type de paiement valorisé à SINGLE pour un paiement en 1 fois
vads_page_action
Pour un paiement simple ce champ à valorisé à PAYMENT
vads_action_mode
INTERACTIVE : correspond au cas où l’acquisition des données
carte est déléguée à la plateforme.
vads_ctx_mode
Mode de fonctionnement TEST ou PRODUCTION
signature
Signature unique pour chaque paiement
Vous pouvez utiliser des paramètres facultatifs supplémentaires comme par exemple :
Paramètres facultatifs
vads_order_id
Numéro de commande sur 32 caractères alphanumériques
vads_cust_email
Adresse e-mail de l’acheteur
Grâce aux différents champs facultatifs disponibles, vous pourrez notamment :

Paramétrer le retour automatique du client vers le site marchand,

Décrire le contenu du panier et de la commande

Envoyer des informations sur le client et sur la livraison,

Personnaliser les pages de paiement…
Pour plus d’informations sur les différents paramètres disponibles lors de l’envoi du formulaire vous
pouvez vous référer à la documentation disponible sur : http://www.payzen.eu/support.php
Payzen –
Réussir l’intégration de Payzen
4/18
Signature : Pour calculer la signature il est nécessaire de récupérer le certificat de test ou de
production dans l’outil de gestion de caisse. (ONGLET PARAMETRAGE /BOUTIQUES/[NOM DE LA
BOUTIQUE]/CONFIGURATION)
Pour plus d’information sur le calcul de la signature se reporter au chapitre annexe ou à la
documentation sur http://www.payzen.eu/support.php
Remarque : Utilisation des balises html <iframe> et <frame>
Une iframe (inline frame) est utilisée pour afficher une page web dans une autre page web.
L’utilisation des iframes pour afficher la page de paiement
est interdite pour des raisons de sécurité
Exemples de codes interdits :
<FRAMESET>
<FRAME SRC="https://secure.payzen.eu/vads-payment/">
</FRAMESET>
<iframe src="https:// secure.payzen.eu/vads-payment/"></iframe>
Payzen –
Réussir l’intégration de Payzen
5/18
3. ETAPE 2: ANALYSER LE FORMULAIRE URL SERVEUR EN POST
3.1: Notion d’url serveur
La plateforme de paiement transmet automatiquement le résultat du paiement au moyen de
notifications (IPN : Instant Payment Notification).
Ces notifications sont transmises à une page de votre site qui analyse le résultat du paiement.
Cette page est appelée URL serveur.
Lors de la notification à votre URL serveur, les données sont envoyées via une requête POST, quel que
soit le protocole choisi http ou https.
L’URL serveur est le seul mécanisme à implémenter
pour synchroniser automatiquement le site de
paiement et votre site marchand.
3.1.1: Notification à la fin du paiement
Pour que la plateforme de paiement notifie systématiquement votre site marchand en cas de
paiement accepté ou refusé, vous devez paramétrer les règles de notifications.
Depuis votre back office Payzen :
1. Allez dans le menu : Paramétrage / Règles de notifications / Nom de la boutique
2. Effectuez un clic droit sur la ligne URL serveur à la fin du paiement
3. Sélectionnez Gérer la règle
4. Renseignez l’URL de votre page dans les champs URL à appeler en mode TEST et URL à
appeler en mode PRODUCTION
Payzen –
Réussir l’intégration de Payzen
6/18
5. Renseignez l’Adresses(s) mail(s) à avertir en cas d’échec
Les e-mails en cas d’échec de l’appel à l’URL serveur sont envoyés sur cette adresse.
6. Pour spécifier plusieurs adresses séparez-les par un point-virgule
7. Configurez le Rejeu automatique en cas d’échec
Cette option permet de renvoyer automatiquement la notification vers le site marchand en
cas d'échec. Après 4 tentatives infructueuses, un e-mail d'alerte est envoyé à l'adresse saisie
au paramètre précédent.
Les tentatives d'appel sont programmées à heures fixes toutes les 15 minutes (00, 15, 30, 45).
8. Sauvegardez vos modifications.
3.1.2: Autres cas de notification
En fonction des options commerciales souscrites, la plateforme de paiement pourra effectuer un
appel vers l’url serveur dans les cas suivants :

Remboursement effectué depuis le back office

Annulation d’une transaction depuis le back office

Validation d’une transaction depuis le back office

Modification d’une transaction depuis le back office

Abandon d’une transaction depuis le back office
Payzen –
Réussir l’intégration de Payzen
7/18
3.2: Extrait des paramètres renvoyés
Paramètres minimum
vads_result
Code retour général. Si égal à « 00 » le paiement est accepté, sinon le
paiement est refusé.
Ce paramètre permet de définir le statut de la transaction. Exemples de
valeurs :
REFUSED => le paiement a été refusé.
AUTHORISED => le paiement a été accepté pour le montant total de la
transaction et est en attente de remise en banque.
AUTHORISED_TO_VALIDATE => le paiement a été accepté mais est en
attente de validation manuelle de la part du marchand. Sans cette
validation, la transaction basculera dans le statut Expiré une fois le délai de
capture dépassé.
vads_trans_status
WAITING_AUTHORISATION => le paiement est en attente d’autorisation. Une
prise d’empreinte a été réalisée pour valider les données de la carte
bancaire car le délai de remise en banque est strictement supérieur à 7
jours. La demande d’autorisation pour le montant total sera réalisée
ultérieurement, avec un risque que le paiement soit refusé.
vads_auth_result
vads_auth_mode
vads_trans_id
signature
WAITING_AUTHORISATION_TO_VALIDATE => le paiement est en attente
d’autorisation et de validation manuelle. Une prise d’empreinte a été
réalisée pour valider les données de la carte bancaire car le délai de
remise en banque est strictement supérieur à 7 jours.
Sans validation de part du marchand, la transaction basculera dans le
statut Expiré une fois le délai de capture dépassé.
Code retour de la demande d'autorisation retournée par la banque
émettrice, si disponible (vide sinon). Exemples de valeur
 00 paiement accepté
 14 carte invalide
 05 ne pas honorer
Si contient FULL => Paiement accepté pour le montant total de la
transaction.
Si contient MARK => Paiement enregistré mais non encore autorisé (il s'agit
seulement d'une empreinte qui permet de valider les données cartes mais
pas la capacité de paiement de l’acheteur). L'autorisation pour le montant
total sera réalisée ultérieurement avec un risque de paiement refusé. (Se
reporter à la documentation pour plus d'information). MARK concerne les
paiements avec une date de remise en banque au-delà de la durée de
validité de l’autorisation (7 jours pour la France).
Si votre délai de remise en banque est inférieur à 7 jours pour
CB/Visa/Mastercard en France, FULL est la seule valeur possible.
Valorisé à l’identique à la valeur reçue dans le formulaire de paiement
Signature renvoyée et calculée par la plateforme de paiement
Pour plus d’information sur les paramètres renvoyés dans l’url serveur se reporter à la
documentation disponible sur http://www.payzen.eu/support.php
Payzen –
Réussir l’intégration de Payzen
8/18
3.3: Analyse d’un paiement
L’analyse du paiement s’effectue en fonction des paramètres envoyés en mode POST dans
votre URL serveur.
Dans cette requête est présente une signature qui permet de vérifier l’authenticité de la source
[vous pouvez vérifier que cette requête est bien été générée par Payzen et non par un tiers].
Une fois l’authenticité vérifiée, vous pourrez analyser les paramètres liés au paiement et traiter
la commande si le paiement est accepté.
Exemple d’algorithme d’analyse des paramètres :
Contrôle de la
signature reçue
Signature OK
NON
Ne pas tenir compte
de cette réponse ou
vérifier que le calcul
de signature est
correct.
OUI
Contrôle du type
de la transaction
vads_operation_type
CREDIT
DEBIT
La transaction est un débit ayant comme caractéristique :

Statut : vads_trans_status
La transaction est un
remboursement ayant comme
caractéristique :

Résultat : vads_result

Statut : vads_trans_status

Identifiant : vads_trans_id

Montant : vads_amount

Montant : vads_amount

Identifiant : vads_trans_id

Montant Effectif : vads_effective_amount

Type de paiement : vads_payment_config

Numéro de séquence : vads_sequence_number

Résultat d’autorisation : vads_auth_result

Garantie de paiement : vads_warranty_result

Statut 3DS : vads_threeds_status
Payzen –
Réussir l’intégration de Payzen
9/18
3.4: Comment visualiser l’appel à l’URL serveur
Chaque appel à l’URL serveur est enregistré par la plateforme de paiement. Pour vérifier l’appel à
l’URL serveur, depuis le back-office, faites un double clic sur le paiement, puis allez dans l’onglet
Historique.
La colonne Info contient le statut de l’appel à l’URL serveur.
Dans l’encadré rouge nous affichons les 80 premiers caractères envoyés par votre script.
Ceci a pour but de vous aider à débuguer votre script en cas de problème.
3.5: Non synchronisation des paiements sur le site marchand
Erreurs fréquentes :





URL serveur non renseignée dans le back office « outil de gestion de caisse »,
URL serveur qui pointe sur la page d’accueil du site marchand et qui n’exécute aucun
traitement,
URL serveur qui ne peut être appelée car bloquée par un fichier .htaccess
URL serveur bloquée par votre firewall,
Module Paypal pour Prestashop incompatible avec les autres moyens de paiement,

Redirection à l’arrivée qui entraine la perte des valeurs postées. L’url serveur contient toujours
les paramètres postés. Ne pas les trouver est toujours une erreur d’implémentation du côté du
site marchand,

Les paramètres postés dans l’URL serveur peuvent évoluer par ajout de nouveaux champs. Ne
jamais calculer la signature en se basant sur une liste fixe et prédéfinie correspondant à votre
comportement au moment de votre implémentation.
Payzen –
Réussir l’intégration de Payzen
10/18
4. ETAPE 3: LE RETOUR A LA BOUTIQUE (FACULTATIF)
Le retour à la boutique permet à l’internaute de revenir à la boutique après un clic sur le bouton
"retour boutique » présent sur la page de paiement.
Dans le formulaire de paiement il est possible de renseigner plusieurs URL de retour :

url en cas de succès,

url en cas d’annulation,

url en cas de refus, etc
(Se référer à la documentation pour connaître tous les cas possibles)
Il est conseillé dans le cas du retour à la boutique d’analyser le contenu des paramètres en
fonction du contexte de retour que vous voulez afficher à votre client:
Par exemple :

retour à l’accueil de votre site

retour sur un refus où vous pouvez proposer un moyen de paiement alternatif

retour sur un message de remerciement ou de synthèse de commande si paiement
accepté.
Il est aussi possible de paramétrer un retour automatique à la boutique en ajoutant un paramètre
dans le formulaire lors de l’appel à la page de paiement (Utilisé par les marchands qui font du
GOOGLE ANALYTICS).
La documentation est disponible sur http://www.payzen.eu/support.php
Par défaut nous ne renvoyons aucun paramètre dans l’URL retour à la boutique, mais vous pouvez
définir dans le formulaire de paiement comment recevoir les paramètres via le champ
vads_return_mode (valorisé lors de la construction de votre formulaire de paiement. c.f Etape 1).
Valeur de vads_return_mode
GET
POST
NONE
les paramètres sont renvoyés en mode GET.
les paramètres sont renvoyés en mode POST (non recommandé).
aucun paramètre n’est envoyé.
Payzen –
Réussir l’intégration de Payzen
11/18
5. PHASE DE TEST
5.1: Test de paiement
Lorsque le formulaire de paiement posté est correct une liste de cartes de test correspondant à
des scénarii différents vous sera proposée. Il suffit de cliquer sur un numéro de carte de test pour
remplir le champ de saisie pour remplir les champs de la page de paiement et ensuite cliquer sur
"Valider".
5.2: Vérifier le bon fonctionnement de l’url serveur
Pour valider le fonctionnement de l’URL serveur, suivez les étapes ci-dessous:

Vérifiez que votre url soit accessible depuis l’extérieur : La boutique ne doit pas être
protégée par un fichier .htaccess

Assurez-vous que vous n’utilisez pas de variables permettant de rediriger l’internaute
automatiquement sur votre boutique à la fin du paiement.

Vérifiez que l’URL serveur à la fin du paiement soit bien renseignée dans le back office
PayZen.

Réalisez une commande sur votre site et procédez au paiement,

A la fin du paiement ne cliquez pas sur le bouton “retour à la boutique”,

Vérifiez que votre script à bien été exécuté.
Vous avez la possibilité de voir le détail de l’appel à l’URL serveur dans votre Back Office PayZen :
Payzen –
Réussir l’intégration de Payzen
12/18
Envoyé signifie que votre serveur a bien répondu. Dans le cas contraire, un message sera affiché
en rouge avec le détail de l’erreur.
Vous pouvez également avoir un aperçu de l’appel en cliquant sur l’onglet Historique
Payzen –
Réussir l’intégration de Payzen
13/18
5.3: Génération du certificat de production
Il est conditionné par la réalisation des tests qui sont demandés dans l’outil de gestion de caisse
(onglet Paramétrage/Boutique / [Nom de votre boutique]/ Certificats) :
Pour valider chaque test, vous devrez effectuer un achat sur votre boutique, en utilisant au moins
un numéro de chaque ligne.
Chaque colonne correspond à un type de carte différent (CB/VISA, MASTERCARD, MAESTRO, VISAELECTRON).
Une fois tous les tests validés, vous pourrez cliquer sur le bouton Générer le certificat de production.
Payzen –
Réussir l’intégration de Payzen
14/18
6. PASSAGE EN PRODUCTION
Pour paramétrer votre boutique en mode production vous devez effectuer les 5 étapes suivantes :
1. La phase de test terminée vous pouvez demander auprès des services Payzen la
génération du certificat de production ou le générer vous-même suivant la délégation
donnée à la création de la boutique.
2. Modifier la variable précisant le mode de fonctionnement (vads_ctx_mode). Cette variable
devra être valorisée à "PRODUCTION" en majuscule, sans abréviation en lieu et place de la
valeur "TEST".
3. Affecter à la variable dans laquelle vous stocker votre certificat, la valeur du certificat de
Production.
4. Renseigner l’url serveur en mode production dans le back office Payzen.
5. Il est fortement conseillé de faire un paiement réel, de vérifier votre crédit en compte et de
vérifier le bon fonctionnement de l’url serveur.
Remarque :
Le mode TEST reste disponible même après avoir généré la clef de production. Il suffit de poster des
formulaires de paiement utilisant le mode TEST et le certificat de TEST.
Payzen –
Réussir l’intégration de Payzen
15/18
7. ANNEXES
7.1: Calcul de la signature

La signature sera constituée de l’intégralité des champs dont le nom commence par la
chaîne « vads_ ».

Les champs doivent être triés par ordre alphabétique.
 Les valeurs de ces champs doivent être concaténées entre elles avec le caractère « + ».

Au résultat de cette concaténation, on concatènera la valeur du certificat employé
(certificat de test ou de production).

Appliquer l’algorithme SHA1 pour obtenir la valeur de la signature
Erreur fréquente :
Le caractère + n’est pas présent entre les champs.
Dans le calcul de la signature, l’ordre alphabétique des paramètres doit être respecté.
La signature à transmettre n’est pas égale à cette chaine, mais au hachage de cette chaine à
l’aide de l’algorithme SHA-1.
Exemple :
Paramètres de la requête envoyée à la plateforme de paiement:
- vads_version = V2
- vads_page_action = PAYMENT
- vads_action_mode = INTERACTIVE
- vads_payment_config = SINGLE
- vads_site_id = 12345678
- vads_ctx_mode = TEST
- vads_trans_id = 654321
- vads_trans_date = 20090501193530
- vads_amount = 1524
- vads_currency = 978
Valeur du certificat en fonction du mode =1122334455667788
L’ordre alphabétique des paramètres est le suivant :
1.
2.
3.
4.
vads_action_mode
vads_amount
vads_ctx_mode
vads_currency
Payzen –
Réussir l’intégration de Payzen
16/18
5.
6.
7.
8.
9.
10.
vads_page_action
vads_payment_config
vads_site_id
vads_trans_date
vads_trans_id
vads_version
Il faudra rajouter à ces paramètres la valeur du certificat 1122334455667788
La chaîne à utiliser pour le hachage à l’aide de l’algorithme SHA-1 sera donc la suivante :
INTERACTIVE+1524+TEST+978+PAYMENT+SINGLE+12345678+20090501193530+654321+V2+1122334455
667788
La signature à envoyer dans le champ nommé signature est:
606b369759fac4f0864144c803c73676cbe470ff
7.2: Certificat de TEST
Le certificat de test est une chaîne qui vous servira à calculer une signature unique pour chaque
paiement. Le certificat de test est disponible dans le back office Payzen (onglet paramétrage
/boutique /[Nom de la boutique]/certificat).
7.3: Certificat de Production
Le certificat de production est une chaîne qui vous servira à calculer une signature unique pour
chaque paiement de production. Le certificat de production est disponible dans le back office
Payzen (onglet paramétrage /boutique /[Nom de la boutique]/certificat). Celui-ci ne sera plus
visible dès lors que vous aurez finalisé un paiement réel via le formulaire pour des raisons de
sécurité.
7.4: Personnalisation de la page de paiement.
Vous pouvez charger depuis le back office votre logo qui apparaîtra alors sur la page de
paiement.
Si vous souhaitez des paramètres plus avancés vous devez souscrire à l’option Personnalisation
avancée.
Cette option vous permet depuis le back office de modifier les CSS originales (mobile et écran
classique), ou encore d’ajouter plusieurs CSS. Vous pourrez à tout moment avant de valider la CSS
pré-visualiser le rendu visuel.
Payzen –
Réussir l’intégration de Payzen
17/18
8. ASSISTANCE TECHNIQUE
Pour tout problème d’accès au back office Payzen, il convient d’utiliser les liens « compte bloqué »
ou « mot de passe oublié » disponible sur la page de connexion du back office Payzen.
Pour toute question technique, vous pouvez nous contacter par téléphone au
Accessible les jours ouvrés du lundi au vendredi de 09h00 à 18h00 (heure légale française).
Tarification de ce numéro: Coût d’un appel local depuis un poste fixe
Payzen –
Réussir l’intégration de Payzen
18/18