Flusso di acquisto 3DS
Mantenere l'autenticazione in attesa, presentare la prossima azione e confermare lo stato di pagamento finale.
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.
1. Creare il pagamento#
Utilizzare o modello di pagamento della carta supportato:
- Creare un ordine con Creare ordine, poi pagarlo con Creare il pagamento.
- 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:
{
"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à:
| Campo | Significato | Azione |
|---|---|---|
order.payment.data.status | pending_3ds significa che l'autenticazione non è finita. | Mantenere il pagamento non risolto e presentare la prossima azione. |
order.payment.data.next_action.action | Identificare 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_challenge | URL 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_id | Correlate 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:
- Utilizzare il restituito
url_challenge; non costruire un URL 3DS. - Seguire la modalità di presentazione configurata. Non forzare una pagina emittente in un iframe quando è necessario un reindirizzamento di livello superiore.
- Conserva il tuo successo, il tuo fallimento e gli URL di ritorno.
- 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.
| Risultato | Significato | Azione di adempimento |
|---|---|---|
processed | Acquisto completato. | Complimenti una volta che i tuoi controlli di affari passano. |
authorized | I fondi sono stati autorizzati ma non catturati. | Segui la tua strategia di cattura; non trattarti come catturato. |
pending_3ds | L'autenticazione è ancora incompleta. | Attendere; non adempiere o riavviare automaticamente. |
processing o authorizing | Il pagamento è ancora in corso. | Continuate la riconciliazione. |
denied, cancelledo expired | Il 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_3dspiù unauthorization_3dsprossima 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.