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
Strumenti di sviluppo
Panoramica
Informazioni sui pagamenti con Stripe
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
Modalità di pagamento
Aggiungere modalità di pagamento
Gestire i metodi di pagamento
Pagare più velocemente con Link
    Panoramica
    Pagamenti bancari istantanei
    In sintesi
    Link con Checkout
    Link con Elements per il web
    Link con Elements per dispositivi mobili
    Link con Invoicing
    Guide all'integrazione
    Integrazioni di pagamento di Link
    Creare una pagina di pagamento personalizzata contenente Link
    Configurare pagamenti futuri con Elements e Link
Interfacce di pagamento
Payment Links
Checkout
Elements per il Web
Elements in-app
Scenari di pagamento
Flussi di pagamento personalizzati
Acquisizione flessibile
Orchestrazione
Pagamenti di persona
Terminal
Altri prodotti Stripe
Financial Connections
Criptovaluta
Climate
Pagina inizialePagamentiFaster checkout with Link

Creare una pagina di pagamento personalizzata contenente Link

Integrare Link utilizzando Payment Element o Link Authentication Element

Copia pagina

Questa guida spiega come accettare pagamenti con Link utilizzando API Payment Intents e Payment Element o Link Authentication Element.

Sono disponibili tre modi per proteggere l’indirizzo email dei clienti per l’autenticazione e l’iscrizione a Link:

  • Specifica un indirizzo email: puoi specificare un indirizzo email per Payment Element utilizzando defaultValues. Se raccogli già l’indirizzo email e/o il numero di telefono del cliente nel flusso di pagamento, consigliamo questo approccio.
  • Raccogli un indirizzo email: puoi raccogliere un indirizzo email direttamente in Payment Element. Se non raccogli l’indirizzo email in nessuna fase del flusso di pagamento, ti consigliamo questo approccio.
  • Link Authentication Element: puoi utilizzare Link Authentication Element per creare un unico campo di inserimento dell’email sia per l’acquisizione dell’indirizzo che per l’autenticazione in Link. Questo metodo è consigliato se utilizzi Address Element.
Esegui l'autenticazione o l'iscrizione a Link direttamente in Payment Element durante il pagamento

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

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
# Available as a gem sudo gem install stripe
Gemfile
Ruby
# If you use bundler, you can add this line to your Gemfile gem 'stripe'

Creare un PaymentIntent
Lato server

Stripe utilizza un oggetto PaymentIntent per rappresentare la tua intenzione di riscuotere un pagamento da un cliente, monitorando i tentativi di addebito e le modifiche dello stato del pagamento durante tutta la procedura.

Schema del flusso di pagamento

Se raccogli i dati delle carte per un uso futuro con Setup Intents, elenca i metodi di pagamento manualmente anziché utilizzare metodi di pagamento dinamici. Per utilizzare Link senza metodi di pagamento dinamici, aggiorna l’integrazione specificando link in payment_method_types.

Quando crei un PaymentIntent, offri dinamicamente ai clienti i metodi di pagamento più pertinenti, incluso Link, utilizzando metodi di pagamento dinamici. Per utilizzare metodi di pagamento dinamici, non includere il parametro payment_method_types. Facoltativamente, puoi anche abilitare automatic_payment_methods.

Nota

Quando la tua integrazione non imposta il parametro payment_method_types, alcuni metodi di pagamento si attivano automaticamente, comprese le carte e i wallet.

Per aggiungere Link alla tua integrazione Elements utilizzando i metodi di pagamento dinamici:

  1. Nelle impostazioni dei metodi di pagamento della Dashboard, attiva Link.
  2. Se hai un’integrazione esistente che elenca manualmente i metodi di pagamento, rimuovi il parametro payment_method_types dalla tua integrazione.

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

Raccoglie l'indirizzo email del cliente

Link autentica un cliente utilizzando il suo indirizzo email. A seconda del tuo flusso di pagamento, hai le seguenti opzioni: specificare un indirizzo email in Payment Element, raccoglierlo direttamente con Payment Element o utilizzare Link Authentication Element. Tra queste, Stripe consiglia di specificare un indirizzo email del cliente in Payment Element (se disponibile).

