Passa al contenuto principale
In questa pagina

L'integrazione 3DS è un flusso di lavoro a stato di pagamento. Creare il pagamento normalmente, reagire quando DEUNA restituisce pending_3ds, presentare la prossima azione restituita, e attendere uno stato di pagamento definitivo autorevole.

Diagramma di flusso
processed or authorizedpending_3dsdenied, cancelled, orexpiredprocessed or authorizeddenied, cancelled, orexpired1Create payment2Payment status3Continue fulfillment4Present next_action5Stop payment flow6Shopper authenticateswith issuer7Webhook or Get order8Final payment status
Eccezione o arresto

1. Creare il pagamento#

Utilizzare o modello di pagamento della carta supportato:

  1. Creare un ordine con Creare ordine, poi pagarlo con Creare il pagamento.
  2. Utilizzare la singola richiesta Creare il pagamento scorre quando si adatta alla vostra integrazione.

Inviare informazioni complete shopper, fatturazione, ordine e dispositivo. Questi segnali aiutano l'emittente a decidere se l'autenticazione può essere senza attrito.

2. Ispezionare la risposta di pagamento#

Una risposta di sfida-capable segue questa forma:

JSON
{
  "order": {
    "order_id": "75029759-4a64-42cd-b0b6-9f12777707b7",
    "status": "pending",
    "payment": {
      "data": {
        "id": "75029759-4a64-42cd-b0b6-9f12777707b7",
        "method_type": "credit_card",
        "status": "pending_3ds",
        "next_action": {
          "action": "authorization_3ds",
          "authorization_3ds": {
            "version": "2.2.0",
            "url_challenge": "https://api.deuna.io/transactions/next-action/...",
            "three_ds_flow_id": "0f5a8f52-7f95-4a1f-9ee8-e92946547ea9"
          }
        }
      }
    }
  }
}

Utilizzare questi campi come fonte di verità:

CampoSignificatoAzione
order.payment.data.statuspending_3ds significa che l'autenticazione non è finita.Mantenere il pagamento non risolto e presentare la prossima azione.
order.payment.data.next_action.actionIdentificare l'azione del cliente richiesta.Maniglia authorization_3ds con i dati di sfida supportati DEUNA SDK o restituiti.
order.payment.data.next_action.authorization_3ds.url_challengeURL DEUNA di breve durata per l'esperienza di autenticazione.Aprire solo nella modalità di presentazione supportata per la connessione.
order.payment.data.next_action.authorization_3ds.three_ds_flow_idCorrelate il flusso di autenticazione.Mantenere la risoluzione dei problemi; non usarlo come prova di pagamento.

Per la compatibilità, alcune integrazioni possono anche ricevere un livello superiore authorization_3ds oggetto. Le nuove implementazioni dovrebbero preferire next_action.

3. Presentare l'azione successiva#

SDK Web

Uso initNextAction(...) quando si desidera DEUNA per gestire il comportamento modale, iframe o reindirizzato supportato. Vedi il Riferimento Web SDK.

Integrazione diretta del browser

Se gestisci la prossima azione da solo:

  1. Utilizzare il restituito url_challenge; non costruire un URL 3DS.
  2. Seguire la modalità di presentazione configurata. Non forzare una pagina emittente in un iframe quando è necessario un reindirizzamento di livello superiore.
  3. Conserva il tuo successo, il tuo fallimento e gli URL di ritorno.
  4. Trattare una finestra chiusa, il callback, o reindirizzare come segnale per recuperare lo stato, non come successo di pagamento.

Applicazioni native

Utilizzare il supporto DEUNA SDK o una visualizzazione sicura del browser/web del sistema. Configurare il link di ritorno/biglietto e ripristinare il contesto di pagamento quando il cliente ritorna all'app.

4. Attendere lo stato di pagamento finale#

Mentre l'autenticazione è aperta, il pagamento rimane pending_3ds. Il successo di autenticazione consente solo l'autorizzazione a continuare; non significa denaro spostato.

Usate entrambi:

  • verificatasi DEUNA webhooks per i cambiamenti di stato asincrono; e
  • Ordinare quando il cliente ritorna o quando il sistema ha bisogno di conciliare un risultato incerto.
RisultatoSignificatoAzione di adempimento
processedAcquisto completato.Complimenti una volta che i tuoi controlli di affari passano.
authorizedI fondi sono stati autorizzati ma non catturati.Segui la tua strategia di cattura; non trattarti come catturato.
pending_3dsL'autenticazione è ancora incompleta.Attendere; non adempiere o riavviare automaticamente.
processing o authorizingIl pagamento è ancora in corso.Continuate la riconciliazione.
denied, cancelledo expiredIl pagamento non è stato completato.Mostra un risultato recuperabile e inizia un nuovo tentativo solo quando necessario.

Consulta Flusso di lavoro di pagamento & Stati per ogni stato di pagamento pubblico e transizione.

5. Maniglia l'autenticazione senza attrito#

L'autenticazione senza frizione potrebbe non tornare pending_3ds perché l'emittente può autenticare e lasciare che l'autorizzazione continui nella stessa richiesta. Il vostro codice deve quindi sostenere entrambi i risultati:

  • uno stato di pagamento immediato o in corso; o
  • pending_3ds più un authorization_3ds prossima azione.

Non è necessario che la presenza di un URL di sfida per determinare se 3DS è stato valutato.

6. Timeout e ritiri#

Le finestre di sfida dell'emittente variano. DEUNA può mantenere un pagamento in pending_3ds per fino alla finestra di autenticazione configurata; la protezione del servizio corrente non supera i 10 minuti. Dopo la scadenza, le transizioni di pagamento a uno stato di fallimento segnalato e il cliente deve iniziare un nuovo tentativo di pagamento.

  • Non riutilizzare un URL di sfida scaduto.
  • Non creare ripetuti tentativi di pagamento mentre il primo pagamento rimane irrisolto.
  • Utilizzare lo stato finale e allow_retry/ guida di errore standardizzata quando disponibile prima di offrire un altro tentativo.
  • Se il routing seleziona un'altra connessione compatibile, lascia che DEUNA decida se un risultato di autenticazione esistente può essere riutilizzato.

7. Interpretare i dettagli di autenticazione in modo sicuro#

DEUNA Admin può visualizzare i risultati tecnici 3DS come la versione del protocollo, il tipo di flusso, ECI, il risultato di autenticazione e gli identificatori di transazione di rete. Utilizzare per sostenere, riconciliazione e analisi delle controversie.

Non memorizzare o esporre criptogrammi grezzi, risposte di autenticazione completa, o sfidare HTML nei registri dei commercianti. Uno stato di pagamento, non un ECI o un evento di completamento sfida, controlla l'adempimento.