Passa al contenuto
Crea account
o
Accedi
Il logo della documentazione Stripe
/
Chiedi all'IA
Crea un account
Accedi
Inizia
Pagamenti
Automazione finanziaria
Per piattaforme e marketplace
Gestione del denaro
Strumenti di sviluppo
Inizia
Pagamenti
Automazione finanziaria
Inizia
Pagamenti
Automazione finanziaria
Per piattaforme e marketplace
Gestione del denaro
PanoramicaExplore all products
Start building
Avviare lo sviluppo
Progetti di esempio
Informazioni sulle API
    Presentazione dell'API
    API Payment Intents
      Come funzionano i PaymentIntents
      Aggiornamenti di stato dei pagamenti
      Asynchronous Capture
      Confronto con Charges
    API Setup Intents
    Modalità di pagamento
    API precedenti
    Fasi di rilascio
Sviluppare con gli LLM
Utilizza Stripe senza dover scrivere codice
Configura Stripe
Crea un account
Prodotti e prezzi
Dashboard per il web
Dashboard per dispositivi mobili
Passare a Stripe
Eseguire la migrazione dei dati dei clienti
Eseguire la migrazione dei dati dei pagamenti
Esegui la migrazione degli abbonamenti
Gestire il rischio di frode
Informazioni sulle frodi
Protezione contro le frodi di Radar
Gestisci le contestazioni
Verificare l'identità
Regulatory support
Pagina inizialeIniziaAbout the APIs

API Payment Intents

Usare l'API Payment Intents per i pagamenti con Stripe

Copia pagina

Usa l’API Payment Intents per creare un’integrazione in grado di gestire flussi di pagamento complessi con uno stato che cambia nel corso del ciclo di vita del PaymentIntent. Questa API monitora il pagamento dalla creazione fino al completamento della transazione e attiva ulteriori passaggi di autenticazione quando richiesto.

Ecco alcuni dei vantaggi derivanti dall’uso dell’API Payment Intents:

  • Gestione dell’autenticazione automatica
  • Nessun doppio addebito
  • Nessun problema di chiave di idempotenza
  • Supporto dell’autenticazione forte del cliente (SCA) e di modifiche normative simili

Una serie completa di API

Utilizza l’API Payment Intents insieme alle API Setup Intents e Payment Methods. Queste API ti consentono di gestire pagamenti dinamici, ad esempio aggiungendo un protocollo di autenticazione come 3D Secure, e preparare l’attività per l’espansione in altri Paesi, supportando al tempo stesso le nuove normative e i metodi di pagamento locali.

La creazione di un’integrazione con l’API Payment Intents comporta due azioni: creazione e conferma di un PaymentIntent. Di norma ogni PaymentIntent è correlato a un singolo carrello degli acquisti o una singola sessione cliente nell’applicazione. Il PaymentIntent incapsula i dettagli sulla transazione, come le modalità di pagamento supportate, l’importo da riscuotere e la valuta desiderata.

Creare un PaymentIntent

Per iniziare consulta la guida su come accettare un pagamento. La guida descrive come creare un PaymentIntent sul server e passare al client la relativa chiave privata client anziché l’intero oggetto PaymentIntent.

Quando crei il PaymentIntent, puoi specificare opzioni quali l’importo e la valuta:

Command Line
cURL
curl https://api.stripe.com/v1/payment_intents \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d amount=1099 \ -d currency=usd

Pratiche ottimali

  • Consigliamo di creare un PaymentIntent non appena si conosce l’importo, ad esempio quando il cliente inizia la procedura di pagamento, per monitorare l’imbuto di acquisto. Se l’importo cambia, puoi aggiornare il suo importo. Ad esempio, se il cliente esce dalla procedura di pagamento e aggiunge nuovi articoli al carrello, potrebbe essere necessario aggiornare l’importo quando avvia nuovamente tale procedura.

  • Se la procedura di pagamento viene interrotta e ripresa in seguito, tenta di riutilizzare lo stesso PaymentIntent anziché crearne uno nuovo. Ogni PaymentIntent ha un ID univoco che ne consente il recupero in caso di necessità. Nel modello di dati dell’applicazione puoi archiviare l’ID del PaymentIntent nel carrello o nella sessione del cliente per facilitare il recupero. Il vantaggio del riutilizzo del PaymentIntent sta nel fatto che lo stato dell’oggetto consente di tenere traccia di qualsiasi tentativo di pagamento non riuscito per un determinato carrello o una determinata sessione.

  • Ricorda di fornire una chiave di idempotenza per evitare di creare PaymentIntent doppi per lo stesso acquisto. Questa chiave è solitamente basata sull’ID che associ al carrello o alla sessione cliente nell’applicazione.

Passare la chiave privata client al lato client

Il PaymentIntent contiene una chiave privata client, ovvero una chiave univoca per il singolo PaymentIntent. Sul lato client dell’applicazione, Stripe.js utilizza la chiave privata client come parametro quando vengono richiamate le funzioni (ad esempio stripe.confirmCardPayment o stripe.handleCardAction) per completare il pagamento.

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
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 })();

Attenzione