Se ti trovi in una qualsiasi delle situazioni descritte di seguito:

  • Hai bisogno di un unico componente ottimizzato per la raccolta dell’indirizzo email e per l’autenticazione a Link.
  • Devi raccogliere un indirizzo di spedizione del cliente.

Poi utilizza il flusso di integrazione che implementa questi elementi: Link Authentication Element, Payment Element e Address Element (facoltativo).

In una pagina di pagamento compatibile con Link, Link Authentication Element si trova all’inizio, seguito da Address Element e poi da Payment Element. Puoi visualizzare Link Authentication Element anche su pagine distinte, nello stesso ordine, per i flussi di pagamento che richiedono l’utilizzo di più pagine.

Creare un modulo di pagamento utilizzando più Element

Creare un modulo di pagamento utilizzando più Element

L’integrazione funziona nel modo seguente:

Configura il modulo di pagamento
Lato client

Ora puoi configurare il tuo modulo di pagamento personalizzato con i componenti dell’interfaccia utente preintegrati di Elements. Affinché l’integrazione funzioni, l’indirizzo della pagina di pagamento deve iniziare con https:// anziché con http:// Puoi eseguire il test dell’integrazione senza utilizzare HTTPS. Abilita HTTPS quando sarà tutto pronto per accettare i pagamenti in modalità live.

Link Authentication Element visualizza un campo per l’inserimento dell’indirizzo email. Quando Link trova una corrispondenza tra l’indirizzo email di un cliente e un account Link esistente, invia un codice monouso sicuro al numero di telefono del cliente affinché possa effettuare l’autenticazione. Se il cliente si autentica correttamente, Stripe visualizza automaticamente gli indirizzi e i metodi di pagamento salvati su Link, in modo che il cliente possa utilizzarli.

Questa integrazione crea anche Payment Element, che visualizza un modulo dinamico che consente al cliente di scegliere un tipo di metodo di pagamento. Il modulo raccoglie automaticamente tutti i dati di pagamento necessari per il tipo di metodo di pagamento selezionato dal cliente. Payment Element gestisce inoltre la visualizzazione dei metodi di pagamento salvati da Link per i clienti autenticati.

Configurare Stripe Elements

Installa React Stripe.js e il caricatore Stripe.js dal registro di sistema pubblico npm.

Command Line
npm install --save @stripe/react-stripe-js @stripe/stripe-js

Nella pagina di pagamento, includi il modulo di pagamento con il componente Elements, specificando la chiave privata client dal passaggio precedente. Se raccogli l’indirizzo email del cliente già in un’altra parte del modulo, sostituisci il campo di inserimento dell’email esistente con linkAuthenticationElement​.

Se non raccogli l’indirizzo email, aggiungi linkAuthenticationElement​ al flusso di pagamento. Devi posizionare linkAuthenticationElement prima di ShippingAddressElement (facoltativo se raccogli gli indirizzi di spedizione) e PaymentElement affinché Link possa inserire automaticamente i dati salvati da Link per il cliente in ShippingAddressElement e PaymentElement. Puoi anche specificare l’opzione appearance, personalizzando i componenti Elements in modo che si adattino al design del tuo sito.

Se disponi dell’indirizzo email del cliente, specificalo nell’opzione defaultValues del linkAuthenticationElement. In questo modo viene precompilato il campo relativo all’indirizzo email e viene avviata la procedura di autenticazione di Link.

Se disponi di altre informazioni sul cliente, specificale nell’oggetto defaultValues.billingDetails relativo a PaymentElement. Se precompili il maggior numero possibile di informazioni, semplifichi la creazione e il riutilizzo dell’account Link per i tuoi clienti.

Poi visualizza i componenti linkAuthenticationElement e PaymentElement nel tuo modulo di pagamento.

Checkout.jsx
import {loadStripe} from "@stripe/stripe-js"; import { Elements, LinkAuthenticationElement, PaymentElement, } from "@stripe/react-stripe-js"; const stripe = loadStripe(
'pk_test_TYooMQauvdEDq54NiTphI7jx'
); // Customize the appearance of Elements using the Appearance API. const appearance = {/* ... */}; // Enable the skeleton loader UI for the optimal loading experience. const loader = 'auto';

