Arborescence des pages

Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.

...

 

Sommaire
maxLevel2
stylenone

...

Ce document décrit la procédure d’intégration de la solution de paiement sécurisé en ligne Payline en mode API AJAX DIRECT dans votre site commerçant.

...

Ce document est destiné aux commerçants et intégrateurs qui souhaitent utiliser le mode d’intégration « API AJAX » DIRECT » la solution de paiement Payline.

...

Principe général

Présentation

L’interface AJAX présentée est une extension du mode direct. Le commerçant récupère les données carte sur  sur la page récapitulative de commande hébergée sur ses serveurs. Ce mode permet l’exécution de la demande d’autorisation en mode synchrone ou asynchrone (via stockage temporaire du CVV), l’usage des fonctionnalités de portefeuille et permet de se libérer des obligations . Le commerçant devra se mettre en conformité PCI-DSS.

L’interface AJAX

Deux modes d’intégration seront proposés :

...

Prérequis et précautions

Périmètre applicable

 

Sécurité

La collecte des données de paiement par le site marchand implique un risque plus élevé pour le commerçant. Ce mode d’intégration nécessite donc une application rigoureuse des standards de sécurité.

En outre, deux éléments importants sont à mettre en œuvre par le marchand :

  1. la page de collecte des données de paiement ne doit stocker (fichiers logs, …) à aucun moment les informations « numéro de carte » et « CVV » saisies par l’acheteur. Ces données seront transmis à Payline au travers des apples webservices ;
  2. le numéro de commande fourni lors de l’appel à la fonction getToken doit être bien retrouvé à l’identique lors de l’analyse de la réponse. Ce contrôle garantit que les données n’ont pas été détournées dans le but de procéder à un autre paiement que celui prévu initialement.

Prérequis techniques

Pour les serveurs PHP les exemples de code fonctionnent :

  • Avec la bibliothèque gzdecode.php. qui est optionnelle jusqu’à la version 5.4.0 (disponible en standard pour les versions supérieures) ;
  • Avec les modules mcrypt et php_soap, qui sont à activer.

Pour les serveurs J2E, afin de pouvoir accéder aux fonctions de chiffrement avec des clés supérieures à 128 bits, il faut installer le package Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy (http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html).

Description fonctionnelle

Cinématique d’un paiement simple

Voici les étapes principales d’un paiement avec cette nouvelle interface :

  1. L’acheteur valide son panier, le navigateur envoie une requête http sur le serveur commerçant ;
  2. Le serveur commerçant :
    1. génère une référence unique de commande ;
    2. chiffre avec sa clé d’accès la chaine composée de la référence commande et du numéro de contrat ;
    3. construit et renvoie le formulaire au navigateur ;
  3. L’acheteur saisit et valide ses données (paiement, adresse de facturation, etc…) ;
  4. Le serveur commerçant :

...

  • Le commerçant redirige brièvement l’acheteur sur Payline pour la tokenisation. Après traitement, Payline redirige de nouveau l’acheteur sur le site du commerçant ;
  • Payline n’affiche aucune page Web, la redirection est donc transparente pour l’acheteur ;
  • Ce mode d’intégration est compatible avec tous les navigateurs actuels.

Prérequis et précautions

Périmètre applicable

Le mode d’intégration avec l’API AJAX sur la solution de paiement Payline n’est pas adapté pour traiter les moyens de paiements avec redirection (Paypal, PaysafeCard, …) ou non soumis aux règles de PCI-DSS (vouchers prépayés, comptes eWallet, …).

Actuellement les moyens de paiement pris en charge par l’API AJAX sont :

  • Les cartes CB / Visa / Mastercard ;
  • Les cartes American Express.

Pour tous les autres moyens de paiement, le marchand peut utiliser l’API directe.

Sécurité

La collecte des données de paiement par le site marchand implique un risque plus élevé pour le commerçant. Ce mode d’intégration nécessite donc une application rigoureuse des standards de sécurité.

En outre, deux éléments importants sont à mettre en œuvre par le marchand :

  1. la page de collecte des données de paiement ne doit stocker (fichiers logs, …) à aucun moment les informations « numéro de carte » et « CVV » saisies par l’acheteur. Ces données ne doivent être transmises qu’à Payline au travers d’un des deux modes préconisés (AJAX cross-domaine ou http POST) ;
  2. le numéro de commande fourni lors de l’appel à la fonction getToken doit être bien retrouvé à l’identique lors de l’analyse de la réponse. Ce contrôle garantit que les données n’ont pas été détournées dans le but de procéder à un autre paiement que celui prévu initialement.

