Abort non ha effetto dopo l'autorizzazione

Sintomo

Hai inviato sendAbortRequest() per annullare un pagamento, ma la transazione è stata comunque completata — l'aborto sembrava non avere alcun effetto. Il cliente è stato comunque addebitato.

Causa

L'aborto può annullare solo un pagamento che è ancora in corso, prima dell'autorizzazione dell'host. Una volta che la transazione è stata autorizzata dall'host, non c'è più nulla da annullare — il pagamento è effettivamente avvenuto. Un aborto inviato dopo quel punto è troppo tardi e non ha alcun effetto sul risultato.

Questo è previsto dal design: l'aborto interrompe un'operazione in corso; non è un modo per annullare un'operazione completata.

Soluzione

Scegli lo strumento giusto in base allo stato della transazione nel suo ciclo di vita:

  • Prima dell'autorizzazionesendAbortRequest() annulla il pagamento in corso. Questa è la finestra valida per l'aborto.
  • Dopo l'autorizzazione (completato) — l'aborto non si applica più. Per annullare un pagamento completato, invia un reversal contro l'originale POITransactionID. Vedi Guida: annullare una transazione.

Se hai un timer di aborto o un annullamento attivato dall'utente, prevedi che aborti inviati tardi nel flusso possano legittimamente non avere effetto — la transazione aveva già superato il punto di autorizzazione. Gestisci questo caso controllando l'esito della transazione e annullandola se è stata completata.

Verifica

Dopo un aborto che potrebbe essere stato tardivo, conferma cosa è effettivamente accaduto:

  • Se la risposta del pagamento indica che la transazione è stata completata, è stata autorizzata prima che il tuo aborto arrivasse — annullala se devi revocarla.
  • Una richiesta di stato può recuperare l'esito (e il POITransactionID necessario per l'annullamento) se non lo hai catturato. Vedi Guida: controllo dello stato della transazione.

Correlati

  • Guida: effettuare un pagamento — la finestra di aborto all'interno del flusso di pagamento.
  • Guida: annullare una transazione — come annullare un pagamento già completato.
  • Guida: controllo dello stato della transazione — recuperare l'esito e l'ID POI.