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
    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
      Addebiti
        Migrare alle nuove API
      Origini
      Compare to PaymentIntents to Charges
Eseguire l'upgrade dell'integrazione
Analisi dei dati sui pagamenti
Pagamenti online
PanoramicaTrovare il caso d'uso più adattoManaged Payments
Utilizzare Payment Links
Creare una pagina di pagamento
Creare un'integrazione iniziale
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
Elements 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
Financial Connections
Climate
Informazioni sulle frodi
Protezione contro le frodi di Radar
Gestisci le contestazioni
Verificare l'identità
Pagina inizialePagamentiAbout Stripe paymentsOlder APIsCharges

Migrare all'API Payment Intents

Ti interessa utilizzare Stripe Billing, Tax, sconti, spedizione o conversione di valuta?

Stiamo sviluppando un’integrazione di Payment Element che gestisce abbonamenti, imposte, sconti, spedizione e conversione di valuta. Per ulteriori informazioni, consulta la guida Creare una pagina di pagamento.

Migrare le carte esistenti e l’integrazione API Charges

La migrazione del flusso di pagamento può essere scoraggiante. È consigliabile adottare in modo incrementale l’API Payment Intents e utilizzarla insieme all’API Charges. A questo scopo, puoi frazionare le fasi della migrazione come segue:

  1. Aggiorna la versione API e la libreria client.
  2. Se applicabile, migra il codice che legge le proprietà Charge in modo da ottenere un percorso di lettura coerente tra gli addebiti creati dall’API Charges e quelli creati dall’API Payment Intents. In questo modo, ottieni un’integrazione di lettura compatibile con le integrationi nuove e precedenti.
  3. Effettua la migrazione della tua integrazione API Charges esistente su Web, iOS e Android per utilizzare l’API Payment Intents.
  4. Migra l’integrazione che salva le carte negli oggetti Customer.
  5. Effettua test regolari con le carte di test per assicurarti che l’integrazione aggiornata gestisca l’autenticazione in modo corretto.

Aggiornare la versione API e la libreria client

Sebbene l’API Payment Intents funzioni su tutte le versioni dell’API, ti consigliamo di eseguire l’aggiornamento alla versione più recente dell’API. Se decidi di utilizzare una versione dell’API precedente all’11-02-2019, tieni presente le seguenti due modifiche mentre esamini gli esempi di codice:

  • requires_source è stato rinominato in requires_payment_method
  • requires_source_action è stato rinominato in requires_action

Inoltre, se utilizzi uno dei nostri SDK, esegui l’aggiornamento alla versione più recente della libreria per utilizzare l’API Payment Intents.

Migrare i flussi di pagamento una tantum

Un’integrazione creata con Stripe.js ed Elements consiste delle seguenti fasi:

  1. Registrare l’intenzione di incassare il pagamento sul lato server
  2. Raccogliere i dati di pagamento sul lato client
  3. Avviare la creazione del pagamento
  4. Evadere l’ordine del cliente sul lato server

Fase 1: registrare l’intenzione di incassare il pagamento sul lato server

Crea un PaymentIntent sul tuo server e rendilo accessibile sul lato client.

Prima
Dopo

Impossibile prima

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

Fase 2: raccogliere i dati di pagamento sul lato client

Utilizza la funzione confirmCardPayment, che raccoglie i dati di pagamento e li invia direttamente a Stripe.

