Accettare un pagamento
Accettare pagamenti online in modo sicuro
Crea un modulo di pagamento o utilizza una pagina di pagamento preintegrata per iniziare ad accettare i pagamenti online.
Crea una pagina di pagamento sul tuo sito web utilizzando Stripe Elements e Checkout Sessions, un’integrazione front-end che gestisce imposte, sconti, costi di spedizione e molto altro ancora.
Configurare il serverLato server
Prima di iniziare, devi registrarti per creare un account Stripe.
Utilizza le librerie ufficiali di Stripe per accedere all’API dalla tua applicazione.
Imposta l’SDK in modo che utilizzi almeno la versione dell’API 2025-03-31..
Creare una sessione di CheckoutLato server
Aggiungi sul server un endpoint che crei una sessione di Checkout e restituisca la sua chiave privata client al tuo front-end. Una sessione di Checkout rappresenta la sessione in cui il cliente completa acquisti una tantum o sottoscrive abbonamenti. Le sessioni di Checkout scadono 24 ore dopo la creazione.
Raccogliere i dati di pagamentoLato client
Raccogli i dati di pagamento sul client con Payment Element. Payment Element è un componente di interfaccia utente preintegrato che semplifica la raccolta dei dati di pagamento per vari metodi di pagamento.
Testare l'integrazione
- Vai alla pagina di pagamento.
- Compila i dati di pagamento con un dei metodi di pagamento indicati nella tabella di seguito. Per i pagamenti con carta:
- Inserisci una data di scadenza futura per la carta.
- Inserisci un numero di 3 cifre per il CVC.
- Inserisci un qualsiasi codice postale.
- Invia il pagamento a Stripe.
- Vai alla Dashboard e cerca il pagamento nella pagina Transazioni. Se il pagamento è andato a buon fine, lo vedrai nell’elenco.
- Fai clic sul pagamento per visualizzare ulteriori dettagli, come i dati di addebito e l’elenco degli articoli acquistati. Puoi utilizzare queste informazioni per evadere l’ordine.
Per ulteriori informazioni su come testare la tua integrazione, consulta la sezione Test.
FacoltativoCreare prodotti e prezzi
Prima di creare una sessione di Checkout, puoi creare prodotti e prezzi in anticipo. Utilizza i prodotti per rappresentare diversi beni fisici o livelli di servizio e prezzi per rappresentare il prezzo di ciascun prodotto.
Ad esempio, puoi creare una T-shirt come prodotto con un prezzo di 20 USD. In questo modo puoi aggiornare e aggiungere prezzi senza dover modificare le informazioni dei prodotti sottostanti. Puoi creare prodotti e prezzi con la Dashboard o l’API di Stripe. Ulteriori informazioni su come funzionano prodotti e prezzi.
Ogni prezzo che crei ha un ID. Quando crei una sessione di completamento della transazione, fai riferimento all’ID del prezzo e alla quantità. Se vendi in più valute, imposta il tuo prezzo multi-currency. Il completamento della transazione determina la valuta locale del cliente in automatico e presenta quella valuta, se il prezzo la supporta.
FacoltativoPrecompilare i dati dei clientiLato server
Se hai già raccolto l’indirizzo email del cliente e vuoi che venga precompilato nella sessione di Checkout, specifica customer_email durante la creazione di una sessione di Checkout.
FacoltativoSalvare i dati del metodo di pagamento
Come accettare un pagamento e salvare i dati di pagamento del cliente per acquisti futuri
FacoltativoAscoltare le modifiche alla sessione di Checkout
Ascoltare le modifiche alla sessione di Checkout
Puoi ascoltare le modifiche alla sessione di Checkout aggiungendo un listener di eventi sull’evento 'change con checkout.on.
FacoltativoRaccogliere gli indirizzi di fatturazione e di spedizione
Raccogliere un indirizzo di fatturazione
Per impostazione predefinita, una sessione di Checkout raccoglie i dati di fatturazione minimi necessari per il pagamento tramite Payment Element.
Utilizzo di Billing Address Element
Puoi raccogliere indirizzi di fatturazione completi utilizzando Billing Address Element.
Innanzitutto, specifica billing_address_collection=required quando crei la sessione di Checkout.
Utilizzo di un modulo personalizzato
Puoi creare un modulo personalizzato per raccogliere gli indirizzi di fatturazione.
- Se la tua pagina di pagamento ha una fase di raccolta dell’indirizzo distinta prima della conferma, chiama updateBillingAddress quando il cliente invia l’indirizzo.
- In alternativa, puoi inviare l’indirizzo quando il cliente fa clic sul pulsante di pagamento specificando billingAddress per confirm.
Raccogliere indirizzi di fatturazione parziali
Per raccogliere indirizzi di fatturazione parziali, ad esempio solo il Paese e il codice postale, specifica billing_address_collection=auto.
Quando si raccolgono indirizzi di fatturazione parziali, occorre raccogliere gli indirizzi manualmente. Per impostazione predefinita, Payment Element raccoglie automaticamente i dati di fatturazione minimi necessari per il pagamento. Per evitare la doppia raccolta dei dati di fatturazione, specifica fields.billingDetails=never durante la creazione del Payment Element. Se intendi raccogliere solo un sottoinsieme di dati di fatturazione (ad esempio il nome del cliente), specifica never solo per i campi che intendi raccogliere autonomamente.
Raccogliere un indirizzo di spedizione
Per raccogliere l’indirizzo di spedizione di un cliente, specifica il parametro shipping_address_collection quando crei la sessione di Checkout.
Quando raccogli un indirizzo di spedizione, devi anche specificare i Paesi autorizzati per la spedizione. Configura la proprietà allowed_countries con una matrice di codici Paese ISO di due lettere.
Come utilizzare Shipping Address Element
Puoi raccogliere indirizzi di spedizione completi con Shipping Address Element.
Ascoltare le modifiche alla sessione di Checkout
Puoi ascoltare le modifiche alla sessione di Checkout aggiungendo un listener di eventi per gestire le modifiche relative all’indirizzo.
Usare un modulo personalizzato
Puoi creare un modulo personalizzato per raccogliere gli indirizzi di spedizione.
- Se la tua pagina di pagamento ha una fase di raccolta dell’indirizzo ben definita prima della conferma, chiama updateShippingAddress quando il cliente invia l’indirizzo.
- In alternativa, puoi inviare l’indirizzo quando il cliente fa clic sul pulsante di pagamento specificando shippingAddress per confirm.
FacoltativoSeparare l'autorizzazione dall'acquisizioneLato server
Stripe supporta i pagamenti con carta in due passaggi in modo tale che tu possa prima autorizzare una carta e successivamente addebitare il pagamento. Quando Stripe autorizza un pagamento, la società emittente della carta garantisce l’importo e lo trattiene sulla carta del cliente. Hai quindi un certo periodo di tempo per acquisire i fondi, a seconda della carta). Se non acquisisci il pagamento prima della scadenza dell’autorizzazione, il pagamento viene annullato e la società emittente rilascia i fondi trattenuti.
La separazione dell’autorizzazione dall’acquisizione è utile se devi eseguire altre operazioni tra la conferma che il cliente è in grado di pagare e la riscossione del pagamento. Ad esempio, se vendi articoli con scorte limitate, potresti dover verificare che un articolo acquistato dal cliente utilizzando Checkout sia ancora disponibile prima di addebitare il pagamento ed evadere l’acquisto. A tal fine, utilizza il seguente flusso di lavoro:
- Conferma che Stripe abbia autorizzato il metodo di pagamento del cliente.
- Consulta il sistema di gestione delle scorte per verificare che l’articolo sia ancora disponibile.
- Aggiorna il sistema di gestione dell’inventario in modo che indichi che un cliente ha acquistato l’articolo.
- Acquisisci il pagamento del cliente.
- Fai sapere al cliente se l’acquisto è andato a buon fine nella pagina di conferma.
Per indicare che vuoi separare l’autorizzazione dall’addebito, devi impostare il valore di payment_intent_data.capture_method su manual durante la creazione della sessione di Checkout. In questo modo Stripe autorizza solo l’importo sulla carta del cliente.
Per riscuotere un pagamento non addebitato, puoi utilizzare la Dashboard o l’endpoint capture. Per acquisire i pagamenti a livello di codice, devi accedere al PaymentIntent creato durante la sessione di Checkout, che puoi ottenere dall’oggetto Session.
FacoltativoGestione degli account dei clientiNessun codice
Consenti ai tuoi clienti di gestire il loro account condividendo un link sul tuo portale cliente. Il portale cliente consente ai clienti di accedere con la propria email per gestire gli abbonamenti, aggiornare le modalità di pagamento e così via.
FacoltativoEvasione dell'ordine
Come ricevere una notifica a livello di codice quando un cliente effettua un pagamento