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.
Reindirizza a una pagina di pagamento in hosting su Stripe Checkout. Confronta questa integrazione con gli altri tipi di integrazione di Stripe.
Sforzo di integrazione
Tipo di integrazione
Reindirizzare alla pagina di pagamento in hosting su Stripe
Personalizzazione dell'interfaccia utente
Innanzitutto registrati per creare un account Stripe.
Utilizza le nostre librerie ufficiali per accedere all’API Stripe dalla tua applicazione:
Reindirizzare il cliente a Stripe CheckoutLato clientLato server
Aggiungi sul tuo sito web un pulsante di pagamento che richiami un endpoint lato server per creare una sessione di Checkout.
Puoi anche creare una sessione di Checkout per un cliente esistente, che ti consente di precompilare i campi di Checkout con le informazioni di contatto note e di unificare la cronologia degli acquisti per quel cliente.
<html> <head> <title>Buy cool new product</title> </head> <body> <!-- Use action="/create-checkout-session.php" if your server is PHP based. --> <form action="/create-checkout-session" method="POST"> <button type="submit">Checkout</button> </form> </body> </html>
Una sessione di Checkout è una rappresentazione programmatica di quello che il cliente visualizza quando viene reindirizzato al modulo di pagamento. Puoi configurarlo con le seguenti opzioni:
- Voci riga da addebitare
- Valute da utilizzare
Devi popolare success_
con il valore URL di una pagina del tuo sito web a cui Checkout rimanda il cliente una volta che ha completato il pagamento. Se lo desideri, puoi anche fornire un valore cancel_
di una pagina del tuo sito web a cui Checkout rimanda il cliente se interrompe la procedura di pagamento prima del completamento.
Nota
Per impostazione predefinita, le sessioni di Checkout scadono 24 ore dopo la creazione.
Dopo aver creato una sessione di Checkout, reindirizza il cliente all’URL restituito nella risposta.
Metodi di pagamento
Per impostazione predefinita, Stripe abilita le carte e altri metodi di pagamento più diffusi. Puoi attivare o disattivare i singoli metodi di pagamento nella Stripe Dashboard. In Checkout, Stripe verifica la valuta e le eventuali limitazioni, poi presenta in modo dinamico al cliente i metodi di pagamento supportati.
Per vedere come i clienti visualizzano i tuoi metodi di pagamento, inserisci un ID transazione o imposta l’importo e la valuta dell’ordine nella Dashboard.
Puoi abilitare Apple Pay e Google Pay nelle impostazioni dei metodi di pagamento. Per impostazione predefinita, Apple Pay è abilitato e Google Pay è disabilitato. Tuttavia, in alcuni casi Stripe li filtra anche quando sono abilitati. Filtriamo Google Pay se abiliti l’imposta automatica senza raccogliere un indirizzo di spedizione.
Per abilitare Apple Pay o Google Pay, non devi apportare modifiche all’integrazione delle pagine in hosting su Stripe Checkout. Stripe gestisce questi pagamenti come gli altri pagamenti con carta.
Confermare l’endpoint
Conferma se il tuo endpoint è accessibile avviando il server web (ad esempio, localhost:4242
) ed esegui il seguente comando:
curl -X POST -is "http://localhost:4242/create-checkout-session" -d ""
Il terminale mostra una risposta simile alla seguente:
HTTP/1.1 303 See Other Location: https://checkout.stripe.com/c/pay/cs_test_... ...
Test
Adesso dovresti avere un pulsante di pagamento funzionante che reindirizza il cliente a Stripe Checkout.
- Fai clic sul pulsante di pagamento.
- Viene eseguito il reindirizzamento al modulo di pagamento di Stripe Checkout.
Se l’integrazione non funziona:
- Apri la scheda Rete negli strumenti per sviluppatori del browser.
- Fai clic sul pulsante di pagamento e conferma l’invio della richiesta XHR all’endpoint lato server (
POST /create-checkout-session
). - Verifica che la richiesta restituisca uno stato 200.
- Utilizza
console.
nel listener del clic sul pulsante per confermare la restituzione dei dati appropriati.log(session)
Mostrare una pagina di confermaLato clientLato server
È importante mostrare al cliente una pagina di conferma dopo che ha inviato il modulo di pagamento. Ospita questa pagina di conferma sul tuo sito.
Crea una pagina di conferma minima:
<html> <head><title>Thanks for your order!</title></head> <body> <h1>Thanks for your order!</h1> <p> We appreciate your business! If you have any questions, please email <a href="mailto:orders@example.com">orders@example.com</a>. </p> </body> </html>
Poi aggiorna l’endpoint per la creazione della sessione di Checkout in modo tale che utilizzi la nuova pagina:
Nota
Se vuoi personalizzare la pagina di conferma, consulta la guida alla personalizzazione della pagina di conferma.
Test
- Fai clic sul pulsante di pagamento.
- Compila i dettagli di pagamento con i dati della carta di test:
- Inserisci
4242 4242 4242 4242
come numero della carta. - Inserisci una data futura qualsiasi come scadenza della carta.
- Inserisci un numero di 3 cifre per il CVC.
- Inserisci un qualsiasi codice postale.
- Inserisci
- Fai clic su Paga.
- Verrai reindirizzato alla nuova pagina di conferma.
Poi individua il pagamento nella Dashboard Stripe. I pagamenti riusciti sono visualizzati nell’elenco dei pagamenti della Dashboard. Se fai clic su un pagamento, vieni reindirizzato alla pagina dei dettagli del pagamento. La sezione Riepilogo Checkout contiene le informazioni di addebito e l’elenco degli articoli acquistati, che puoi utilizzare per evadere l’ordine manualmente.
Gestire gli eventi successivi al pagamento
Stripe invia un evento checkout.session.completed quando un cliente completa un pagamento in una sessione di Checkout. Utilizza lo strumento webhook della Dashboard o segui la guida ai webhook per ricevere e gestire questi eventi, che potrebbero indurti a:
- Invia un’email di conferma dell’ordine al cliente.
- Registra la vendita in un database.
- Avvia un flusso di lavoro per la spedizione.
Ascolta questi eventi invece di aspettare che il cliente venga reindirizzato nuovamente al tuo sito web. Attivare l’evasione degli ordini solo dalla pagina di destinazione di Checkout non è affidabile. La configurazione dell’integrazione per l’ascolto di eventi asincroni ti consente di accettare diversi tipi di metodi di pagamento con una sola integrazione.
Scopri di più nella nostra guida all’evasione degli ordini di Checkout.
Gestisci i seguenti eventi durante la riscossione di pagamenti con Checkout:
Evento | Descrizione | Azione |
---|---|---|
checkout.session.completed | Inviato quando un cliente completa con esito positivo una sessione di Checkout. | Invia al cliente la conferma di un ordine ed evade l’ordine. |
checkout.session.async_payment_succeeded | Inviato quando un pagamento effettuato con un metodo di pagamento posticipato, ad esempio un debito diretto ACH, va a buon fine. | Invia al cliente la conferma di un ordine ed evade l’ordine. |
checkout.session.async_payment_failed | Inviato quando un pagamento effettuato con un metodo di pagamento ritardato, come un debito diretto ACH, non va a buon fine. | Informa il cliente dell’errore e riportalo all’interno della sessione per tentare di nuovo il pagamento. |
Esegui il test della tua integrazione
Per testare l’integrazione del modulo di pagamento in hosting su Stripe:
- Crea una sessione di Checkout.
- Compila i dettagli di pagamento con una delle modalità indicate nella tabella di seguito.
- Inserisci una data di scadenza futura per la carta.
- Inserisci un numero di 3 cifre per il CVC.
- Inserisci un qualsiasi codice postale.
- Fai clic su Paga. Verrai reindirizzato al tuo
success_
.url - 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 il riepilogo di Checkout con i dati di addebito e l’elenco degli articoli acquistati. Puoi utilizzare queste informazioni per evadere l’ordine.
Scopri di più su come testare la tua integrazione.
Per ulteriori informazioni su come testare la tua integrazione, consulta la sezione Test.
Carte di test
Numero | Descrizione |
---|---|
La transazione ha esito positivo e il pagamento viene elaborato automaticamente. | |
Richiede un’autenticazione 3D Secure 2 per la corretta esecuzione del pagamento. | |
Con un codice di rifiuto insufficient_ , la transazione ha sempre esito negativo. |
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 pagamentoLato server
Per impostazione predefinita, i metodi di pagamento utilizzati per effettuare un pagamento una tantum con Checkout non sono disponibili per usi futuri.
Salvare i metodi di pagamento per effettuare gli addebiti all’esterno della sessione
Puoi impostare Checkout in modo tale che salvi i metodi di pagamento utilizzati per un pagamento una tantum specificando l’argomento payment_intent_data.setup_future_usage. Questa opzione è utile se devi acquisire un metodo di pagamento registrato per utilizzarlo per commissioni future, ad esempio in caso di annullamento o no-show.
Se utilizzi Checkout in modalità subscription
, Stripe salva automaticamente i metodi di pagamento per effettuare gli addebiti dei pagamenti successivi. I metodi di pagamento con carta salvati utilizzando la modalità setup_
o subscription
non vengono visualizzati per gli acquisti successivi al primo in Checkout (ulteriori informazioni di seguito). Ti suggeriamo di utilizzare un testo personalizzato che includa link a tutte le condizioni relative all’utilizzo dei dati di pagamento salvati.
Attenzione
Le leggi sulla privacy globali sono complicate e dettagliate. Ti consigliamo di contattare il tuo team legale e di privacy prima di implementare setup_future_usage perché potrebbe avere effetti sul tuo attuale quadro normativo sulla privacy. Per ulteriori informazioni sul salvataggio dei dati di pagamento, consulta le linee guida emesse dal Comitato europeo per la protezione dei dati.
Salva i metodi di pagamento per precompilarle in Checkout
Per impostazione predefinita, Checkout utilizza Link per offrire ai clienti la possibilità di salvare e riutilizzare in modo sicuro i loro dati di pagamento. Se preferisci gestire in maniera autonoma le modalità di pagamento, utilizza saved_payment_method_options.payment_method_save quando crei una sessione di Checkout per consentire ai clienti di salvare le modalità di pagamento per gli acquisti futuri in Checkout.
Se specifichi questo parametro in modalità payment o subscription, viene visualizzata una casella di controllo facoltativa che consente ai clienti di salvare esplicitamente il metodo di pagamento per acquisti futuri. Quando i clienti selezionano questa casella di controllo, Checkout salva il metodo di pagamento con allow_redisplay: always. Checkout utilizza questo parametro per stabilire se un metodo di pagamento può essere precompilato per gli acquisti futuri. Quando utilizzi saved_
, non devi specificare setup_
per salvare il metodo di pagamento.
Devi specificare un oggetto Customer
se utilizzi saved_payment_method_options.payment_method_save. Per salvare un nuovo cliente, imposta la customer_creation della sessione di Checkout su always
, altrimenti la sessione non salva il cliente o il metodo di pagamento.
Se payment_
non viene specificato o se il cliente non accetta di salvare il metodo di pagamento, Checkout salva comunque i metodi di pagamento creati in modalità subscription
o utilizzando setup_
. Questi metodi di pagamento hanno un valore allow_
impostato su limited
, che impedisce che vengano precompilati per gli acquisti successivi al primo e consentono di rispettare le regole del circuito della carta e le normative sulla protezione dei dati. Scopri come modificare il comportamento predefinito abilitato da questi metodi e come modificare o ignorare il comportamento allow_
.
Nota
Puoi utilizzare Checkout per salvare le carte e altri metodi di pagamento per effettuare addebiti all’esterno della sessione, ma Checkout precompila solo le carte salvate. Scopri come precompilare le carte salvate. Per salvare un metodo di pagamento senza un pagamento iniziale, utilizza Checkout in modalità configurazione.
Consenti ai clienti di rimuovere i metodi di pagamento salvati
Per permettere ai clienti di eliminare un metodo di pagamento salvato ed evitare che riappaia per futuri acquisti, utilizza saved_payment_method_options.payment_method_remove durante la creazione di una sessione di Checkout.
Il cliente non può rimuovere un metodo di pagamento se è collegato a un abbonamento attivo e il cliente non ha un metodo di pagamento predefinito salvato per i pagamenti di fatture e abbonamenti.
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.