Passa al contenuto
Crea account
o
Accedi
Il logo della documentazione Stripe
/
Chiedi all'IA
Crea un account
Accedi
Inizia
Pagamenti
Ricavi
Per piattaforme e marketplace
Gestione del denaro
Risorse per sviluppatori
Panoramica
Informazioni sui pagamenti con Stripe
    Panoramica
    Accettare un pagamento
    Valute
    Pagamenti rifiutati
    Bonifici
    Pagamenti ricorrenti
    Autenticazione 3D Secure
    Rimborsare e annullare pagamenti
    Saldi e tempo di regolamento
    Ricevute
    Gestire gli eventi webhook
    Preparazione alla SCA
    API precedenti
Eseguire l'upgrade dell'integrazione
Analisi dei dati sui pagamenti
Pagamenti online
PanoramicaTrovare il caso d'uso più adattoUsa Managed Payments
Utilizzare Payment Links
Utilizza una pagina di completamento della transazione preintegrata
Crea un'integrazione personalizzata con Elements
Creare un'integrazione in-app
Metodi di pagamento
Aggiungere modalità di pagamento
Gestire i metodi di pagamento
Pagare più velocemente con Link
Interfacce di pagamento
Payment Links
Checkout
Elements per il Web
Pagamenti in-app
Scenari di pagamento
Gestire più valute
Flussi di pagamento personalizzati
Acquisizione flessibile
Orchestrazione
Pagamenti di persona
Terminal
Oltre i pagamenti
Costituire un'azienda
Criptovaluta
Commercio agentico
Financial Connections
Climate
Informazioni sulle frodi
Protezione contro le frodi di Radar
Gestisci le contestazioni
Verificare l'identità
Pagina inizialePagamentiAbout Stripe payments

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 un’integrazione per i pagamenti personalizzata incorporando componenti dell’interfaccia utente sul tuo sito utilizzando Stripe Elements. Confronta questa integrazione con gli altri tipi di integrazione di Stripe.

Il codice lato client e lato server crea un modulo di pagamento che accetta vari metodi di pagamento.

Paese del cliente
Formato
Tema
Layout
Per vedere come funziona Link per un utente di ritorno, inserisci l'indirizzo email email demo@stripe.com. Per vedere come funziona Link durante una nuova registrazione, inserisci qualsiasi altro indirizzo email e completa il resto del modulo. Questa demo mostra Google Pay o Apple Pay solo se disponi di una carta attiva con uno dei due wallet.

Sforzo di integrazione

API

Tipo di integrazione

Combina i componenti dell’interfaccia utente in un flusso di pagamento personalizzato

Personalizzazione dell'interfaccia utente

Personalizzazione a livello CSS con l’ API Appearance

Vuoi utilizzare Stripe Tax, sconti, spedizioni o la conversione di valuta?

Stripe dispone di un’integrazione Payment Element che gestisce per tuo conto tasse, sconti, spedizioni e conversioni di valuta. Vedi Creazione di una pagina di completamento della transazione per saperne di più.

Configurare Stripe
Lato server

Innanzitutto crea un account Stripe o accedi.

Utilizza le nostre librerie ufficiali per accedere all’API Stripe dalla tua applicazione:

Command Line
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
# Available as a gem sudo gem install stripe
Gemfile
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
# If you use bundler, you can add this line to your Gemfile gem 'stripe'

Creare un PaymentIntent
Lato server

Nota

Se vuoi presentare Payment Element senza prima creare un PaymentIntent, consulta la sezione Raccogliere i dati di pagamento prima di creare un intento.

L’oggetto PaymentIntent rappresenta la tua intenzione di riscuotere un pagamento da un cliente e tiene traccia dei tentativi di addebito e delle modifiche di stato durante l’intera procedura di pagamento.

Creare il PaymentIntent

Crea un PaymentIntent sul tuo server con un importo e una valuta. Nell’ultima versione dell’API, specificare il parametro automatic_payment_methods è facoltativo perché Stripe ne abilita la funzionalità per impostazione predefinita. Puoi gestire i metodi di pagamento dalla Dashboard. Stripe determina il reindirizzamento ai metodi di pagamento idonei in base a fattori quali l’importo della transazione, la valuta e il flusso di pagamento.