La chiave privata client può essere utilizzata per completare la procedura di pagamento con l’importo specificato nel PaymentIntent. Non devi registrarla né incorporarla negli URL o esporla a persone diverse dal cliente. Accertati di aver abilitato il protocollo TLS su tutte le pagine che includono la chiave privata client.

Dopo il pagamento

Una volta che il client avrà confermato il pagamento, la procedura ottimale consiste nel monitoraggio dei webhook da parte del server per rilevare quando il pagamento va a buon fine o non riesce.

Un PaymentIntent potrebbe avere più di un oggetto Charge associato se sono stati effettuati più tentativi di pagamento, come la ripetizione dei tentativi. Per ogni addebito puoi controllare l’esito e i dettagli della modalità di pagamento utilizzata.

Ottimizzazione delle modalità di pagamento per pagamenti futuri

Il parametro setup_future_usage salva le modalità di pagamento per un riutilizzo in futuro. Per le carte, ottimizza inoltre i tassi di autorizzazione in conformità con la legislazione locale e i regolamenti del circuito, ad esempio la SCA. Per stabilire il valore da utilizzare, valuta in che modo intendi utilizzare questa modalità di pagamento in futuro.

Come intendi utilizzare la modalità di pagamentovalore enum setup_future_usage da utilizzare
Solo pagamenti all’interno della sessioneon_session
Solo pagamenti all’esterno della sessioneoff_session
Pagamenti sia all’interno sia all’esterno della sessioneoff_session

Con una carta configurata per i pagamenti all’interno della sessione puoi comunque accettare i pagamenti all’esterno della sessione, ma è più probabile che la banca rifiuti tali pagamenti e richieda l’autenticazione al titolare della carta.

Il seguente esempio illustra come creare un PaymentIntent e specificare setup_future_usage:

Command Line
cURL
curl https://api.stripe.com/v1/payment_intents \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d amount=1099 \ -d currency=usd \ -d setup_future_usage=off_session

Attenzione

È più probabile che le configurazioni per i pagamenti all’esterno della sessione presentino un livello di complessità più alto. Usa la configurazione all’interno della sessione se non hai intenzione di accettare pagamenti al’esterno della sessione con la carta salvata.

Voce di estratto conto dinamica

Per impostazione predefinita, la voce per gli estratti conto del tuo account Stripe appare sugli estratti conto del cliente ogni volta che addebiti un importo sulla sua carta. Per specificare una voce diversa per ogni pagamento, includi il parametro statement_descriptor.

Command Line
cURL
curl https://api.stripe.com/v1/payment_intents \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d amount=1099 \ -d currency=usd \ -d "payment_method_types[]"=card \ -d statement_descriptor="Custom descriptor"

Le voci di estratto conto hanno un limite di 22 caratteri, non possono utilizzare i caratteri speciali <, >, ', " o * e non devono essere composte da soli numeri. Quando utilizzi le voci di estratto conto dinamiche, il testo dinamico viene aggiunto dopo il prefisso della voce di estratto conto impostata nella Dashboard Stripe. Vengono aggiunti anche un asterisco (*) e uno spazio per separare la voce di estratto conto predefinita dalla porzione dinamica. Questi 2 caratteri vengono inclusi nel calcolo del limite di 22 caratteri.

Archiviare informazioni nei metadati

Stripe supporta l’aggiunta dei metadati alle richieste più comuni effettuate, ad esempio l’elaborazione dei pagamenti. I metadati non vengono mostrati ai clienti né considerati per determinare se un pagamento deve essere o meno rifiutato o bloccato dal nostro sistema di prevenzione delle frodi.

Attraverso i metadati, puoi associare informazioni che ritieni importanti all’attività di Stripe.

Tutti i metadati che includi sono visibili nella Dashboard (ad esempio, nella pagina di un singolo pagamento) e sono inoltre disponibili nei report comuni. Ad esempio, puoi associare l’ID ordine del tuo negozio al PaymentIntent per tale ordine. Questo ti consente di riconciliare facilmente i pagamenti in Stripe con gli ordini nel tuo sistema.

Se utilizzi Radar for Fraud Teams, puoi specificare come metadati informazioni aggiuntive sui clienti e sugli ordini. Poi puoi scrivere regole Radar con gli attributi dei metadati e disporre nella Dashboard di maggiori informazioni, accelerando così la procedura di revisione.

Quando crea un addebito, un PaymentIntent vi copia i relativi metadati. I successivi aggiornamenti dei metadati del PaymentIntent non modificheranno i metadati degli addebiti precedentemente creati dal PaymentIntent stesso.

Command Line
cURL
curl https://api.stripe.com/v1/payment_intents \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d amount=1099 \ -d currency=usd \ -d "payment_method_types[]"=card \ -d "metadata[order_id]"=6735

Attenzione

Non archiviare dati sensibili (informazioni sull’identità, dati di carte, ecc.) come metadati o nel parametro description del PaymentIntent.

Vedi anche

  • Accettare un pagamento online
  • Accettare un pagamento in un’app iOS
  • Accettare un pagamento in un’app per Android
  • Configurare pagamenti futuri
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
Guide correlate
Come funzionano i PaymentIntent
Prodotti utilizzati
Payments