Widget Next Action
Continua un ordine DEUNA in sospeso tramite 3DS o un'altra azione richiesta al cliente sul Web, iOS, Android e React Native.
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#
order_token; do not create another order.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:
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(),
},
});await deunaSDK.initNextAction({
orderToken,
mode: 'modal',
callbacks: {
onSuccess: verifyOriginalOrder,
onError: recoverAfterVerification,
onClosed: recoverAfterVerification,
},
});let callbacks = NextActionCallbacks()
callbacks.onSuccess = { _ in verifyOriginalOrder() }
callbacks.onError = { error in recoverAfterVerification(error) }
callbacks.onClosed = { _ in recoverAfterVerification(nil) }
deunaSDK.initNextAction(
orderToken: orderToken,
callbacks: callbacks,
language: "en"
)val callbacks = NextActionCallbacks().apply {
onSuccess = { verifyOriginalOrder() }
onError = { error -> recoverAfterVerification(error) }
onClosed = { recoverAfterVerification(null) }
}
deunaSDK.initNextAction(
context = this,
orderToken = orderToken,
callbacks = callbacks,
language = "en"
)Parametri#
| Parametro | Piattaforme | Obbligatorio | Oggetto |
|---|---|---|---|
orderToken | Tutti | Sì. | Token originale per l'ordine in attesa di intervento del cliente. |
callbacks | Tutti | Sì. | Supporto per gestori di successo, errore, chiusura, evento e ridimensionamento in base al contratto di callback di base. |
language | Tutti | No. | Localizza l'esperienza ospitata. |
mode | Reazione nativo | Sì. | Scegliere la presentazione modale o supportata. |
fraudCredentials | Native + React Native | No. | Solo per un'integrazione configurata dei dati del dispositivo. |
customUserAgent | iOS + Android | No. | Override dell'agente utente WebView approvato. |
domain | Tutti | No. | Override dell'ambiente controllato; omettere nell'uso normale in produzione. |
Gestire ogni risultato#
| Risultato | Che cosa significa | Azione corretta |
|---|---|---|
onSuccess | Il passaggio del cliente è stato completato. | Recuperare l'ordine originale e renderlo dal suo stato corrente. |
onError | L'SDK o la sfida hanno segnalato un errore normalizzato. | Registrare i metadati sicuri, recuperare lo stato e quindi offrire un tentativo valido. |
onClosed | Il cliente o l'SDK hanno chiuso l'esperienza. | Considerare come ambiguo fino a quando lo stato del backend non è noto. |
| Timeout o interruzione dell'app | Nessun 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.