Passa al contenuto principale
In questa pagina

Utilizzare Next Action quando un ordine esistente richiede al cliente di completare un ulteriore passaggio, come una sfida 3DS o un reindirizzamento supportato. Riutilizzare il token dell'ordine originale.

Diagramma di flusso decisionale#

Diagramma di flusso
1Create or submitpayment2-- Yes3Handle current orderstate4Open Next Actionwith same ordertoken5-- Error or close6Reconcile order onbackend7Retrieve statebefore retry8Fulfill only fromverified final state
RisultatoRevisione o in sospeso
01 · response
Rileva l'azione richiesta
Utilizza la risposta di pagamento o lo stato dell'ordine documentato.
02 · SDK
Apri Next Action
Passare l'ordine originale order_token; do not create another order.
03 · customer
Completare la sfida
Mantenere funzionanti i redirect, le finestre popup e le transizioni del ciclo di vita dell'app.
04 · backend
Verifica il risultato
Recuperare l'ordine o consumare un webhook verificato.

Guarda l'esperienza del cliente#

Next Action funziona sia con i widget di pagamento DEUNA sia con i moduli di pagamento gestiti dall’esercente. Dopo che il backend ha inviato il pagamento, apri Next Action solo quando la risposta indica che il cliente deve completare un altro passaggio. Il widget presenta la sfida 3DS supportata o il reindirizzamento a un metodo di pagamento alternativo (APM) e comunica il risultato tramite i callback.

La dimostrazione seguente mostra come l’esperienza prosegue dal checkout dell’esercente all’azione post-pagamento richiesta:

Next Action presenta il passaggio che il cliente deve completare dopo l’avvio del pagamento. Guarda il video direttamente su YouTube se il lettore incorporato non è disponibile.

Il video illustra la transizione mostrata al cliente. L’integrazione deve comunque utilizzare la risposta del pagamento, i callback e la riconciliazione del backend descritti di seguito; non dedurre lo stato finale del pagamento da ciò che il cliente vede nel widget.

Apri Next Action#

await DeunaSDK.initNextAction({
  orderToken,
  callbacks: {
    onSuccess: () => verifyOriginalOrder(),
    onError: (error) => recoverAfterVerification(error),
    onClosed: () => recoverAfterVerification(),
  },
});

Parametri#

ParametroPiattaformeObbligatorioOggetto
orderTokenTuttiSì.Token originale per l'ordine in attesa di intervento del cliente.
callbacksTuttiSì.Supporto per gestori di successo, errore, chiusura, evento e ridimensionamento in base al contratto di callback di base.
languageTuttiNo.Localizza l'esperienza ospitata.
modeReazione nativoSì.Scegliere la presentazione modale o supportata.
fraudCredentialsNative + React NativeNo.Solo per un'integrazione configurata dei dati del dispositivo.
customUserAgentiOS + AndroidNo.Override dell'agente utente WebView approvato.
domainTuttiNo.Override dell'ambiente controllato; omettere nell'uso normale in produzione.

Gestire ogni risultato#

RisultatoChe cosa significaAzione corretta
onSuccessIl passaggio del cliente è stato completato.Recuperare l'ordine originale e renderlo dal suo stato corrente.
onErrorL'SDK o la sfida hanno segnalato un errore normalizzato.Registrare i metadati sicuri, recuperare lo stato e quindi offrire un tentativo valido.
onClosedIl cliente o l'SDK hanno chiuso l'esperienza.Considerare come ambiguo fino a quando lo stato del backend non è noto.
Timeout o interruzione dell'appNessun risultato affidabile del client è stato raggiunto dal gestore.Ricollocare dal backend; non inviare automaticamente di nuovo.

Requisiti di redirect e popup#

  • Consentire all'SDK di aprire la superficie di autenticazione esterna supportata.
  • Mantenere lo stato del ciclo di vita dell'app mentre il cliente esce e torna.
  • Sul Web, aprire da un'azione del cliente e non "sandboxare" il widget in modo da bloccare popup o la navigazione di livello superiore.
  • Su React Native, mantenere il renderer dell'SDK montato mentre il suo controller di redirect esterno è attivo.
  • Su iOS e Android, utilizzare il componente modale o integrato mantenuto dell'SDK invece di ricreare il ponte WebView interno.
  • Verifica, rifiuto, cancellazione da parte del cliente, timeout dell'emittente, perdita di connessione e ritorno dallo stato di background.

Presentazione integrata#

Il Web SDK supporta mode: 'target' più target; iOS e Android espongono componenti widget integrati; React Native utilizza il suo DeunaWidget renderer. Assicurarsi che l'altezza iniziale sia sufficiente, rispondere ai cambiamenti di dimensione e garantire che l'applicazione host non nasconda i controlli di sfida dietro un footer fisso o una tastiera sullo schermo.