agricole
Sign up

Understand 3-D Secure statuses

To help you keep track of your transactions and their 3-D Secure status, it is important to differentiate between a transactions': 

  • 3-D Secure status: The result of the authentication check provided by your customer’s issuer. We return this result in property paymentOutput.cardPaymentMethodSpecificOutput.threeDSecureResults.eci in GetPayment/GetPaymentDetails requests
  • Global transaction status: The result of the authorisation request provided by your acquirer for the gross amount (as defined in your CreatePayment/CreateHostedCheckout request in property order.amountOfMoney.amount). We return this result in property statusOutput.statusCode. Learn more about the global transaction status and all possible outcomes

The table below gives you a full overview of possible scenarios and how our platform displays them to you:

3-D Secure status GetPayment/GetPaymentDetails
in property eci
Transaction status GetPayment/GetPaymentDetails
in property statusCode
Description
5 Depending on the authorisation result by your acquirer either
2
5
9
Your customers have passed the authentication (via a challenge or frictionless flow). In case of fraudulent chargebacks, the issuer is liable

6
12

Depending on the authorisation result by your acquirer either
2
5
9
Your customers did not have the opportunity to perform the authentication check.
In case of fraudulent chargebacks, the issuer is liable
91 2 Your customers did not pass the authentication check because of i.e. incorrect password/PIN. Our platform does not execute the authorisation step at all, abandoning the transaction
92 2 Authentication was not possible due to a technical error.
Our platform does not execute the authorisation step at all, abondoning the transaction (statusCode=2)
Check property paymentOutput.cardPaymentMethodSpecificOutput.threeDSecureResults.liability in GetPayment/GetPaymentDetails requests to learn about the liability shift for fraudulent transactions. Be aware that this is only an indication, as the definite accountability depends on various factors

Méthodes d'intégration

1Utilisez nos SDKs

Utilisez nos SDKs Serveur pour connecter facilement votre environnement serveur à l'API Serveur de la plateforme Ingenico Direct. Ces SDKs simplifient les fonctionnalités de l'API avec des objets spécifiques à la plateforme faciles à utiliser.

Ruby
PHP
Node.js
Java
Python 3
.NET

2Utilisez nos plugins

Nos plugins offrent un lien transparent entre votre boutique en ligne et notre plateforme. En enveloppant efficacement notre API RESTful, ces plugins vous font gagner du temps en écriture de code et rendent l'intégration rapide et facile.

Shopify
Shopware

TEST

1Test 1

Body 1

TEST SDK Download

2Test 2

Body 2

Étapes d'intégration

À un moment donné du processus de paiement, vous redirigez vos clients vers notre page de paiement sécurisée. Ils saisissent leurs informations de carte, nous les envoyons à votre acquéreur et vous fournissons le résultat.

Découvrez comment fonctionne l'ensemble du flux de transaction et ce que vous devez faire à chaque étape.

Notre Hosted Checkout Page fonctionne avec tous les moyens de paiement disponibles sur notre plateforme. Si vos clients choisissent une méthode de paiement par redirection, une redirection vers l'acquéreur/l'émetteur ne se produit pas. À la place, vos clients sont redirigés vers le fournisseur tiers.

URLs des points de terminaison cibles en mode test / en production

Notre plateforme vous permet d'envoyer des requêtes soit vers notre environnement de test, soit vers l'environnement de production :

  • URL du point de terminaison TEST : MERCHANT_ID/hostedcheckouts
  • URL du point de terminaison LIVE : MERCHANT_ID/hostedcheckouts

Si vous utilisez nos SDK Serveur, votre application ciblera automatiquement l'URL de l'environnement respectif / mode d'intégration via des instances de CommunicatorConfiguration / IClient / CreateHostedCheckoutRequest. Des informations détaillées sur la manière d'y parvenir sont disponibles dans le chapitre suivant, y compris des exemples de code complets.

Comprendre le flux de paiement

Nos SDK Serveur sont fournis avec une API HostedCheckout. Elle comprend toutes les méthodes dont vous avez besoin pour effectuer toutes les étapes d'un flux de paiement typique :

  1. Vos clients vont sur votre page de paiement et finalisent l'achat.
  2. Vous envoyez une demande CreateHostedCheckout à notre plateforme. Utilisez l'exemple de code suivant pour la demande :

