Salvare il metodo di pagamento di un cliente senza effettuare un pagamento
Scopri come salvare un metodo di pagamento ed eseguire l'addebito in un secondo momento.
Le API Checkout Sessionsin modalità di configurazione permette di salvare i dettagli pagamento di un cliente senza un pagamento iniziale. Questo è utile se vuoi aggiungere i clienti adesso, configurarli per pagamenti ed eseguire addebiti a loro utilizzando l’API Payment Intents in futuro, quando saranno offline.
Utilizza questa integrazione per configurare i pagamenti ricorrenti o per creare pagamenti una tantum il cui importo finale viene determinato in un secondo momento, spesso dopo che il cliente ha ricevuto il servizio.
Transazioni con carta presente
Le transazioni con carta presente, come la raccolta dei dati della carta attraverso Stripe Terminal, usano un processo diverso per salvare il metodo di pagamento.
Conformità
Quando salvi i dati di pagamento di un cliente, sei responsabile della conformità a tutte le leggi, le normative e le regole del circuito applicabili. Questi requisiti si applicano generalmente se desideri salvare la modalità di pagamento del cliente per un uso futuro, ad esempio visualizzando la modalità di pagamento del cliente nel flusso di pagamento per un acquisto futuro o addebitando il pagamento quando il cliente non sta utilizzando attivamente il sito web o l’app. Aggiungi al tuo sito web o alla tua app delle condizioni che indichino come intendi salvare i dettagli della modalità di pagamento e permetti ai clienti di scegliere.
Quando salvi una modalità di pagamento, puoi utilizzarla solo per l’utilizzo specifico che hai incluso nelle tue condizioni. Per addebitare una modalità di pagamento quando un cliente è offline e salvarla come opzione per acquisti futuri, accertati di raccogliere esplicitamente il consenso del cliente per questo uso specifico. Ad esempio, includi una casella di controllo “Salva la mia modalità di pagamento per usi futuri” per raccogliere il consenso.
Per eseguire un addebito a un cliente quando è offline, assicurati che i tuoi termini includano i seguenti:
- Il consenso del cliente a disporre un pagamento o una serie di pagamenti a suo nome per determinate transazioni.
- La tempistica e la frequenza previste per i pagamenti (ad esempio, se gli addebiti sono per rate programmate, pagamenti di abbonamenti o ricariche non programmate).
- Il modo in cui determini l’importo del pagamento.
- La tua politica di annullamento, se la modalità di pagamento è per un servizio in abbonamento.
Assicurati di conservare una copia scritta del consenso relativo a questi termini, fornito dal cliente.
Nota
Se devi utilizzare la conferma manuale sul lato server o la tua integrazione richiede la presentazione separata dei metodi di pagamento, consulta la nostra guida alternativa.
Configurare StripeLato server
Innanzitutto crea un account Stripe o accedi.
Utilizza le nostre librerie ufficiali per accedere all’API Stripe dalla tua applicazione:
Creare un oggetto CustomerLato server
Per configurare una modalità di pagamento per pagamenti futuri, è necessario associarla a un Customer. Crea un oggetto Customer quando il cliente crea un account con la tua azienda. Gli oggetti Customer permettono di riutilizzare le modalità di pagamento e di monitorare più pagamenti.
Usa la modalità di configurazioneLato server
Crea una sessione di completamento della transazione conmode=setup.
Associare il metodo di pagamento a un clienteLato server
Se non hai creato la sessione di completamento della transazione con un cliente esistente, utilizza l’ID del PaymentMethod per associare il metodo pagamento a un cliente.
In caso contrario, il metodo di pagamento si collega automaticamente al cliente indicato durante la creazione della sessione di completamento della transazione.
Recupera il metodo di pagamentoLato server
Dopo che un cliente ha completato con successo la sessione di completamento della transazione, gestisci il webhook checkout.session.completed. Recupera l’oggetto Session nel webhook e quindi effettua le seguenti operazioni:
- Ottieni il valore della chiave setup_intent, che è l’ID SetupIntent creato durante la sessione di completamento della transazione.
- Utilizza l’ID SetupIntent per recuperare l’oggetto SetupIntent. L’oggetto restituito contiene un ID payment_method che puoi collegare a un cliente nel passaggio successivo.
Ulteriori informazioni sull’impostazione dei webhook.
Addebita in un secondo momento il metodo di pagamentoLato server
Dopo aver collegato il metodo di pagamento a un cliente, è possibile effettuare un pagamento off-session utilizzando unPaymentIntent:
- Imposta customer con l’ID cliente e payment_method con l’ID del metodo di pagamento.
- Impostare off_session a
trueper indicare che il cliente non è nel flusso di pagamento durante un tentativo di pagamento e non può soddisfare una richiesta di autenticazione effettuata da un partner, come una società emittente della carta, una banca o altro istituto di pagamento. Se, durante il flusso di pagamento, un partner richiede l’autenticazione, Stripe richiede le esenzioni utilizzando le informazioni sul cliente ricavate da una transazione precedente on-session. Se le condizioni per l’esenzione non sono soddisfatte, PaymentIntent potrebbe generare un errore. - Imposta il valore di conferma della proprietà PaymentIntent a
true, per far sì che la conferma avvenga immediatamente quando crei il PaymentIntent.
Se un tentativo di pagamento non riesce, non riesce anche la richiesta con un codice di stato HTTP 402 e il PaymentIntent stato è requires_payment_method. Avvisa il cliente di tornare all’applicazione (ad esempio, inviando un’email o una notifica in-app) e indirizza il tuo cliente a una nuova sessione di completamento della transazione per selezionare un altro metodo di pagamento.