Les sessions autorisent des intégrations plus élaborées lorsque les différentes parties de la demande sont capturé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 les coûts liés à la conformité PCI et à la mise en œuvre, car vous ne gérez ni ne stockez aucun détail du paiement sur votre serveur.
Utilisation des sessions
Création d'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). Cela est utile si vous souhaitez effectuer un paiement et enregistrer les détails de la carte. Prenez note que la version de DirectAPI pour les opérations faisant référence à la session doit correspondre à la version de DirectAPI utilisée lorsque vous mettez à jour des champs de demande dans la session ou en ajoutez.
Une fois que vous lancez une opération référençant une session (à l'exception de Open Wallet
, Update Session
, Update Session From Wallet
), le code de sécurité de la carte est supprimé de la session s'il y est stocké. 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 exécuter une opération Tokenization (Segmentation en jetons) à l’aide de la session.
Règles de priorité
Lorsque vous soumettez une demande d’opération, les champs de demande et les valeurs stockés dans la session ne sont utilisés que si vous ne les fournissez pas directement dans la demande.
Extraction des 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]
Prise de décisions commerciales sur la base du contenu de session
Si vous prenez des décisions commerciales sur la base des données obtenues depuis une session, vous devez utiliser la fonction de verrouillage optimiste de la session. Ainsi, les données utilisées pour prendre vos décisions sont identiques à celles qui ont servi à 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
.
- Enregistrer la valeur de
session.version
dans le contenu de 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]