Ce exemple minimal remplit uniquement l'objet order/hostedCheckoutSpecificInput. Consultez notre référence API complète pour voir quels autres objets/propriétés sont disponibles.

  1. Notre plateforme envoie une réponse dans l'instance de CreateHostedCheckoutResponse que vous avez créée lors de votre demande. Elle contient une propriété partialRedirectionURL
    // Propriétés de createHostedCheckoutResponse
    {
        "RETURNMAC": "12345678-90ab-cdef-1234-567890abcdef",
        "hostedCheckoutId": "123456",
        "merchantReference": "7e21badb48fe45848bbc1efef2a88504",
        "partialRedirectUrl": "hostedcheckout/PaymentMethods/Selection/e61340e579e04172a740676ffdda162e"
        "redirectUrl": "https://payment.hostedcheckout/PaymentMethods/Selection/e61340e579e04172a740676ffdda162e"
    }
    
  2. Vous redirigez les clients dans le navigateur en utilisant la formule https://payment. + PartialRedirectUrl ou utilisez le chemin complet de la propriété redirectUrl

    Construisez cette URL en utilisant l'objet CreateHostedCheckoutResponse

    Le client entre son numéro de carte dans le masque de paiement sur PartialRedirectUrl / redirectUrl et confirme le paiement

    4'. (Facultatif) : Nous effectuons un contrôle de fraude
  1. Nous redirigeons le client vers sa banque émettrice pour l'authentification 3-D Secure. Le titulaire de la carte s'identifie

Si vous avez pré-sélectionné une méthode de paiement par redirection, l'URL redirige vos clients vers le fournisseur tiers à la place.

  1. Notre système reçoit le résultat de l'émetteur. En fonction du résultat, deux scénarios sont possibles :
  2. Nous soumettons la transaction financière réelle à l'acquéreur pour traitement. Nous recevons le résultat de la transaction

  3. Nous redirigeons vos clients vers votre ReturnUrl

  4. Vous demandez le résultat de la transaction à notre plateforme. Utilisez une instance de GetHostedCheckoutResponse et passez le HostedCheckoutId de la réponse pour cibler la transaction que vous venez de créer. Dès que nous avons envoyé un HostedCheckoutId, vous pouvez demander le résultat pendant trois heures. Après cela, notre plateforme supprime le HostedCheckoutId.

    Si vos clients n'ont pas encore terminé d'entrer leurs informations de carte et/ou nous n'avons pas encore reçu un résultat final de votre acquéreur, la propriété hostedCheckoutStatus.CreatedPaymentOutput.PaymentStatusCategory est nulle :

    {
      "CreatedPaymentOutput": {},
      "Status": "PAYMENT_CREATED"
    }
    


    Dès que nous avons reçu un résultat, cette propriété contient un résultat qui ressemble à ceci :

    {
      "CreatedPaymentOutput": {
        "Payment": {
          "HostedCheckoutSpecificOutput": {
            "HostedCheckoutId": "3104703806"
          },
          "Id": "3104703806_0",
          "PaymentOutput": {
            "AmountOfMoney": {
              "Amount": 100,
              "CurrencyCode": "EUR"
            },
          },
          "Status": "CAPTURED",
          "StatusOutput": {
    		.
    		.
    		.
            "StatusCode": 9
          }
        },
        "PaymentStatusCategory": "SUCCESSFUL"
      },
      "Status": "PAYMENT_CREATED"
    }
    

Vous pouvez également recevoir le résultat via webhooks ou un appel PaymentResponse. Notez que GetPayment accepte un PAYIDSUB au lieu d'un HostedCheckoutId, qui est un HostedCheckoutId suivi d'une étape numérique indiquant l'ordre du PAYIDSUB dans le cycle de vie de la transaction. "_0" fait référence à la première étape du cycle de vie de la transaction, donc l'étape initiale lors de la création de la transaction :

  1. Si la transaction a été réussie, vous pouvez livrer les biens / services

Was this page helpful?

Do you have any comments?

Thank you