Mise en œuvre
Lisez tout sur les statuts 3-D Secure de vos transactions traitées et les bases du 3-D Secure/SCA dans nos guides dédiés.
Introduction
À l'exception de la méthode d'intégration Hosted Checkout Page, vous devez adapter votre intégration pour garantir que le 3-D Secure est déployé pendant le processus de paiement.
Vous atteignez cet objectif en suivant deux étapes :
- Collecter des données de vos clients lors du processus de paiement dans votre environnement de boutique en ligne.
- Envoyer ces données à notre plateforme dans la requête de paiement. Vous devez envoyer ces données en ajoutant :
a. Un ensemble fixe de propriétés obligatoires et,
b. Une sélection de propriétés recommandées et/ou propriétés optionnelles à votre requête.
Plus vous ajoutez de paramètres obligatoires/optionnels à votre requête, plus il y a de chances que la vérification d'authentification 3-D Secure devienne un simple processus en arrière-plan. Le processus de paiement suit ce qu'on appelle la “cinemétique frictionless”, améliorant l'expérience de paiement globale, car elle devient plus fluide. Lisez notre chapitre dédié pour en savoir plus.
Pour Page de Checkout Hébergée, nous collecterons les données obligatoires pour vous et déploierons 3-D Secure pour vous. Cependant, vous pouvez toujours ajouter des propriétés recommandées et/ou des propriétés optionnelles pour augmenter les chances de transformer l'authentification 3-D Secure en un cinématique d'authentification frictionless ou passive.
Pour tous les autres modes d'intégration, consultez nos guides dédiés pour des exemples de code/JSON couvrant les propriétés obligatoires :
Hosted Tokenization Page
Intégration Serveur à serveur/Appareil mobile/Client
Référez-vous à nos cas de test pour simuler différents scénarios d'authentification/résultats de transaction pour tout système de carte.
Propriétés obligatoires
Ce sont les propriétés de base que vous devez envoyer pour chaque transaction par carte dans votre requête CreatePayment. Si vous traitez des transactions via notre Hosted Checkout Page solution, nous saisirons ces données pour vous sur notre page de paiement sécurisée.
cardPaymentMethodSpecificInput.card.cardholderName
cardPaymentMethodSpecificInput.threeDSecure.redirectionData.returnUrl
cardPaymentMethodSpecificInput.threeDSecure.skipAuthentication
order.customer.device.acceptHeader
order.customer.device.browserData.colorDepth
order.customer.device.browserData.javaEnabled
order.customer.device.browserData.screenHeight
order.customer.device.browserData.screenWidth
order.customer.device.locale
order.customer.device.timezoneOffsetUtcMinutes
order.customer.device.userAgent
Si vous traitez des transactions pour Visa, assurez-vous d'ajouter les propriétés obligatoires suivantes également :
Pour toutes les modes d'intégration :
order.customer.contactDetails.mobilePhoneNumber
ou
order.customer.contactDetails.phoneNumber
ou
order.customer.contactDetails.workPhoneNumber
ou
order.customer.contactDetails.emailAddress
Pour les requêtes Create Payment :
order.customer.device.ipAddress
Si vous traitez des transactions pour Cartes Bancaires, assurez-vous d'ajouter les propriétés obligatoires suivantes également :
Pour toutes les modes d'intégration: cardPaymentMethodSpecificInput.paymentProduct130SpecificInput.threeDSecure.useCase
Pour les requêtes Create Payment : order.customer.device.ipAddress
Propriétés recommandées
Les principales schematiques de cartes recommandent fortement d'inclure ces propriétés, car elles amélioreront les chances d'une cinématique d'authentification frictionless ou passive.
order.customer.billingAddress.city
order.customer.billingAddress.countryCode
order.customer.billingAddress.street
order.customer.billingAddress.houseNumber
order.customer.billingAddress.additionalInfo
order.customer.billingAddress.zip
order.customer.contactDetails.emailAddress
Propriétés optionnelles
De plus, vous pouvez envoyer autant de ces propriétés que vous le souhaitez. Plus vous ajoutez de paramètres, plus les chances d'obtenir une cinématique d'authentification frictionless ou passive sont élevées.
cardPaymentMethodSpecificInput.priorThreeDSecureData.acsTransactionId
cardPaymentMethodSpecificInput.priorThreeDSecureData.utcTimestamp
cardPaymentMethodSpecificInput.threeDSecure.challengeIndicator
cardPaymentMethodSpecificInput.threeDsecure.priorThreeDSecureData.method
cardPaymentMethodSpecificInput.threeDSecure.secureCorporatePayment
cardPaymentMethodSpecificInput.threeDSecure.challengeCanvasSize
order.additionalInput.airlineData.flightIndicator
order.additionalInput.airlineData.passengers.airlineLoyaltyStatus
order.additionalInput.airlineData.passengers.passengerType
order.additionalInput.airlineData.ticketCurrency
order.additionInput.typeInformation.transactionType
order.customer.account.authentication.method
order.customer.account.authentication.utcTimestamp
order.customer.account.changeDate
order.customer.account.changedDuringCheckout
order.customer.account.createDate
order.customer.account.hadSuspiciousActivity
order.customer.account.passwordChangeDate
order.customer.account.passwordChangedDuringCheckout
order.customer.account.paymentAccountOnFile.createDate
order.customer.account.paymentAccountOnFile.numberOfCardOnFileCreationAttemptsLast24Hours
order.customer.account.paymentActivity.numberOfPaymentAttemptsLast24Hour
order.customer.account.paymentActivity.numberOfPaymentAttemptsLastYear
order.customer.account.paymentActivity.numberOfPurchasesLast6Months
order.customer.accountType
order.customer.contactDetails.mobilePhoneNumber
order.customer.contactDetails.phoneNumber
order.customer.contactDetails.workPhoneNumber
order.shipping.address.additionalInfo
order.shipping.address.city
order.shipping.address.countryCode
order.shipping.address.houseNumber
order.shipping.address.street
order.shipping.address.zip
order.shipping.addressIndicator
order.shipping.emailAddress
order.shipping.firstUsageDate
order.shipping.isFirstUsage
order.shipping.type
order.shoppingCart.giftCardPurchase.amountOfMoney.amount
order.shoppingCart.giftCardPurchase.amountOfMoney.currencyCode
order.shoppingCart.giftCardPurchase.numberOfGiftCards
order.shoppingCart.isPreorder
order.shoppingCart.preorderItemAvailabilityDate
order.shoppingCart.reorderIndicator
Trouvez des informations détaillées sur ces propriétés dans notre API CreatePayment / API CreateHostedCheckout.
Mettre en œuvre un MPI externe pour la vérification 3-D Secure
En fonction de votre modèle commercial, vous pourriez préférer travailler avec un Merchant Plug-In (MPI) externe pour traiter les paiements sécurisés par 3-D Secure.
Cette fonctionnalité est disponible uniquement pour la méthode d'intégration Server-to-server. Assurez-vous de vérifier auprès de votre prestataire de MPI que vous répondez à leurs exigences techniques et de sécurité.
Nous avons conçu notre plateforme de manière à vous permettre de diviser le flux de transaction en deux phases distinctes :
- Déployer 3-D Secure avec votre MPI externe.
- Traiter la transaction via notre plateforme. Ajoutez les propriétés imbriquées suivantes dans l'objet cardPaymentMethodSpecificInput.threeDSecure à une requête standard de CreatePayment :
{
{
"cardPaymentMethodSpecificInput": {
"card": {
"cvv": "451",
"cardNumber": "4012005616165343",
"expiryDate": "1223",
"cardholderName": "Wile E. Coyote"
},
"isRecurring": false,
"paymentProductId": 1,
"transactionChannel": "ECOMMERCE",
"threeDSecure": {
"externalCardholderAuthenticationData": {
"cavv" : "AAABBEg0VhI0VniQEjRWAAAAAAA=",
"cavvAlgorithm" : "X",
"directoryServerTransactionId" : "f25084f0-5b16-4c0a-ae5d-b24808a95e4b",
"eci" : "05",
"threeDSecureVersion" : "2.1.0",
"acsTransactionId" : "abcdefghijklmnopqrstuvwxyz0123456789",
"flow" : "challenge"
}
}
},
"order": {
"amountOfMoney": {
"currencyCode": "EUR",
"amount": 2980
},
"customer": {
"billingAddress": {
"countryCode": "NL"
}
},
"references": {
"merchantOrderId": "123456",
"merchantReference": "oGPc8xJURfpFitBa6ORrpkBuPoGpvD"
}
}
}
Propriété | Remarques |
---|---|
cavv | Obligatoire |
eci | |
threeDSecureVersion | |
directoryServerTransactionId | |
acsTransactionId | |
xid |
Optionnel Référence de votre MPI externe concernant le résultat d'authentification. |
flow |
Optionnel Si omise, notre plateforme remplira cette propriété avec "frictionless", que nous inclurons dans les réponses de GetPaymentDetails. |
Si vous traitez des transactions pour Cartes Bancaires, assurez-vous d'ajouter les propriétés obligatoires suivantes également :
cavvAlgorithm
schemeRiskScore
appliedExemption