Acquisizione e rimborso contemporaneamente
Comprendere come vengono validate e serializzate le richieste di addebito e rimborso sovrapposte nei flussi di pagamento supportati da DEUNA.
In questa pagina
DEUNA può serializzare le richieste di addebito o rimborso sovrapposte per la stessa transazione nei flussi supportati. La serializzazione protegge il calcolo dell'importo cumulativo: dopo che una richiesta aggiorna la transazione, la successiva viene validata rispetto al nuovo saldo.
Garanzie della serializzazione#
Per un flusso abilitato alla concorrenza, DEUNA elabora la sezione relativa all'aggiornamento del saldo di ogni richiesta in modo sequenziale per la stessa transazione. Ciò impedisce a due richieste sovrapposte di validare lo stesso saldo obsoleto.
La serializzazione non garantisce che ogni richiesta sovrapposta abbia successo. Dopo che la prima richiesta è stata applicata, una richiesta successiva può essere rifiutata perché:
- L'importo supererebbe il saldo rimanente disponibile per l'addebito o il rimborso.
- Il processo di cutoff ha già finalizzato la sequenza MPC o MPR.
- Una richiesta precedente ha finalizzato la sequenza di addebito o rimborso.
- Lo stato della transazione non consente l'operazione.
- Il processore o la connessione non supportano l'operazione parziale richiesta.
Le richieste per transazioni diverse possono comunque essere elaborate indipendentemente.
Linee guida per l'integrazione del commerciante#
- Utilizzare gli endpoint esistenti per l'addebito e il rimborso; non esiste un endpoint separato per la concorrenza.
- Assegnare a ogni operazione prevista un'identità univoca. Un tentativo di retry da parte del cliente e una seconda operazione finanziaria non sono la stessa cosa.
- Non calcolare l'importo successivo da uno stato memorizzato nella cache o da una singola risposta. Recuperare l'ultimo stato della transazione e riconciliarne la cronologia delle operazioni.
- Considera
partial_capturing,capturing,partial_refundingerefundingin stati non risolti. - Elaborare webhooks in modo idempotente e memorizzare gli identificatori delle operazioni e gli importi, non solo lo stato di pagamento.
- Se si verificano conflitti tra richieste, gestire il rifiuto dovuto a un saldo insufficiente, a un limite di tempo, a un'operazione finale o a uno stato non valido come un risultato di convalida autorevole. Non tentare di riprovare l'operazione come una nuova transazione finanziaria senza aver prima recuperato il pagamento.
Ambito e limitazioni#
Questo comportamento si applica ai flussi di cattura e rimborso supportati. Non fa sì che le richieste di autorizzazione o annullamento siano parte della stessa sequenza serializzata di operazioni parziali.
Le chiamate al processore possono comunque essere asincrone. La serializzazione protegge gli aggiornamenti del saldo di DEUNA, ma non può trasformare un timeout del processore o una risposta in sospeso in un risultato finale immediato. Attendere lo stato confermato prima di completare l'operazione o comunicare con il cliente.
Per la cattura aggregata e i tagli, vedere MPC — Catture parziali multiple. Per il rimborso aggregato e i tagli, vedere MPR — Rimborsi multipli parziali.