Suddivisione dei pagamenti con carta nei SDK
Configurare e utilizzare la suddivisione di due carte tramite DEUNA Payment Widget o Elements sui SDK supportati.
In questa pagina
La suddivisione dei pagamenti consente a un cliente di distribuire un singolo ordine su più carte in un'esperienza DEUNA supportata. Gli attuali esempi pubblici di SDK configurano due carte con behavior.paymentMethods.creditCard.splitPayments.maxCards.
Visualizza Split Payments nel checkout#
La demo seguente mostra un cliente che divide un ordine su due carte nell'esperienza di pagamento DEUNA:
Utilizza la demo per l'orientamento visivo. Il tuo backend deve comunque riconciliare ogni tentativo e verificare lo stato generale dell'ordine prima dell'evasione.
Flusso di pagamento#
Abilitare il comportamento#
await DeunaSDK.initPaymentWidget({
orderToken,
behavior: {
paymentMethods: {
creditCard: {
splitPayments: {maxCards: 2},
},
},
},
callbacks,
});await deunaSDK.initPaymentWidget({
orderToken,
mode: 'modal',
behavior: {
paymentMethods: {
creditCard: {
splitPayments: {maxCards: 2},
},
},
},
callbacks,
});let behavior: Json = [
"paymentMethods": [
"creditCard": [
"splitPayments": ["maxCards": 2]
]
]
]
deunaSDK.initPaymentWidget(
orderToken: orderToken,
callbacks: callbacks,
behavior: behavior
)val behavior: Json = mapOf(
"paymentMethods" to mapOf(
"creditCard" to mapOf(
"splitPayments" to mapOf("maxCards" to 2)
)
)
)
deunaSDK.initPaymentWidget(
context = this,
orderToken = orderToken,
callbacks = callbacks,
behavior = behavior
)Web e React Native utilizzano l'oggetto di comportamento. iOS e Android accettano la stessa struttura JSON pubblica. Mantenere la corretta ortografia e la nidificazione esattamente come mostrato.
Eventi e callback#
| Segnale | Uso |
|---|---|
onCardBinDetected / onBinDetected | Rilevare il BIN della carta attiva senza raccogliere i dati della carta grezzi. |
onInstallmentSelected | Associare l'opzione di piano selezionata alla carta attualmente configurata. |
paymentMethodSplitPayments | Evento nativo di Element che indica il percorso di suddivisione del pagamento. |
paymentProcessing / onPaymentProcessing | Bloccare le azioni duplicate durante l'esecuzione dell'operazione combinata. |
purchase, purchaseError, purchaseRejected | Solo ciclo di vita del client; riconciliare sempre l'ordine e i suoi tentativi. |
Non ricostruire il risultato finanziario sommando gli eventi del cliente. Utilizzare l'ordine e i record di transazione del backend esistenti.
Gestione degli errori e recupero#
I pagamenti suddivisi possono generare uno stato operativo parziale: un tentativo può raggiungere uno stato diverso da un altro. Progettare il percorso di recupero prima di abilitare la funzionalità.
| Scenario | Comportamento del commerciante |
|---|---|
| La prima carta fallisce prima che l'altra abbia successo | Mantenere l'ordine aperto solo se lo stato corrente dell'ordine consente un ulteriore tentativo. |
| Una carta ha successo e l'altra fallisce | Riconciliare entrambi i tentativi; non inviare un nuovo pagamento completo senza verifica. |
| Il cliente chiude durante il processo | Recuperare l'ordine prima di ripristinare le opzioni di pagamento. |
| Il cliente perde la connessione | Considerare il risultato come sconosciuto fino a quando il backend non risponde. |
| Digitazione duplicata o tentativo | Utilizzare i controlli esistenti e la strategia di idempotenza documentata. |
Matrice di test#
- Due carte con allocazione identica e precisione della valuta supportata.
- Installamenti su una carta idonea e nessun installamento su una carta non idonea.
- Rifiuto per la prima e la seconda carta separatamente.
- Attivazione in background, aggiornamento o perdita di rete tra le carte.
- Chiusura del cliente dopo aver inserito una carta.
- Autorizzazione lenta e ripetuti tentativi di invio.
- Webhook finale e corrispondenza dello stato API con lo schermo di conferma del cliente.