Prima
Dopo
stripe.createToken( cardElement ).then(function(token) { // Send token to server });
stripe.confirmCardPayment( INTENT_SECRET_FROM_STEP_1, { payment_method: {card: cardElement} } ).then(function(result) { if (result.error) { // Display error.message in your UI. } else { // The payment has succeeded // Display a success message } });

Fase 3: avviare la creazione del pagamento

Nella tua integrazione esistente, la fase finale consiste nell’utilizzare le informazioni di pagamento tokenizzate per creare un addebito sul server. Questo non è più necessario perché la funzione confirmCardPayment richiamata nella fase precedente avvia la creazione dell’addebito.

Prima
Dopo
Command Line
curl https://api.stripe.com/v1/charges \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "source"="{{FROM_PREVIOUS_STEP}}" \ -d "amount"=1099 \ -d "currency"="usd"

Completato nella fase precedente

Fase 4: evadere l’ordine del cliente

Con la conferma automatica, l’addebito viene creato in modo asincrono in base alle azioni del cliente sul lato client; devi quindi monitorare i webhook per sapere quando il pagamento viene completato correttamente. Per eseguire operazioni come l’evasione degli ordini dopo che il pagamento di un cliente è andato a buon fine, implementa il supporto per i webhook e monitora l’evento payment_intent.succeeded.

Prima
Dopo

Se l’addebito riesce, evadi l’ordine.

Iscriviti al webhook payment_intent.succeeded ed evadi l’ordine nel gestore webhook.

Ora che hai effettuato la migrazione, utilizza le carte di test della sezione seguente per verificare che la tua integrazione aggiornata gestisca l’autenticazione 3D Secure.

Migrare l’integrazione che salva le carte negli oggetti Customer

Un’integrazione dell’API Payment Intents che raccoglie i dati delle carte nel flusso di pagamento consiste delle seguenti fasi:

  1. Registrare l’intenzione di incassare il pagamento sul lato server
  2. Raccogliere i dati di pagamento sul lato client
  3. Avviare la creazione del pagamento
  4. Evadere l’ordine del cliente sul lato server

Fase 1: registrare l’intenzione di incassare il pagamento sul lato server

Crea un PaymentIntent sul tuo server. Imposta setup_future_usage su off_session se intendi addebitare i pagamenti agli utenti principalmente quando sono scollegati dalla tua applicazione o su on_session se prevedi di effettuare gli addebiti quando sono collegati all’applicazione. Se intendi utilizzare la carta sia per i pagamenti all’interno che all’esterno della sessione, usa off_session. Se specifichi il parametro setup_future_usage insieme a un ID cliente, il PaymentMethod risultante verrà salvato per questo cliente dopo che il PaymentIntent è stato confermato e che il cliente ha effettuato tutte le azioni richieste. Infine, rendi il PaymentIntent accessibile sul lato client.

Prima
Dopo

Impossibile prima

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

Fase 2: raccogliere i dati di pagamento sul lato client

Utilizza la funzione confirmCardPayment, che raccoglie i dati di pagamento e li invia direttamente a Stripe.

Prima
Dopo
stripe.createToken( // or stripe.createSource cardElement ).then(function(token) { // Send token to server });
stripe.confirmCardPayment( '{{INTENT_SECRET_FROM_STEP_1}}', { payment_method: {card: cardElement}, } ).then(function(result) { if (result.error) { // Display error.message in your UI. } else { // The payment has succeeded // Display a success message } });

Infine, associa la modalità di pagamento (paymentIntent.payment_method) al cliente.

Prima
Dopo
Command Line
curl https://api.stripe.com/v1/customers/{{CUSTOMER_ID}}/sources \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "source"="{{TOKEN_OR_SOURCE}}"
Command Line
curl https://api.stripe.com/v1/payment_method/{{PAYMENT_METHOD_ID}}/attach \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "customer"="{{CUSTOMER_ID}}"

Fase 3: avviare la creazione del pagamento

Nella tua integrazione esistente, la fase finale consiste nell’utilizzare le informazioni di pagamento tokenizzate per creare un addebito sul server. Questo non è più necessario perché la funzione confirmCardPayment richiamata nella fase precedente avvia la creazione dell’addebito.

Prima
Dopo
Command Line
curl https://api.stripe.com/v1/charges \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "source"="{{FROM_PREVIOUS_STEP}}" \ -d "customer"="{{CUSTOMER_ID}}" \ -d "amount"=1099 \ -d "currency"="usd"

Completato nella fase precedente

Fase 4: evadere l’ordine del cliente

Con la conferma automatica, l’addebito viene creato in modo asincrono in base alle azioni del cliente sul lato client; devi quindi monitorare i webhook per sapere quando il pagamento viene completato correttamente. Per eseguire operazioni come l’evasione degli ordini dopo che il pagamento di un cliente è andato a buon fine, implementa il supporto per i webhook e monitora l’evento payment_intent.succeeded.

Prima
Dopo

Se l’addebito riesce, evadi l’ordine.

Iscriviti al webhook payment_intent.succeeded ed evadi l’ordine nel gestore webhook.

Ora che hai effettuato la migrazione, utilizza le carte di test della sezione seguente per verificare che la tua integrazione aggiornata gestisca l’autenticazione 3D Secure.

Accedere ai metodi di pagamento salvati

Per visualizzare le carte, le origini e i PaymentMethods precedentemente salvati del cliente, crea un elenco dei metodi di pagamento anziché leggere la proprietà sources dell’oggetto Customer. Questa operazione è richiesta perché i nuovi PaymentMethods aggiunti a un cliente non saranno duplicati nella proprietà Sources dell’oggetto Customer.

Prima
Dopo
Command Line
customer.sources
Command Line
curl https://api.stripe.com/v1/payment_methods?customer={{CUSTOMER_ID}}&type=card \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:

Testa l’integrazione

È importante testare a fondo la tua integrazione per assicurarti di gestire correttamente le carte che richiedono un’autenticazione aggiuntiva e le carte che non lo fanno. Utilizza questi numeri di carta in una sandbox con qualsiasi data di scadenza futura e qualsiasi codice CVC a tre cifre per convalidare la tua integrazione quando è richiesta l’autenticazione e quando non è richiesta.

NumeroAutenticazioneDescrizione
Obbligatoria al momento della configurazione o della prima transazioneQuesta carta di test richiede l’autenticazione per i pagamenti una tantum. Tuttavia, se la configuri utilizzando l’API Setup Intents e usi la carta salvata per i pagamenti successivi, non è richiesta un’ulteriore autenticazione.
ObbligatoriaQuesta carta di test richiede l’autenticazione per tutte le transazioni.
ObbligatoriaQuesta carta di test richiede l’autenticazione, ma i pagamenti verranno rifiutati con un codice di errore insufficient_funds dopo un’autenticazione riuscita.
SupportataThis test card supports authentication through 3D Secure 2, but doesn’t require it. Payments using this card don’t require additional authentication in a sandbox unless your sandbox Radar rules request authentication.

Utilizza queste carte nella tua applicazione o la demo di pagamenti per vedere le differenze di comportamento.

Vedi anche

  • Payment Intents su iOS
  • Payment Intents su Android
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