Configurare pagamenti futuri
Per raccogliere i dati di pagamento dei clienti da riutilizzare in seguito, utilizza la modalità setup di Checkout, che utilizza l’API Setup Intents per creare modalità di pagamento.
Dai un’occhiata al nostro esempio completo e funzionante su GitHub.
Configura StripeLato server
Innanzitutto, devi creare un account Stripe. Registrati ora.
Utilizza le nostre librerie ufficiali per accedere all’API Stripe dalla tua applicazione:
Creare una sessione di CheckoutLato clientLato server
Aggiungi sul tuo sito web un pulsante di pagamento che richiami un endpoint lato server per creare una sessione di Checkout.
<html> <head> <title>Checkout</title> </head> <body> <form action="/create-checkout-session" method="POST"> <button type="submit">Checkout</button> </form> </body> </html>
To create a setup mode Session, use the mode
parameter with a value of setup
when creating the Session. You can optionally specify the customer parameter to automatically attach the created payment method to an existing customer. Checkout uses Dynamic payment methods by default, which requires you to pass the currency parameter when using setup
mode.
Aggiungi la variabile di modello {CHECKOUT_SESSION_ID}
all’URL success_url
per accedere all’ID sessione una volta che il cliente ha completato una sessione di Checkout. Dopo aver creato la sessione di Checkout, reindirizza il cliente all’URL restituito nella risposta.
Recuperare la sessione di CheckoutLato server
Una volta che il cliente ha completato la sessione di Checkout, devi recuperare l’oggetto Session. Puoi farlo in due modi:
- In modo asincrono: gestisci i webhook
checkout.session.completed
, che contengono un oggetto Session. Scopri ulteriori informazioni sulla configurazione dei webhook. - Sincronicamente: ottieni l’ID sessione da
success_url
quando un utente viene reindirizzato nuovamente sul tuo sito. Utilizza l’ID sessione per recuperare l’oggetto Session.
La scelta giusta dipende dalla tua tolleranza agli abbandoni, in quanto è possibile che non sempre i clienti raggiungano il success_url
dopo un pagamento riuscito. Ad esempio, potrebbero chiudere la scheda del browser prima di essere reindirizzati. Se la tua integrazione gestisce i webhook, non è soggetta a questa forma di abbandono.
Una volta recuperato l’oggetto Session, ottieni il valore della chiave setup_intent
, che è l’ID del SetupIntent creato durante la sessione di Checkout. Un SetupIntent è un oggetto utilizzato per configurare i dati del conto bancario del cliente per i pagamenti futuri.
Esempio di payload checkout.session.completed
:
{ "id": "evt_1Ep24XHssDVaQm2PpwS19Yt0", "object": "event", "api_version": "2019-03-14", "created": 1561420781, "data": { "object": { "id": "cs_test_MlZAaTXUMHjWZ7DcXjusJnDU4MxPalbtL5eYrmS2GKxqscDtpJq8QM0k", "object": "checkout.session", "billing_address_collection": null, "cancel_url": "https://example.com/cancel", "client_reference_id": null, "customer": "", "customer_email": null, "display_items": [], "mode": "setup", "setup_intent": "seti_1EzVO3HssDVaQm2PJjXHmLlM", "submit_type": null, "subscription": null, "success_url": "https://example.com/success" } }, "livemode": false, "pending_webhooks": 1, "request": { "id": null, "idempotency_key": null }, "type": "checkout.session.completed" }
Prendi nota dell’ID setup_intent
per il passaggio successivo.
Recuperare il SetupIntentLato server
Utilizzando l’ID setup_intent
, recupera l’oggetto SetupIntent. L’oggetto restituito contiene un ID payment_method
che è possibile associare a un cliente nel passaggio successivo.
Nota
Se richiedi queste informazioni in modo sincrono dall’API Stripe, anziché gestendo i webhook, puoi combinare il passaggio precedente con questo espandendo l’oggetto SetupIntent nella richiesta all’endpoint /v1/checkout/session. In questo modo, non devi effettuare due richieste di rete per accedere all’ID PaymentMethod appena creato.
Utilizzare la modalità di pagamentoLato server
Se non hai creato la sessione di Checkout con un cliente esistente, utilizza l’ID payment_method
per associare il PaymentMethod a un cliente. Una volta eseguita questa operazione, puoi addebitare l’importo al PaymentMethod utilizzando un PaymentIntent.
Comunicare ai clienti l'utilizzo di Stripe
Stripe raccoglie informazioni sulle interazioni dei clienti con Elements per fornirti servizi, prevenire le frodi e migliorare i propri servizi. Ad esempio, utilizza cookie e indirizzi IP per identificare quali Elements sono stati visualizzati da un cliente durante una singola sessione di pagamento. Sei responsabile della comunicazione e della raccolta di tutti i diritti e i consensi necessari affinché Stripe utilizzi i dati in questi modi. Per ulteriori informazioni, visita il nostro Centro privacy.