Les sessions autorisent des intégrations plus élaborées lorsque les différentes parties de la demande sont collectées à différents points du flux de paiement ou via différents canaux. Par exemple, les flux de paiement pour Hosted Session et les portefeuilles (par exemple, Masterpass) utilisent des sessions pour collecter et stocker des informations sensibles concernant le payeur. Cela réduit la conformité PCI et les coûts de mise en œuvre, car vous ne gérez ni ne stockez aucune information de paiement sur votre serveur.
Travailler avec des sessions
Créer une session
La première étape consiste à créer une session que vous pouvez mettre à jour à l'aide des champs de demande et des valeurs que vous voulez stocker dans la session.
Vous pouvez créer une session en utilisant :
Mise à jour d'une session
Vous pouvez ajouter ou mettre à jour des champs de demande dans une session à l'aide :
- De l'appel Update Session (Mettre à jour la session).
Il vous permet d'ajouter des données de paiement et de payeur dans une session, qui peuvent ensuite devenir l'entrée pour déterminer le risque associé à un payeur dans une opération d'authentification.
Référence de l'API Update Session (Mettre à jour la session)[REST][NVP]
- Du service Hosted Session.
Référence de session.js[JavaScript]
- Des services de portefeuille (Masterpass, Visa Checkout, Amex Express Checkout).
Référence de l'API Update Session From Wallet (Mettre à jour la session à partir du portefeuille) [REST][NVP]
Vous ne pouvez pas supprimer des champs d'une session, mais uniquement remplacer des valeurs de champs existants.
Utilisation d'une session
Vous pouvez utiliser une session contenant les champs et les valeurs de la demande dans les opérations suivantes :
Nous vous conseillons d'extraire les détails de la session en utilisant l'opération Retrieve Session (Extraire la session) et de vérifier le contenu de la session avant de lancer une opération de paiement ou de segmentation en jetons.
Vous pouvez exécuter plusieurs opérations au moyen de la même session, par exemple Pay (Payer) et Tokenization (Segmentation en jetons). Ceci est utile si vous souhaitez effectuer un paiement et également enregistrer les détails de la carte. Notez que la DirectAPI version des opérations faisant référence à la session doit correspondre à la DirectAPI version utilisée lors de la mise à jour ou de l'ajout de champs de demande à la session.
Une fois que vous lancez une opération qui fait référence à une session (sauf Open Wallet
, Update Session
, Update Session From Wallet
), le cryptogramme visuel de la carte, s'il est stocké dans la session, est supprimé. Ceci est nécessaire pour respecter les normes PCI. Si vous souhaitez enregistrer les détails de la carte pour une utilisation ultérieure, vous pouvez le faire en effectuant une opération Tokenization (Segmentation en jetons) à l'aide de la session.
Règles de priorité
Lors de la soumission d'une demande d'opération, les champs de demande et les valeurs stockés pour la session sont utilisés uniquement si vous ne les fournissez pas directement dans la demande.
Récupérer les champs d'une session
Vous pouvez obtenir les champs de demande et les valeurs stockés dans une session en fournissant l'identifiant de session.
Référence de l'API Retrieve Session (Extraire la session)[REST][NVP]
Prendre des décisions commerciales basées sur le contenu de la session
Si vous prenez des décisions commerciales basées sur les données obtenues à partir d'une session, vous devez utiliser la fonctionnalité de verrouillage optimiste de la session. Cela garantit que les données que vous avez utilisées pour prendre vos décisions sont les mêmes que celles utilisées pour traiter votre opération de demande.
Pour utiliser la fonction de verrouillage optimiste, vous devez :
- Récupérer en toute sécurité le contenu de la session au moyen de l'opération
Retrieve Session
(Extraire la session).
- Enregistrez la valeur de
session.version
dans le contenu de la session renvoyé.
- Prendre vos décisions sur la base du contenu de session renvoyé.
- Lorsque vous soumettez votre opération de demande à la passerelle, transmettez le paramètre
session.version
en même temps que l'identifiant de session dans le cadre de l'opération.
Si le contenu de la session a changé depuis que vous avez enregistré le paramètre session.version
, la passerelle rejette l'opération et renvoie error.cause=INVALID_REQUEST
.
Exemples de décisions commerciales basées sur le contenu de session :
- Calcul du montant de surcoût en fonction du type de carte fournie par le payeur.
- Calcul du montant d'expédition en fonction de l'adresse d'expédition fournie par le payeur.
Référence de l'API Retrieve Session (Extraire la session)[REST][NVP]
Pay (Payer)[REST][NVP]