Stripe utilizza le impostazioni dei metodi di pagamento per visualizzare quelli abilitati. 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. Per sostituire i metodi di pagamento, elenca manualmente quelli che vuoi abilitare utilizzando l’attributo payment_method_types.

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/payment_intents \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d amount=1099 \ -d currency=usd \ -d "automatic_payment_methods[enabled]"=true

Nota

Decidi sempre quanto addebitare sul lato server, che è un ambiente sicuro, anziché sul client. In questo modo impedisci ai client malintenzionati di scegliere un proprio prezzo.

Recuperare la chiave privata client

L’oggetto PaymentIntent contiene una chiave privata client, che il lato client usa per completare la procedura di pagamento in modo sicuro. Per specificare la chiave privata sul lato client, puoi utilizzare approcci diversi.

Recupera la chiave privata client dall’endpoint sul server utilizzando la funzione fetchdel browser. Questo approccio è più adatto quando il lato client è un’applicazione con un’unica pagina, in particolare creata con un framework front-end moderno come React. Crea l’endpoint server che invia la chiave privata client:

main.rb
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
get '/secret' do intent = # ... Create or retrieve the PaymentIntent {client_secret: intent.client_secret}.to_json end

Quindi recupera la chiave privata client con JavaScript sul lato client:

(async () => { const response = await fetch('/secret'); const {client_secret: clientSecret} = await response.json(); // Render the form using the clientSecret })();

Acquisire i dati di pagamento
Lato 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.

Payment Element contiene un iframe che invia a Stripe le informazioni sul pagamento in modo sicuro tramite una connessione HTTPS. Evita di inserire Payment Element all’interno di un altro iframe, perché alcune modalità di pagamento richiedono il reindirizzamento a un’altra pagina per la conferma del pagamento.

Se scegli di utilizzare un iframe e desideri accettare Apple Pay o Google Pay, l’iframe deve avere l’attributo allow impostato su "payment *".

Affinché l’integrazione funzioni, l’indirizzo della pagina di pagamento deve iniziare con https:// anziché con http://. Puoi testare l’integrazione senza usare HTTPS, ma ricorda di abilitarlo quando sarà tutto pronto per accettare i pagamenti in modalità live.

Configurare Stripe.js

Payment Element è automaticamente disponibile come funzione di Stripe.js. Includi lo script Stripe.js nella tua pagina di pagamento aggiungendolo all’oggetto head del tuo file HTML. Carica sempre Stripe.js direttamente da js.stripe.com per mantenere la conformità alle norme PCI. Non includere lo script in un pacchetto e non ospitarne una copia personale.

checkout.html
<head> <title>Checkout</title> <script src="https://js.stripe.com/basil/stripe.js"></script> </head>

Crea un’istanza di Stripe con il seguente JavaScript nella pagina di pagamento:

checkout.js
// Set your publishable key: remember to change this to your live publishable key in production // See your keys here: https://dashboard.stripe.com/apikeys const stripe = Stripe(
'pk_test_TYooMQauvdEDq54NiTphI7jx'
);

Aggiungere Payment Element alla pagina di pagamento

Payment Element deve avere uno spazio dedicato nella pagina di pagamento. Crea un nodo DOM (contenitore) vuoto con ID univoco nel modulo di pagamento:

checkout.html
<form id="payment-form"> <div id="payment-element"> <!-- Elements will create form elements here --> </div> <button id="submit">Submit</button> <div id="error-message"> <!-- Display error message to your customers here --> </div> </form>

Dopo il caricamento del modulo precedente, crea un’istanza di Payment Element e montala sul nodo DOM del contenitore. Specifica la chiave privata client del passaggio precedente in options quando crei l’istanza di Elements:

Gestisci la chiave privata client con attenzione in quanto può effettuare l’addebito. Non devi registrarla, inserirla negli URL né mostrarla a nessuno se non al cliente.

checkout.js
const options = { clientSecret: '{{CLIENT_SECRET}}', // Fully customizable with appearance API. appearance: {/*...*/}, }; // Set up Stripe.js and Elements to use in checkout form, passing the client secret obtained in a previous step const elements = stripe.elements(options); // Create and mount the Payment Element const paymentElementOptions = { layout: 'accordion'}; const paymentElement = elements.create('payment', paymentElementOptions); paymentElement.mount('#payment-element');

Sfoglia Stripe Elements

Stripe Elements è un insieme di componenti dell’interfaccia utente preintegrati. Per personalizzare ulteriormente il modulo o raccogliere altre informazioni sul cliente, consulta la documentazione di Elements.

Il Payment Element visualizza un modulo dinamico che consente al cliente di scegliere una modalità di pagamento. Per ogni modalità di pagamento, il modulo richiede automaticamente al cliente di inserire tutti i dati di pagamento necessari.

Personalizza l’aspetto

Personalizza Payment Element in base al design del tuo sito specificando l’oggetto appearance in options al momento della creazione del provider Elements.

Raccogli indirizzi

Per impostazione predefinita, Payment Element raccoglie solo i dettagli relativi all’indirizzo di fatturazione necessari. Per acquisire l’indirizzo di fatturazione completo di un cliente (ad esempio, per calcolare l’imposta su beni e servizi digitali) o l’indirizzo di spedizione, utilizza Address Element.

Richiedi il token esercente di Apple Pay

Se hai configurato la tua integrazione per accettare pagamenti Apple Pay, ti consigliamo di configurare l’interfaccia di Apple Pay in modo che restituisca un token esercente che consente di abilitare le transazioni avviate dall’esercente (MIT). Richiedi il tipo di token esercente pertinente in Payment Element.

FacoltativoSalva e recupera le modalità di pagamento del cliente

Puoi configurare Payment Element per salvare i metodi di pagamento del cliente per usi futuri. Questa sezione mostra come integrare la funzione dei metodi di pagamento salvate, che consente a Payment Element di:

  • Richiedere agli acquirenti il consenso per il salvataggio di un metodo di pagamento
  • Salva le modalità di pagamento quando gli acquirenti forniscono il consenso
  • Mostra le modalità di pagamento salvate agli acquirenti per gli acquisti futuri
  • Aggiorna automaticamente le carte smarrite o scadute quando gli acquirenti le sostituiscono
Payment Element e una casella di controllo del metodo di pagamento salvato

Salva i metodi di pagamento.

Payment Element con un metodo di pagamento salvato selezionato

Riutilizza un metodo di pagamento salvato in precedenza.

Abilita il salvataggio del metodo di pagamento in Payment Element

Quando crei un PaymentIntent sul server, crea anche una CustomerSession fornendo l’ID cliente e abilitando il componente payment_element per la tua sessione. Configura le funzionalità dei metodi di pagamento salvati che vuoi abilitare. Ad esempio, abilitando payment_method_save, viene visualizzata una casella di controllo che invita i clienti a salvare i dati di pagamento per usi futuri.

Puoi specificare setup_future_usage in una PaymentIntent o in una sessione di Checkout per ignorare il comportamento predefinito per il salvataggio dei metodi di pagamento. In questo modo, salvi automaticamente il metodo di pagamento per uso futuro, anche se il cliente non sceglie esplicitamente di salvarlo.

Attenzione

Se permetti agli acquirenti di rimuovere i metodi di pagamento salvati abilitando payment_method_remove, ci saranno effetti sugli abbonamenti che dipendono da tale metodo di pagamento. La rimozione del metodo di pagamento scollega il PaymentMethod dal cliente.

server.rb
Ruby
Python
PHP
Node.js
Java
Go
.NET
No results
# Set your secret key. Remember to switch to your live secret key in production. # See your keys here: https://dashboard.stripe.com/apikeys Stripe.api_key =
'sk_test_BQokikJOvBiI2HlWgH4olfQ2'
post '/create-intent-and-customer-session' do intent = Stripe::PaymentIntent.create({ amount: 1099, currency: 'usd', # In the latest version of the API, specifying the `automatic_payment_methods` parameter # is optional because Stripe enables its functionality by default. automatic_payment_methods: {enabled: true}, customer:
{{CUSTOMER_ID}}
, }) customer_session = Stripe::CustomerSession.create({ customer:
{{CUSTOMER_ID}}
, components: { payment_element: { enabled: true, features: { payment_method_redisplay: 'enabled', payment_method_save: 'enabled', payment_method_save_usage: 'off_session', payment_method_remove: 'enabled', }, }, }, }) { client_secret: intent.client_secret, customer_session_client_secret: customer_session.client_secret }.to_json end

La tua istanza Elements utilizza la chiave privata client della CustomerSession per accedere ai metodi di pagamento salvati del cliente. Gestisci gli errori correttamente quando crei l’oggetto CustomerSession. Se si verifica un errore, non devi fornire la chiave privata client della CustomerSession all’istanza Elements, in quanto è facoltativa.

Crea l’istanza Elements utilizzando le chiavi private client sia per PaymentIntent che per CustomerSession. Poi utilizza questa istanza di Elements per creare un Payment Element.

checkout.js
// Create the CustomerSession and obtain its clientSecret const res = await fetch("/create-intent-and-customer-session", { method: "POST" }); const { customer_session_client_secret: customerSessionClientSecret } = await res.json(); const elementsOptions = { clientSecret: '{{CLIENT_SECRET}}', customerSessionClientSecret, // Fully customizable with appearance API. appearance: {/*...*/}, }; // Set up Stripe.js and Elements to use in checkout form, passing the client secret // and CustomerSession's client secret obtained in a previous step const elements = stripe.elements(elementsOptions); // Create and mount the Payment Element const paymentElementOptions = { layout: 'accordion'}; const paymentElement = elements.create('payment', paymentElementOptions); paymentElement.mount('#payment-element');

Quando confermi il PaymentIntent, Stripe.js configura automaticamente l’impostazione setup_future_usage sul PaymentIntent e allow_redisplay sul PaymentMethod, a condizione che il cliente abbia selezionato la casella per salvare i propri dati di pagamento.

Imporre la nuova raccolta del CVC

Facoltativamente, specifica require_cvc_recollection quando crei il PaymentIntent per imporre la nuova raccolta del CVC quando un cliente paga con una carta.

Rileva la selezione di una modalità di pagamento salvata

Quando viene selezionata una modalità di pagamento salvata, per controllare i contenuti dinamici ascolta l’evento change del Payment Element, che viene popolato con la modalità di pagamento selezionata.

checkout.js
paymentElement.on('change', function(event) { if (event.value.payment_method) { // Control dynamic content if a saved payment method is selected } })

FacoltativoLink nella pagina di pagamento
Lato client

Consenti ai clienti di pagare più rapidamente utilizzando Link in Payment Element. Puoi compilare automaticamente le informazioni per qualsiasi cliente connesso che già utilizza Link, indipendentemente dal fatto che abbia inizialmente salvato le proprie informazioni in Link con un’altra attività. L’integrazione predefinita di Payment Element include un messaggio Stripe sul modulo della carta. Per gestire Link in Payment Element, accedi alle impostazioni del metodo di pagamento.

Esegui l'autenticazione o l'iscrizione a Link direttamente nel Payment Element durante il pagamento

Acquisisci l’indirizzo email dei clienti per l’autenticazione o l’iscrizione a Link

Opzioni di integrazione

Esistono due modi per integrare Link con il Payment Element. Tra questi, Stripe consiglia di specificare un indirizzo email del cliente nel Payment Element (se disponibile). Ricorda di considerare come funziona la procedura di pagamento quando decidi tra queste opzioni:

Opzione di integrazioneFlusso di pagamentoDescrizione
Specifica l’indirizzo email di un cliente nel Payment Element Consigliato
  • Il cliente inserisce il proprio indirizzo email prima di raggiungere la pagina di pagamento (in una precedente fase di creazione dell’account, ad esempio).
  • Preferisci utilizzare il campo di inserimento dell’indirizzo email.
Specifica sistematicamente l’indirizzo email del cliente nel Payment Element. In questo scenario, un cliente effettua l’autenticazione a Link direttamente tramite il modulo di pagamento e non da un componente dell’interfaccia utente separato.
Raccogliere l’indirizzo email del cliente nel Payment ElementI tuoi clienti inseriscono il loro indirizzo email ed effettuano l’autenticazione o l’iscrizione a Link direttamente nel Payment Element durante il pagamento.Se un cliente non si è iscritto a Link e sceglie una modalità di pagamento supportata nel Payment Element, gli viene richiesto di salvare i propri dati tramite Link. Per coloro che si sono già iscritti, Link compila automaticamente le informazioni di pagamento.

FacoltativoRecuperare gli aggiornamenti dal server
Lato client

Una volta visualizzato Payment Element, potresti aggiornare gli attributi sul PaymentIntent, come l’importo (ad es. per i codici sconto o costi di spedizione). Puoi aggiornare il PaymentIntent sul tuo server e poi chiamare elements.fetchUpdates per vedere il nuovo importo in Payment Element. Questo esempio mostra come creare l’endpoint del server che aggiorna l’importo sul PaymentIntent:

main.rb
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
get '/update' do intent = Stripe::PaymentIntent.update( '{{PAYMENT_INTENT_ID}}', {amount: 1499}, ) {status: intent.status}.to_json end

Questo esempio mostra come aggiornare l’interfaccia utente in modo da vedere queste modifiche lato client:

(async () => { const response = await fetch('/update'); if (response.status === 'requires_payment_method') { const {error} = await elements.fetchUpdates(); } })();

Inviare il pagamento a Stripe
Lato client

Usa stripe.confirmPayment per completare il pagamento con i dati di Payment Element. Fornisci a questa funzione un return_url per indicare dove Stripe deve reindirizzare l’utente dopo il completamento del pagamento. L’utente può essere dapprima reindirizzato su un sito intermedio, come una pagina di autorizzazione bancaria, prima di essere reindirizzato al return_url. In caso di esito positivo, i pagamenti con carta vengono immediatamente reindirizzati al return_url.

Se vuoi impedire il reindirizzamento per i pagamenti con carta una volta completato il pagamento, puoi impostare il reindirizzamento su if_required. In questo modo vengono reindirizzati solo i clienti che utilizzano metodi di pagamento basati sul reindirizzamento.

checkout.js
const form = document.getElementById('payment-form'); form.addEventListener('submit', async (event) => { event.preventDefault(); const {error} = await stripe.confirmPayment({ //`Elements` instance that was used to create the Payment Element elements, confirmParams: { return_url: 'https://example.com/order/123/complete', }, }); if (error) { // This point will only be reached if there is an immediate error when // confirming the payment. Show error to your customer (for example, payment // details incomplete) const messageContainer = document.querySelector('#error-message'); messageContainer.textContent = error.message; } else { // Your customer will be redirected to your `return_url`. For some payment // methods like iDEAL, your customer will be redirected to an intermediate // site first to authorize the payment, then redirected to the `return_url`. } });

Assicurati che return_url corrisponda a una pagina del tuo sito web che fornisce lo stato del pagamento. Quando Stripe reindirizza il cliente a return_url, fornisce i seguenti parametri di ricerca dell’URL:

ParametroDescrizione
payment_intentIdentificativo univoco per il PaymentIntent
payment_intent_client_secretLa chiave privata client dell’oggetto PaymentIntent.

Attenzione

Se disponi di strumenti che tracciano la sessione del browser del cliente, potresti aver bisogno di aggiungere il dominio stripe.com all’elenco di esclusione dei referrer. I reindirizzamenti fanno sì che alcuni strumenti creino nuove sessioni, il che ti impedisce di tracciare la sessione completa.

Utilizza uno dei parametri di ricerca per recuperare il PaymentIntent. Controlla lo stato del PaymentIntent per decidere cosa mostrare ai tuoi clienti. Quando specifichi il return_url, puoi anche aggiungere i tuoi parametri di ricerca che verranno conservati durante la procedura di reindirizzamento.

status.js
// Initialize Stripe.js using your publishable key const stripe = Stripe(
'pk_test_TYooMQauvdEDq54NiTphI7jx'
); // Retrieve the "payment_intent_client_secret" query parameter appended to // your return_url by Stripe.js const clientSecret = new URLSearchParams(window.location.search).get( 'payment_intent_client_secret' ); // Retrieve the PaymentIntent stripe.retrievePaymentIntent(clientSecret).then(({paymentIntent}) => { const message = document.querySelector('#message') // Inspect the PaymentIntent `status` to indicate the status of the payment // to your customer. // // Some payment methods will [immediately succeed or fail][0] upon // confirmation, while others will first enter a `processing` state. // // [0]: https://stripe.com/docs/payments/payment-methods#payment-notification switch (paymentIntent.status) { case 'succeeded': message.innerText = 'Success! Payment received.'; break; case 'processing': message.innerText = "Payment processing. We'll update you when payment is received."; break; case 'requires_payment_method': message.innerText = 'Payment failed. Please try another payment method.'; // Redirect your user back to your payment page to attempt collecting // payment again break; default: message.innerText = 'Something went wrong.'; break; } });

Gestire gli eventi successivi al pagamento
Lato server

Stripe invia un evento payment_intent.succeeded quando il pagamento viene completato. Utilizza lo strumento webhook Dashboard o segui la guida ai webhook per ricevere questi eventi ed eseguire azioni come l’invio di una email per la conferma di un ordine al cliente, la registrazione della vendita in un database o l’avvio del flusso di lavoro per una spedizione.

Ascolta questi eventi invece di attendere una chiamata di ritorno dal client. Sul client, il cliente potrebbe chiudere la finestra del browser o uscire dall’app prima dell’esecuzione della chiamata di ritorno e i client malintenzionati potrebbero manipolare la risposta. La configurazione dell’integrazione per l’ascolto di eventi asincroni ti consente di accettare diversi tipi di modalità di pagamento con una sola integrazione.

Oltre alla gestione dell’evento payment_intent.succeeded, è consigliabile gestire altri eventi durante la riscossione di pagamenti tramite Payment Element:

EventoDescrizioneAzione
payment_intent.succeededInviato quando un cliente ha disposto un pagamento con esito positivo.Invia al cliente la conferma di un ordine ed evade l’ordine.
payment_intent.processingInviato quando un cliente ha correttamente disposto un pagamento che non è stato ancora completato. Questo evento viene di solito inviato quando il cliente dispone un addebito bancario. Sarà poi seguito da un evento payment_intent.succeeded o da un evento payment_intent.payment_failed.Invia al cliente la conferma di un ordine che indica il pagamento in sospeso. Per i beni digitali, potresti voler evadere l’ordine senza attendere il completamento del pagamento.
payment_intent.payment_failedInviato quando il cliente ha tentato un pagamento che non è andato a buon fine.Se un pagamento passa da processing a payment_failed, offri al cliente un altro tentativo di pagamento.

Esegui il test della tua integrazione

Per testare l’integrazione dei pagamenti personalizzati:

  1. Crea un Payment Intent e recupera la chiave privata client.
  2. 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.
  3. Invia il pagamento a Stripe. Verrai reindirizzato al tuo return_url.
  4. Vai alla Dashboard e cerca il pagamento nella pagina Transazioni. Se il pagamento è andato a buon fine, lo vedrai nell’elenco.
  5. 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.

Scopri di più su come testare la tua integrazione.

Numero di cartaScenarioCome eseguire il test
Il pagamento con carta ha esito positivo e non richiede l’autenticazione.Compila il modulo della carta di credito utilizzando il numero di carta di credito con scadenza, CVC e codice postale.
Il pagamento con carta richiede l’autenticazione.Compila il modulo della carta di credito utilizzando il numero di carta di credito con scadenza, CVC e codice postale.
La carta viene rifiutata con un codice di rifiuto del tipo insufficient_funds.Compila il modulo della carta di credito utilizzando il numero di carta di credito con scadenza, CVC e codice postale.
La carta UnionPay ha una lunghezza variabile di 13-19 cifre.Compila il modulo della carta di credito utilizzando il numero di carta di credito con scadenza, CVC e codice postale.

Per ulteriori informazioni su come testare la tua integrazione, consulta la sezione Test.

FacoltativoAggiungere altre modalità di pagamento

Payment Element supporta molti metodi di pagamento per impostazione predefinita. Devi adottare misure aggiuntive per attivare e visualizzare alcuni metodi di pagamento.

Affirm

Per iniziare a usare Affirm, devi abilitarlo nella Dashboard. Quando crei un PaymentIntent con il metodo di pagamento Affirm, devi specificare un indirizzo di spedizione. Questo esempio suggerisce di indicare i dati relativi alla spedizione sul client dopo che il cliente ha selezionato il metodo di pagamento. Scopri ulteriori dettagli sull’utilizzo di Affirm con Stripe.

checkout.js
const form = document.getElementById('payment-form'); form.addEventListener('submit', async (event) => { event.preventDefault(); const {error} = await stripe.confirmPayment({ //`Elements` instance that was used to create the Payment Element elements, confirmParams: { return_url: 'https://my-site.com/order/123/complete', shipping: { name: 'Jenny Rosen', address: { line1: '1 Street', city: 'Seattle', state: 'WA', postal_code: '95123', country: 'US', }, }, }, }); if (error) { // This point is reached if there's an immediate error when // confirming the payment. Show error to your customer (e.g., payment // details incomplete) const messageContainer = document.querySelector('#error-message'); messageContainer.textContent = error.message; } else { // Your customer is redirected to your `return_url`. For some payment // methods like iDEAL, your customer is redirected to an intermediate // site first to authorize the payment, then redirected to the `return_url`. } });

Testare Affirm

Scopri come testare diversi scenari utilizzando la tabella seguente:

ScenarioCome eseguire il test
Il tuo cliente paga correttamente con Affirm.Compila il modulo (assicurati di inserire un indirizzo di spedizione) e autentica il pagamento.
Il cliente non riesce a eseguire l’autenticazione con la pagina di reindirizzamento di Affirm.Compila il modulo e fai clic su Interrompi pagamento di test nella pagina di reindirizzamento.

Afterpay (Clearpay)

Quando crei un PaymentIntent con il metodo di pagamento Afterpay, devi specificare un indirizzo di spedizione. Scopri ulteriori dettagli sull’utilizzo di Afterpay con Stripe.

Puoi gestire i metodi di pagamento dalla Dashboard. Stripe determina il reindirizzamento ai metodi di pagamento idonei in base a fattori quali l’importo della transazione, la valuta e il flusso di pagamento. Nell’esempio che segue viene utilizzato l’attributo automatic_payment_methods, ma puoi elencare afterpay_clearpay con i tipi di metodi di pagamento. Nell’ultima versione dell’API, specificare il parametro automatic_payment_methods è facoltativo perché Stripe ne abilita la funzionalità per impostazione predefinita. Indipendentemente dall’opzione scelta, assicurati di abilitare Afterpay Clearpay nella Dashboard.

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/payment_intents \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d amount=1099 \ -d currency=usd \ -d "automatic_payment_methods[enabled]"=true \ -d "shipping[name]"="Jenny Rosen" \ -d "shipping[address][line1]"="1234 Main Street" \ -d "shipping[address][city]"="San Francisco" \ -d "shipping[address][state]"=CA \ -d "shipping[address][country]"=US \ -d "shipping[address][postal_code]"=94111

Testare Afterpay (Clearpay)

Scopri come testare diversi scenari utilizzando la tabella seguente:

ScenarioCome eseguire il test
Il tuo cliente paga correttamente con Afterpay.Compila il modulo (assicurati di inserire un indirizzo di spedizione) e autentica il pagamento.
Il cliente non riesce a eseguire l’autenticazione con la pagina di reindirizzamento di Afterpay.Compila il modulo e fai clic su Interrompi pagamento di test nella pagina di reindirizzamento.

Apple Pay e Google Pay

Quando abiliti i pagamenti con carta, vengono visualizzati Apple Pay e Google Pay per i clienti il cui ambiente soddisfa le condizioni di visualizzazione del wallet. Inoltre, per accettare pagamenti da questi wallet:

  • Abilitali nelle impostazioni dei metodi di pagamento. Apple Pay è abilitato per impostazione predefinita.
  • Offri la tua applicazione su HTTPS in fase di sviluppo e produzione.
  • Registra il tuo dominio.
  • Recupera gli aggiornamenti dal server se aggiorni l’importo di un PaymentIntent per mantenere sincronizzato il metodo di pagamento del wallet.

Test regionali
India

Stripe Elements non supporta Google Pay o Apple Pay per gli account e i clienti Stripe in India. Pertanto, non è possibile testare l’integrazione con Google Pay o Apple Pay se l’indirizzo IP del tester è in India, anche se l’account Stripe si trova al di fuori dell’India.

Ulteriori informazioni sull’utilizzo di Apple Pay e Google Pay con Stripe.

Addebito diretto ACH

Quando usi Payment Element con l’addebito diretto ACH come modalità di pagamento, segui questa procedura:

  1. Crea un oggetto Customer.

    Command Line
    cURL
    Stripe CLI
    Ruby
    Python
    PHP
    Java
    Node.js
    Go
    .NET
    No results
    curl -X POST https://api.stripe.com/v1/customers \ -u "
    sk_test_BQokikJOvBiI2HlWgH4olfQ2
    :"
  2. Specifica l’ID cliente durante la creazione del PaymentIntent.

    Command Line
    cURL
    Stripe CLI
    Ruby
    Python
    PHP
    Java
    Node.js
    Go
    .NET
    No results
    curl https://api.stripe.com/v1/payment_intents \ -u "
    sk_test_BQokikJOvBiI2HlWgH4olfQ2
    :"
    \ -d amount=1099 \ -d currency=usd \ -d setup_future_usage=off_session \ -d customer={{CUSTOMER_ID}} \ -d "payment_method_types[]"=us_bank_account
  3. Seleziona un metodo di verifica.

Quando utilizzi la modalità di pagamento con addebito diretto ACH con Payment Element, puoi selezionare solo automatic o instant.

Ulteriori informazioni sull’utilizzo dell’Addebito diretto ACH con Stripe.

Testare l’addebito diretto ACH

ScenarioCome eseguire il test
Il tuo cliente paga correttamente con un conto bancario statunitense usando la verifica istantanea.Seleziona Conto bancario statunitense e compila il modulo. Fai clic sull’istituto di test. Segui le istruzioni nella finestra modale per collegare il tuo conto bancario. Fai clic sul pulsante di pagamento.
Il tuo cliente paga correttamente con un conto bancario statunitense usando i microdepositi.Seleziona Conto bancario statunitense e compila il modulo. Fai clic su Inserisci le coordinate bancarie manualmente. Segui le istruzioni nella finestra modale per collegare il tuo conto bancario. Puoi usare questi numeri di conto di test. Fai clic sul pulsante di pagamento.
Il cliente non riesce a completare la procedura di collegamento del conto bancario.Seleziona Conto bancario statunitense e fai clic sull’istituto di test oppure su Inserisci le coordinate bancarie manualmente. Chiudi la finestra modale senza completare l’operazione.

BLIK

Quando si usa Payment Element con BLIK, l’utente può chiudere la finestra modale richiedendo di autorizzare il pagamento nella propria app bancaria. In tal modo l’utente verrà reindirizzato al tuo return_url e non tornerà alla pagina di pagamento. Scopri ulteriori dettagli sull’utilizzo di BLIK con Stripe.

Per gestire la chiusura della finestra modali da parte degli utenti, nel gestore lato server del tuo return_url, controlla la voce status del Payment Intent per sapere se è andato a buon fine, ovvero succeeded, o se sono necessarie ulteriori operazioni, ovvero requires_action, (vale a dire che l’utente ha chiuso la finestra modale senza autorizzazione), e comportati di conseguenza.

Modalità di pagamento con codice QR

Quando si usa Payment Element con una modalità di pagamento basata su codice QR (WeChat Pay, PayNow, Pix, PromptPay, Cash App Pay), l’utente può chiudere la finestra modale del codice QR. In tal modo l’utente verrà reindirizzato al tuo return_url e non tornerà alla pagina di pagamento.

Per gestire la chiusura delle finestre modali dei codici QR da parte dei clienti, nel gestore lato server del tuo return_url, controlla la voce status del Payment Intent per sapere se è andato a buon fine, ovvero succeeded, o se sono necessarie ulteriori operazioni, ovvero requires_action, (vale a dire che l’utente ha chiuso la finestra modale senza effettuare il pagamento), e comportati di conseguenza.

In alternativa, impedisci il reindirizzamento automatico al tuo return_url specificando un parametro facoltativo avanzato redirect=if_required, che blocca il reindirizzamento alla chiusura della finestra modale di un codice QR.

Cash App Pay

Payment Element restituisce un modulo dinamico in modo diverso nel web desktop o mobile poiché utilizza diversi metodi di autenticazione del cliente. Scopri ulteriori dettagli sull’utilizzo di Cash App Pay con Stripe.

Cash App Pay è un metodo di pagamento con reindirizzamento su web mobile. Reindirizza il cliente a Cash App in modalità live o a una pagina di pagamento di test in un ambiente di test. Una volta completato il pagamento, il cliente viene reindirizzato al return_url, indipendentemente dal fatto che tu abbia impostato redirect=if_required.

PayPal

Per utilizzare PayPal, assicurati di avere un dominio registrato.

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.

Vedi anche

  • Stripe Elements
  • Configurare pagamenti futuri
  • Salvare i dati di pagamento durante il pagamento
  • Calcolare l’imposta sulle vendite, la GST e l’IVA nel flusso di pagamento
Questa pagina è stata utile?
SìNo
  • Hai bisogno di aiuto? Contatta l'assistenza clienti.
  • Partecipa al nostro programma di accesso anticipato.
  • Dai un'occhiata al nostro registro delle modifiche.
  • Domande? Contattaci.
  • LLM? Leggi llms.txt.
  • Realizzato da Markdoc
Code quickstart
Guide correlate
API Elements Appearance
Altri scenari di pagamento
Come funzionano le carte