linkAuthenticationElement, PaymentElement e ShippingAddressElement non devono necessariamente trovarsi nella stessa pagina. Se disponi di un processo in cui le informazioni di contatto del cliente, i dati di spedizione e i dati di pagamento vengono mostrati al cliente in fasi separate, puoi visualizzare ciascun Element nella fase o nella pagina appropriata. Includi linkAuthenticationElement come modulo di inserimento dell’indirizzo email nella fase di raccolta delle informazioni di contatto per assicurarti che il cliente possa sfruttare appieno la funzione di compilazione automatica fornita da Link.

Se raccogli l’indirizzo email del cliente con Link Authentication Element all’inizio del flusso di pagamento, non devi mostrarlo di nuovo nelle pagine di spedizione o di pagamento.

Recuperare un indirizzo email

Puoi recuperare i dati dell’indirizzo email utilizzando la proprietà onChange nel componente linkAuthenticationElement. Il gestore onChange si attiva ogni volta che l’utente aggiorna il campo dell’indirizzo email o quando un indirizzo email del cliente salvato viene compilato automaticamente.

<linkAuthenticationElement onChange={(event) => { setEmail(event.value.email); }} />

Precompilare un indirizzo email del cliente

Link Authentication Element accetta un indirizzo email. Se inserisci l’indirizzo email di un cliente, si attiva il flusso di autenticazione di Link non appena il cliente viene indirizzato alla pagina di pagamento utilizzando l’opzione defaultValues.

<linkAuthenticationElement options={{defaultValues: {email: 'foo@bar.com'}}}/>

FacoltativoPrecompilare altri dati del cliente
Lato client

FacoltativoRaccogliere indirizzi di spedizione
Lato client

FacoltativoPersonalizza l'aspetto
Lato client

Inviare il pagamento a Stripe
Lato client

Utilizza stripe.confirmPayment per completare il pagamento con i dati raccolti dal cliente nei diversi moduli Elements. Fornisci un return_url a questa funzione per indicare dove Stripe reindirizza l’utente dopo il completamento del pagamento.

L’utente può essere dapprima reindirizzato su un sito intermedio, come una pagina di autorizzazione bancaria, prima che Stripe lo reindirizzi al return_url.

Per impostazione predefinita, i pagamenti con carta e bancari vengono reindirizzati immediatamente al return_url quando il pagamento va a buon fine. Se vuoi impedire il reindirizzamento a return_url, puoi utilizzare if_required per modificare il comportamento.

Checkout.jsx
import {loadStripe} from "@stripe/stripe-js"; import { useStripe, useElements, Elements, LinkAuthenticationElement, PaymentElement, // If collecting shipping AddressElement, } from "@stripe/react-stripe-js"; const stripe = loadStripe(
'pk_test_TYooMQauvdEDq54NiTphI7jx'
); const appearance = {/* ... */}; // Enable the skeleton loader UI for the optimal loading experience. const loader = 'auto'; const CheckoutPage =({clientSecret}) => ( <Elements stripe={stripe} options={{clientSecret, appearance, loader}}> <CheckoutForm /> </Elements> ); export default function CheckoutForm() { const stripe = useStripe(); const elements = useElements(); const handleSubmit = async (event) => { event.preventDefault(); const {error} = await stripe.confirmPayment({ elements, confirmParams: { return_url: "https://example.com/order/123/complete", }, }); if (error) { // handle error } }; return ( <form onSubmit={handleSubmit}> <h3>Contact info</h3> <LinkAuthenticationElement /> {/* If collecting shipping */} <h3>Shipping</h3> <AddressElement options={{mode: 'shipping', allowedCountries: ['US']}} /> <h3>Payment</h3> <PaymentElement /> <button type="submit">Submit</button> </form> ); }