Le point 1 est particulièrement important : le marchand doit vérifier régulièrement si le script d’appel à la fonction getToken a été modifié. Si tel est le cas, il doit s’assurer que les préconisations restent valides.

Prérequis techniques

Pour les serveurs PHP les exemples de code fonctionnent :

  • Avec la bibliothèque gzdecode.php. qui est optionnelle jusqu’à la version 5.4.0 (disponible en standard pour les versions supérieures) ;
  • Avec les modules mcrypt et php_soap, qui sont à activer.

Pour les serveurs J2E, afin de pouvoir accéder aux fonctions de chiffrement avec des clés supérieures à 128 bits, il faut installer le package Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy (http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html).

Description fonctionnelle

Cinématique d’un paiement simple

Voici les étapes principales d’un paiement avec cette nouvelle interface :

  1. L’acheteur valide son panier, le navigateur envoie une requête http sur le serveur commerçant ;
  2. Le serveur commerçant :
    1. génère une référence unique de commande ;
    2. chiffre avec sa clé d’accès la chaine composée de la référence commande et du numéro de contrat ;
    3. construit et renvoie le formulaire au navigateur ;
  3. L’acheteur saisit et valide ses données (paiement, adresse de facturation, etc…) ;
  4. Le navigateur réalise un appel à la servlet Payline « getToken » ;
  5. La servlet Payline traite la requête :
    1. déchiffre les données à partir de la clé commerçant ;
    2. affecte un CVV virtuel à la transaction (valable pour une seule commande) ;
    3. tokenize le numéro de carte ;
    4. chiffre, à partir de la clé du commerçant, le token, la date d’expiration et le CVV virtuel (+ autres infos sur la carte) ;
    5. retourne les données au navigateur avec éventuellement une redirection http vers la « returnURL » (http 302 en mode synchrone) ;
  6. Le navigateur réalise un appel au site du commerçant pour passer les données du formulaire (sans les données bancaires) avec le message chiffré par Payline ;
  7. Le serveur commerçant :
  8. déchiffre le message avec sa clé d’accès pour obtenir : le token, la date d’expiration et le CVV virtuel.
  9. vérifie que la référence de commande déchiffrée est bien celle attendue ;
    1. appelle le WS Payline « doAuthorization » avec les données déchiffrées de paiement ;
  10. Le WS Payline « doAuthorization » :
    1. appelle le tokenizer pour obtenir le numéro de carte à partir du token ;
    2. récupère le CVV à partir du CVV virtuel ;
    3. appelle la banque du commerçant pour réaliser une demande d’autorisation ;
    4. réalise les contrôles anti-fraude ;
    5. retourne le résultat au commerçant.

...

Figure 1 : Cinématique d’un paiement simple (sans 3DS)

 


Cinématique d’un paiement 3DSecure

...

  1. L’acheteur valide son panier, le navigateur envoie une requête http sur le serveur commerçant ;
  2. Le serveur commerçant génère un formulaire comme dans la cinématique précédente ;
  3. L’acheteur saisit et valide ses données (paiement, adresse de facturation, etc…) ;
  4. Le navigateur :
  5. appelle la servlet « getToken » ;
  6. ;
  7. L’acheteur saisit et valide ses données (paiement, adresse de facturation, etc…) ;
  8. appelle le serveur du commerçant avec les données Payline et les autres données du formulaire.
  9. Le serveur du commerçant :
    1. déchiffre les données Payline pour récupérer le tokenPAN, la date d’expiration et le CVV virtuel  ;
    2. stocke dans la session de l’acheteur ces données ;
    3. appelle le WS Payline « verifyEnrollment » avec le token PAN, CVV et la date d’expiration.
  10. Le WS Payline « verifyEnrollment » :
  11. déduit le numéro de carte réel à partir du token carte ;
  12. « verifyEnrollment » demande au MPI l’adresse de l’ACS de l’acheteur.
  13. L’acheteur :
    1. est redirigé sur l’ACS de sa banque ;
    2. s’identifie ;
    3. est redirigé sur le site du commerçant (cf. TERM_URL) .;
  14. Le serveur commerçant appelle le WS Payline « doAuthorization » avec le tokenPAN, la date d’expiration, le CVV virtuel et le PARes ;
  15. Le WS Payline « doAuthorization » :
  16. déduit le numéro de carte réel à partir du token carte ;
  17. récupère le CVV à partir du CVV virtuel ;
    1. appelle le MPI pour vérifier le PARes ;
    2. appelle la banque du commerçant pour réaliser une demande d’autorisation ;
    3. réalise les contrôles anti-fraude ;
    4. retourne le résultat au commerçant.

...