Passa al contenuto principale
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:

Split Payments consente al cliente di distribuire il totale dell’ordine tra le carte supportate. Guarda la demo direttamente su YouTube se il lettore incorporato non è disponibile.

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#

Diagramma di flusso
1One merchant order2Card 1 amount andauthorization3Card 2 remainingamount andauthorization4-- Partial or failed5Verify final orderstate6Reconcile attemptsand show recovery
Commerciante o clienteEccezione o arrestoRisultato
01 · order
Creare un ordine
Mantenere i totali e la valuta come riferimento sul backend.
02 · widget
Abilitare due carte
Passare il comportamento di suddivisione a Payment Widget o Elements.
03 · customer
Assegnare e inviare
L'esperienza convalida gli importi e elabora le carte configurate.
04 · backend
Riconciliare tutti i tentativi
Completare solo quando l'ordine raggiunge lo stato finale richiesto.

Abilitare il comportamento#

await DeunaSDK.initPaymentWidget({
  orderToken,
  behavior: {
    paymentMethods: {
      creditCard: {
        splitPayments: {maxCards: 2},
      },
    },
  },
  callbacks,
});

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#

SegnaleUso
onCardBinDetected / onBinDetectedRilevare il BIN della carta attiva senza raccogliere i dati della carta grezzi.
onInstallmentSelectedAssociare l'opzione di piano selezionata alla carta attualmente configurata.
paymentMethodSplitPaymentsEvento nativo di Element che indica il percorso di suddivisione del pagamento.
paymentProcessing / onPaymentProcessingBloccare le azioni duplicate durante l'esecuzione dell'operazione combinata.
purchase, purchaseError, purchaseRejectedSolo 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à.

ScenarioComportamento del commerciante
La prima carta fallisce prima che l'altra abbia successoMantenere l'ordine aperto solo se lo stato corrente dell'ordine consente un ulteriore tentativo.
Una carta ha successo e l'altra fallisceRiconciliare entrambi i tentativi; non inviare un nuovo pagamento completo senza verifica.
Il cliente chiude durante il processoRecuperare l'ordine prima di ripristinare le opzioni di pagamento.
Il cliente perde la connessioneConsiderare il risultato come sconosciuto fino a quando il backend non risponde.
Digitazione duplicata o tentativoUtilizzare 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.