Come funzionano PaymentIntents e SetupIntents
Scopri come PaymentIntents e SetupIntents funzionano all'interno del flusso di pagamento.
La differenza principale tra API Payment Intents e l’API Setup Intents è lo scopo:
- API Payment Intents: utilizzata per riscuotere immediatamente pagamenti e addebiti ai clienti. Crea un addebito ed elabora una transazione per riscuotere fondi.
- API Setup Intents: utilizzata per raccogliere e salvare i dettagli relativi al metodo di pagamento per un utilizzo futuro senza generazione di alcun addebito. Imposta le credenziali di pagamento senza elaborare alcun pagamento.
API Payment Intent | API Setup Intents |
---|---|
Crea un addebitare istantaneo | Crea nessun addebito |
Monitora il ciclo di vita di un pagamento | Monitora lo stato di avanzamento della configurazione di un metodo di pagamento |
Utilizza 3D Secure per autenticare il cliente per la transazione applicabile. | Utilizza 3D Secure per autenticare una modalità di pagamento senza addebiti e crea un mandato o un accordo per addebiti futuri |
I pagamenti asincroni possono essere difficili da gestire perché possono dipendere da azioni del cliente che avvengono al di fuori della tua applicazione. Ad esempio, un utente potrebbe dover confermare un pagamento utilizzando 3D Secure.
Per semplificare la gestione dei pagamenti, Stripe utilizza una macchina a stati che consente di monitorare lo stato di un flusso di pagamento. Per conoscere gli stati di ciascuna API, seleziona la scheda corrispondente qui sotto:
Quando viene creato il PaymentIntent, il suo stato è requires_
1 finché non viene associato un metodo di pagamento.
Ti consigliamo di creare il PaymentIntent non appena conosci l’importo che intendi addebitare, in modo che Stripe possa registrare tutti i tentativi di pagamento.
Dopo che il cliente ha fornito i dati di pagamento, il PaymentIntent è pronto per essere confermato.
Nella maggior parte delle integrazioni questo stato viene ignorato perché le informazioni sulla modalità di pagamento vengono inviate nello stesso momento in cui viene confermato il pagamento.
Se il pagamento richiede operazioni aggiuntive, ad esempio l’autenticazione con 3D Secure, lo stato della PaymentIntent è requires_
1.
Una volta gestite le operazioni necessarie, il PaymentIntent passa allo stato processing
per i metodi di pagamento asincroni, ad esempio gli addebiti bancari. L’elaborazione di questi tipi di metodi di pagamento può richiedere alcuni giorni. Altri metodi di pagamento, come le carte, vengono elaborati più rapidamente e non passano allo stato processing
.
Se autorizzi e acquisisci fondi separatamente, il PaymentIntent potrebbe passare allo stato requires_
. In tal caso, se tenti di acquisire i fondi, lo stato diventa processing
.
Un PaymentIntent con stato succeeded
indica che il flusso di pagamento che sta attivando è completo.
Ora i fondi sono nel tuo account e puoi evadere l’ordine in modo sicuro. Se devi rimborsare il cliente, puoi utilizzare l’API Refunds.
Se il tentativo di pagamento non va a buon fine (ad esempio a causa di un rifiuto), viene lo stato del PaymentIntent torna a essere requires_
per consentire un nuovo tentativo di pagamento.
Puoi annullare un PaymentIntent in qualsiasi momento prima che sia in stato processing
2 o succeeded
. L’annullamento invalida il PaymentIntent per i tentativi di pagamento futuri e l’operazione non può essere annullata. Se sono stati trattenuti fondi, l’annullamento li sblocca.
Inoltre, i PaymentIntent potrebbero passare automaticamente allo stato canceled
dopo essere stati confermati troppe volte.
1 Le versioni dell’API antecedenti la data 2019-02-11 mostrano requires_
anziché requires_
e requires_
anziché requires_
.
2 Puoi annullare un PaymentIntent nello stato processing
se il metodo di pagamento associato è un conto bancario statunitense. Tuttavia, potrebbe non andare a buon fine a causa di una finestra temporale di annullamento limitata e variabile.