- Directives d'intégration
- Utilisation de plusieurs sources de détails de paiement
Utilisation de plusieurs sources de détails de paiement
Lors de l'exécution d'un certain nombre d'appels Mastercard GatewayDirectAPI, [par exemple Pay (Payer), Authorize (Autoriser), Refund (Rembourser), Capture (Collecter), Save (Enregistrer), Initiate Authentication (Initier l'authentification), Authenticate Payer (Authentifier le payeur)], les détails de la carte doivent être fournis. Ces détails de paiement peuvent être spécifiés à l'aide d'un certain nombre de « sources ».
Sources prises en charge
- Champs de demande : Détails de paiement spécifiés directement dans la demande (numéro de carte, expiration de la carte, cryptogramme visuel de la carte, etc.).
- Session : Détails du paiement stockés dans une session de paiement.
- Jeton de carte : Détails de la carte stockés dans un référentiel sécurisé, dans un jeton (en cas d'utilisation de l'opération Tokenization).
Règles de priorité
Si un détail de carte, par exemple le numéro de carte, est fourni plus d'une fois dans une seule demande car il est contenu dans deux sources ou plus, les règles de préséance détermineront la source utilisée. L'ordre de priorité est le suivant :
- Champs de demande DirectAPI
- Identifiant de session
- Jeton de carte
En d'autres termes, les données contenues dans les champs de demande DirectAPI prévalent sur les données stockées dans la session, qui prévalent eux-même sur les détails du jeton.
Par exemple, si vous intégrez un identifiant de session (qui contient le numéro de la carte, l'expiration de la carte et le cryptogramme visuel) et un jeton (qui contient le numéro de la carte et son expiration) dans une demande Pay (Payer), d'après l'ordre de priorité, les détails de la carte spécifiés dans l'identifiant de session seront utilisés dans la transaction financière.
Référence de l'API Source of Funds (Source des fonds)[REST][NVP]
Exemples
Vous pouvez spécifier les détails du paiement en utilisant une ou plusieurs de ces sources.
Effectuer une transaction avec des détails provenant d'un jeton et d'une session
Vous voulez soumettre une opération Pay (Payer) en utilisant le numéro de carte et la date d'expiration stockés dans un jeton de carte et le cryptogramme visuel collecté dans une session. L'exemple de demande suivant montre comment fournir les sources de jeton et de session dans une demande Pay (Payer) :
Méthode HTTP | PUT |
URL | https://ap-gateway.mastercard.com/api/rest/version/72/merchant/<merchant>/order/<orderId>/transaction/<transactionId> |
JSON |
{ "apiOperation": "PAY", "session": { "id": "SESSION000177777777777777777777" }, "sourceOfFunds": { "token": "9999999999999999" }, "order": { "amount": "34.00", "currency": "AUD" } } |
Le code JSON ci-dessus suppose ce qui suit :
- Une session avec un identifiant « SESSION000177777777777777777777 » a été préalablement créée et contient le cryptogramme visuel.
- Un jeton dont l'identifiant est « 9999999999999999 » a été stocké auparavant et contient le numéro de carte et la date d'expiration.
Mettre à jour un jeton avec une nouvelle date d'expiration
Vous voulez mettre à jour la date d'expiration dans un jeton stocké en utilisant l'opération Tokenization (Segmentation en jetons) (mais laisser le numéro de carte inchangé). Le jeton que vous fournissez dans l'URL de demande identifie le jeton que vous voulez mettre à jour. Le fait de fournir ce même jeton comme source des détails du paiement entraînera la réutilisation des détails préalablement stockés. Cela indique que vous n'avez pas besoin de saisir de nouveau le numéro de carte. Si vous fournissez la nouvelle date d'expiration dans la rubrique des détails de la carte de la demande, cette valeur remplacera la date d'expiration déjà stockée dans le jeton (voir Règles de priorité).
L'exemple de demande suivant montre comment fournir à la fois les détails du paiement et les sources de jeton au moyen de l'opération Tokenization (Segmentation en jetons) :
Méthode HTTP | PUT |
URL | https://ap-gateway.mastercard.com/api/rest/version/72/merchant/<merchant>/token/9999999999999999 |
JSON |
{ "sourceOfFunds": { "provided": { "card": { "expiry": { "month": "05", "year": "13" }, "number": "5123456789012346" } }, "type": "CARD" } } |
Le code JSON ci-dessus suppose ce qui suit :
- Un jeton portant l'identifiant "9999999999999999" a été précédemment stocké et contient un numéro de carte et une date d'expiration.
Il en résulte que la date d'expiration du jeton « 9999999999999999 » est désormais le 13/05 (le numéro de carte reste inchangé).