Il return_url corrisponde a una pagina del tuo sito web che fornisce lo stato del pagamento del PaymentIntent quando visualizzi la pagina di ritorno. Quando Stripe reindirizza il cliente al return_url, puoi utilizzare i seguenti parametri di ricerca dell’URL per verificare lo stato del pagamento. Puoi anche aggiungere i tuoi parametri di ricerca quando specifichi il return_url. Questi parametri di query vengono conservati durante la procedura di reindirizzamento.

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

FacoltativoSeparare l'autorizzazione dall'acquisizione
Lato server

Gestire gli eventi successivi al pagamento
Lato server

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

Configura la tua integrazione in modo che ascolti questi eventi anziché attendere un callback dal client. Quando attendi un callback dal client, il cliente può chiudere la finestra del browser o uscire dall’app prima dell’esecuzione del callback. La configurazione dell’integrazione per l’ascolto di eventi asincroni ti consente di accettare diversi tipi di metodi di pagamento con una sola integrazione.

Oltre a gestire l’evento payment_intent.succeeded, puoi gestire anche altri due eventi importanti quando riscuoti pagamenti con Payment Element:

EventoDescrizioneAzione
payment_intent.succeededInviato da Stripe quando un cliente ha completato un pagamento con esito positivo.Invia al cliente la conferma di un ordine ed evade l’ordine.
payment_intent.payment_failedInviato da Stripe quando il cliente ha tentato un pagamento che non è andato a buon fine.Se un pagamento è passato da processing a payment_failed, offri al cliente un altro tentativo di pagamento.

Testa l'integrazione

Attenzione

Non memorizzare dati di utenti reali negli account Link della sandbox. Trattali come se fossero pubblicamente disponibili, perché questi account di test sono associati alla tua chiave pubblicabile.

Attualmente Link funziona solo con carte di credito, carte di debito e acquisti su conti bancari qualificati degli Stati Uniti. Link richiede la registrazione del dominio.

Puoi creare account sandbox per Link utilizzando qualsiasi indirizzo email valido. La tabella seguente mostra i valori di passcode monouso fissi che Stripe accetta per autenticare gli account sandbox:

ValoreRisultato
Sei cifre qualsiasi tra quelle non elencate di seguitoOperazione riuscita
000001Errore, codice non valido
000002Errore, codice scaduto
000003Errore, numero massimo di tentativi superato

Per testare metodi di pagamento specifici, consulta gli esempi di test di Payment Element.

Più fonti di finanziamento

Quando Stripe fornisce fonti di finanziamento aggiuntive, non è necessario aggiornare l’integrazione. Stripe le supporta automaticamente con le stesse tempistiche di regolamento delle transazioni e le stesse garanzie dei pagamenti con carta e conto corrente.

Autenticazione delle carte e 3D Secure

Link supporta l’autenticazione 3D Secure 2 (3DS2) per i pagamenti con carta. 3DS2 richiede ai clienti di completare un passaggio di verifica aggiuntivo con la società emittente della carta quando paga. I pagamenti autenticati tramite 3D Secure sono coperti da una traslazione di responsabilità.

Per attivare il flusso di autenticazione 3DS2 con Link in una sandbox, utilizza la seguente carta di test con qualsiasi CVC, codice postale e data di scadenza futura: .

In una sandbox, la procedura di autenticazione mostra una pagina di autenticazione simulata. In tale pagina puoi autorizzare o annullare il pagamento. L’autorizzazione del pagamento simula la riuscita dell’autenticazione e ti reindirizza all’URL di reindirizzamento specificato. Se fai clic sul pulsante Operazione non riuscita viene simulato un tentativo di autenticazione non andato a buon fine.

Per ulteriori informazioni, consulta la pagina sull’autenticazione 3D Secure.

Nota

Quando testi i flussi 3DS, solo le carte di test per 3DS2 attivano l’autenticazione su Link.

FacoltativoVisualizzare i dati salvati del cliente
Lato server
Lato client

FacoltativoSalvare i metodi di pagamento di Link
Lato server
Lato client

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

  • Che cos’è Link
  • Link con Elements
  • Link in Payment Element
  • Esplorare Link Authentication Element
  • Link in diverse integrazioni 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