Principes de base des sessions
Une session de paiement, ou plus simplement une session, est un conteneur temporaire pour les champs de demande contenant des données sensibles sur une commande spécifique. Vous pouvez utiliser une session pour permettre au payeur de fournir ses détails de paiement sensibles directement à Mastercard Gateway. De cette manière, vous pouvez simplement référencer la session dans toute demande de transaction ultérieure, sans avoir à gérer directement les détails du paiement. Lorsque Mastercard Gateway reçoit une demande de transaction qui fait référence à une session, la passerelle forme la transaction finale en combinant les champs de la session avec ceux fournis directement dans la demande.
Les sessions permettent 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 certains modes de paiement, comme par exemple, ClickToPay, utilisent les sessions pour collecter et stocker les informations sensibles concernant le payeur. Cela réduit les exigences en matière de conformité PCI et les coûts d'implémentation, car vous ne gérez ni ne stockez aucun détail du paiement sur votre serveur.
Le cycle de vie d'une session couvre :
- La création de la session sur votre serveur.
- La mise à jour de la session sur votre serveur avec toutes les informations non sensibles que vous souhaitez stocker dans la session.
- L'utilisation de la session sur votre site Web ou votre application pour permettre à la passerelle de recueillir toutes les informations de paiement sensibles auprès du payeur.
- La référence de la session dans les transactions de paiement ou autres opérations sur votre serveur.
Une seule session dure généralement environ 15 minutes, pendant lesquelles vous pouvez envoyer une ou plusieurs opérations de paiement, selon vos besoins.
Création d'une session
Vous pouvez créer une session à l'aide de l'opération Create Session (Créer une session). Dans la demande, vous pouvez éventuellement spécifier la limite d'authentification (session.authenticationLimit), qui indique le nombre d'opération pouvant être soumises à la passerelle en utilisant l'ID de session comme mot de passe. Si la limite n'est pas indiquée, la passerelle définit une valeur par défaut. Vous pouvez utiliser l'ID de session comme mot de passe dans les demande qui utilisent l'authentification de session. L'authentification de session vous permet d'effectuer des demandes d'API directement à partir de votre application ou de votre site Web (au lieu de votre serveur), et peut être utilisée pour des demandes d'authentification 3-D Secure.
L'opération CREATE SESSION (Créer une session) renvoie les champs suivants :
- session.id : ID de session unique que vous devez fournir lors des demandes ultérieures pour référencer la session.
- session.authenticationLimit : limite indiquée dans la demande ou valeur par défaut de la passerelle.
- session.aes256Key : clé que vous pouvez utiliser pour décrypter les données sensibles transmises à votre site Web via le navigateur ou l'appareil mobile du payeur.
- session.version : version de la session. Vous pouvez utiliser ce champ pour implémenter un verrouillage optimiste du contenu de la session.
- session.updateStatus : résumé des résultats de la dernière tentative de modification de la session.
URL | htt/rest/version/72/merchant/<merchant_ID>/session |
Méthode HTTP | POST |
{ "session": { "authenticationLimit": 25 } }
Mettre à jour une session
Vous pouvez ajouter ou mettre à jour des champs de demande dans une session à l'aide de l'opération 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.
Vous pouvez également mettre à jour une session à l'aide de l'opération UPDATE SESSION FROM WALLET (Mettre à jour la session à partir du portefeuille) avec ClickToPay.
- Lors de la mise à jour d'une session, vous ne pouvez pas supprimer des champs, mais uniquement remplacer les valeurs des champs existants.
- L'opération UPDATE SESSION (Mettre à jour la session) peut être utilisée sur votre serveur pour ajouter des champs à la session. Pour ajouter des informations de paiement sensibles à une session (en permettant au payeur de les fournir directement à la passerelle), vous devez utiliser des champs hébergés sur votre page de paiement. Pour plus d'informations sur la manière de gérer les champs hébergés dans la session, voir Effectuer un paiement.
URL | htt/rest/version/72/merchant/<merchant_ID>/session/<session_ID> |
Méthode HTTP | PUT |
{ "order": { "amount": 100, "currency": "USD" } }
Utiliser une session dans une transaction de paiement
Après avoir ajouté tous les champs pertinents à la session (directement depuis votre serveur ou en utilisant les champs hébergés sur votre page de paiement), vous pouvez faire référence à cette session dans l'une des opérations suivantes en utilisant le champ session.id :
- Nous vous recommandons d'extraire les détails de la session au moyen de 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 Tokenization.
- Lorsque vous faites référence à une session dans une demande d'opération, si une valeur pour le même champ est fournie à la fois dans la session référencée et dans la demande d'opération elle-même, la valeur de la demande d'opération est utilisée. Pour plus d'informations, voir Sources de données de paiement multiples.
- Verify (Vérifier)
- Pay (Payer)
- Authorize (Autoriser)
- Standalone Capture (Collecte autonome)
- Standalone Refund (Remboursement autonome)
- Create or Update Token (Créer ou mettre à jour un jeton)
- Payment Options Inquiry (Demande d'options de paiement)
- Initiate Authentication (Initier l'authentification)
- Authenticate Payer (Authentifier le payeur)
Vous pouvez effectuer plusieurs opérations en utilisant la même session, par exemple PAY (Payer) et CREATE OR UPDATE TOKEN (Créer ou mettre à jour un jeton). Cette fonction est utile si vous souhaitez à la fois lancer un paiement et stocker un jeton à utiliser lors de paiements ultérieurs.
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. Ainsi, les données utilisées pour prendre vos décisions sont identiques à celles qui ont servi à traiter votre opération de demande.
- 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.
Pour utiliser la fonctionnalité de verrouillage optimiste :
- Récupérez le contenu de la session à l'aide de l'opération RETRIEVE SESSION (Extraire la session).
- Prenez note de la valeur session.version dans la réponse.
- Prenez les décisions commerciales, selon les besoins.
- Envoyez votre demande d'opération à la passerelle et incluez la valeur session.version ainsi que l'ID de session dans la demande.
Si le contenu de la session a changé, le champ session.version dans votre demande ne correspond pas à la version actuelle et la passerelle rejette l'opération avec error.cause=INVALID_REQUEST.