# Guida alla migrazione di Checkout
Come eseguire la migrazione alle integrazioni più recenti di Stripe.

Nella versione precedente di Checkout i clienti visualizzavano una finestra di dialogo modale che raccoglieva i dati della carta e restituiva un token o un’origine al tuo sito web. Invece [Payment Links](https://docs.stripe.com/payment-links.md) e la versione corrente di [Checkout](https://docs.stripe.com/payments/checkout.md) sono pagine di pagamento intelligenti in hosting su Stripe che creano pagamenti o *abbonamenti* (A Subscription represents the product details associated with the plan that your customer subscribes to. Allows you to charge the customer on a recurring basis). Entrambe le integrazioni supportano Apple Pay, Google Pay, *3D Secure* (3D Secure (3DS) provides an additional layer of authentication for credit card transactions that protects businesses from liability for fraudulent card payments) dinamico, *Connect* (Connect is Stripe's solution for multi-party businesses, such as marketplace or software platforms, to route payments between sellers, customers, and other recipients), il riutilizzo di *clienti esistenti* (Customer objects represent customers of your business. They let you reuse payment methods and give you the ability to track multiple payments) e molte altre funzionalità. Se Payment Links o Checkout non sono adatti al tuo caso d’uso, puoi anche [confrontare altre integrazioni per pagamenti](https://docs.stripe.com/payments/online-payments.md#compare-features-and-availability).
## Before you begin
Se utilizzi gli [SDK](https://docs.stripe.com/sdks.md) di Stripe, esegui l’aggiornamento alla versione più recente.
## Scegliere il modello di business
Per eseguire la migrazione dalla versione precedente di Checkout, segui la guida che meglio rappresentata il tuo modello di business. Ogni guida consiglia un percorso di integrazione e fornisce un esempio di codice.
- [Catalogo prodotti e prezzi dinamici](https://docs.stripe.com/payments/checkout/migration.md#api-products)
Se hai un vasto catalogo prodotti o devi supportare voci riga generate in modo dinamico (ad esempio donazioni o imposte).
- [Abbonamenti dinamici](https://docs.stripe.com/payments/checkout/migration.md#api-subscriptions)
Se sei un fornitore SaaS che emette ricevute e devi supportare funzionalità avanzate.
- [Piattaforme e marketplace Connect](https://docs.stripe.com/payments/checkout/migration.md#connect)
Se gestisci un marketplace che mette in contatto i fornitori con i clienti.
- [Salvare le modalità di pagamento per uso futuro](https://docs.stripe.com/payments/checkout/migration.md#setup-mode)
Se gestisci un’attività che addebita l’importo al cliente solo dopo aver erogato i servizi.
- [Catalogo prodotti semplice con prezzi fissi](https://docs.stripe.com/payments/checkout/migration.md#simple-products)
Se vendi alcuni prodotti con prezzi predeterminati.
- [Abbonamenti semplici](https://docs.stripe.com/payments/checkout/migration.md#simple-subscriptions)
Se sei un fornitore SaaS con un piano di abbonamento mensile.
Mentre segui le istruzioni della guida alla migrazione pertinente, puoi anche fare riferimento alla [tabella di conversione](https://docs.stripe.com/payments/checkout/migration.md#parameter-conversion) per associare i parametri specifici e le opzioni di configurazione.
## Catalogo prodotti e prezzi dinamici
Se vendi prodotti per i quali l’importo o le voci riga vengono determinati in modo dinamico, ad esempio con un vasto catalogo di prodotti o per donazioni, scopri come [accettare i pagamenti una tantum](https://docs.stripe.com/payments/accept-a-payment.md?integration=checkout).
Probabilmente hai utilizzato la versione precedente di Checkout per creare un token o un’origine sul client, che poi hai specificato sul server per creare un addebito.Nella versione corrente di Checkout questo flusso è invertito. Prima crei una sessione sul server, reindirizzi il cliente su Checkout, che a sua volta viene reindirizzato all’applicazione dopo il pagamento.
### Prima
Con la versione precedente di Checkout, visualizzeresti l’importo e la descrizione dinamici e raccoglieresti i dati della carta del cliente.
```html
```
Poi invieresti al server il token o l’origine risultanti per effettuare l’addebito.
#### curl
```bash
curl https://api.stripe.com/v1/customers \
-u <>: \
-d "email"="customer@example.com" \
-d "source"="{{STRIPE_TOKEN}}"
curl https://api.stripe.com/v1/charges \
-u <>: \
-d "customer"="{{CUSTOMER_ID}}" \
-d "description"="Custom t-shirt" \
-d "amount"="{{ORDER_AMOUNT}}" \
-d "currency"="usd"
```
### Dopo
Aggiungi sul tuo sito web un pulsante di pagamento che richiami un endpoint lato server per creare una [sessione di Checkout](https://docs.stripe.com/api/checkout/sessions/create.md).
```html
Buy cool new product
```
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](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-line_items) da addebitare
- Valute da utilizzare
Includi un `success_url` con l’URL di una pagina del tuo sito web a cui il cliente viene reindirizzato una volta che ha completato il pagamento.
```curl
curl https://api.stripe.com/v1/checkout/sessions \
-u "<>:" \
-d "line_items[0][price_data][currency]=usd" \
-d "line_items[0][price_data][product_data][name]=Custom t-shirt" \
-d "line_items[0][price_data][unit_amount]=2000" \
-d "line_items[0][quantity]=1" \
-d mode=payment \
--data-urlencode "success_url=https://example.com/success"
```
Dopo aver creato una sessione di Checkout, reindirizza il cliente all’[URL](https://docs.stripe.com/api/checkout/sessions/object.md#checkout_session_object-url) restituito nella risposta. Se hai bisogno di evadere i prodotti acquistati dopo il pagamento, consulta [Pagamenti tramite Checkout e Payment Link](https://docs.stripe.com/checkout/fulfillment.md).
## Abbonamenti dinamici
Se fornisci servizi di abbonamento che vengono determinati in modo dinamico o che richiedono il supporto di altre funzionalità avanzate, scopri come [configurare un abbonamento](https://docs.stripe.com/billing/subscriptions/build-subscriptions.md).
Probabilmente hai utilizzato la versione precedente di Checkout per creare un token o un’origine sul client, che poi hai specificato sul server per creare un cliente e un abbonamento. Nella versione corrente di Checkout questo flusso è invertito. Prima crei una sessione sul server, reindirizzi il cliente su Checkout, che a sua volta viene reindirizzato all’applicazione una volta completata l’operazione.
### Prima
Con la versione precedente di Checkout, visualizzeresti le informazioni sull’abbonamento e raccoglieresti i dati della carta del cliente.
```html
```
Poi invieresti al server il token o l’origine risultanti per creare un cliente e un abbonamento.
#### curl
```bash
curl https://api.stripe.com/v1/customers \
-u <>: \
-d "email"="customer@example.com" \
-d "source"="{{STRIPE_TOKEN}}"
curl https://api.stripe.com/v1/subscriptions \
-u <>: \
-d "customer"="{{CUSTOMER_ID}}" \
-d "items[0][price]"="{PRICE_ID}" \
-d "trial_period_days"=30
```
### Dopo
Aggiungi sul tuo sito web un pulsante di pagamento che richiami un endpoint lato server per creare una [sessione di Checkout](https://docs.stripe.com/api/checkout/sessions/create.md).
```html
Subscribe to cool new service
```
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](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-line_items) da addebitare
- Valute da utilizzare
Includi un `success_url` con l’URL di una pagina del tuo sito web a cui il cliente viene reindirizzato una volta che ha completato il pagamento.
```curl
curl https://api.stripe.com/v1/checkout/sessions \
-u "<>:" \
-d "line_items[0][price]={{PRICE_ID}}" \
-d "line_items[0][quantity]=1" \
-d "subscription_data[trial_period_days]=30" \
-d mode=subscription \
--data-urlencode "success_url=https://example.com/success"
```
Dopo aver creato una sessione di Checkout, reindirizza il cliente all’[URL](https://docs.stripe.com/api/checkout/sessions/object.md#checkout_session_object-url) restituito nella risposta. Il cliente viene reindirizzato al `success_url` dopo la creazione del cliente e dell’abbonamento Se hai bisogno di evadere i servizi acquistati dopo il pagamento, consulta [Pagamenti tramite Checkout e Payment Link](https://docs.stripe.com/checkout/fulfillment.md).
## Connettere piattaforme e marketplace
Se gestisci una piattaforma o un marketplace Connect e crei pagamenti che coinvolgono gli account connessi, ti consigliamo di utilizzare la versione corrente di Checkout.
Il seguente esempio mostra l’utilizzo dell’API Checkout Sessions per elaborare un addebito diretto. Puoi anche utilizzare Checkout e Connect con [addebiti indiretti](https://docs.stripe.com/connect/destination-charges.md?platform=web&ui=stripe-hosted) e [addebiti e trasferimenti separati](https://docs.stripe.com/connect/separate-charges-and-transfers.md?platform=web&ui=stripe-hosted).
### Prima
Con la versione precedente di Checkout, raccoglieresti i dati della carta del cliente sul client.
```html
```
Poi invieresti al server il token o l’origine risultanti e addebiteresti l’importo per conto dell’account connesso.
#### curl
```bash
curl https://api.stripe.com/v1/charges \
-u <>: \
-d "source"="{{TOKEN_ID}}" \
-d "description"="10 cucumbers from Roger\"s Farm" \
-d "amount"=2000 \
-d "currency"="usd" \
-d "application_fee_amount"=200 \
-H "Stripe-Account: {{CONNECTED_STRIPE_ACCOUNT_ID}}"
```
### Dopo
Aggiungi sul tuo sito web un pulsante di pagamento che richiami un endpoint lato server per creare una [sessione di Checkout](https://docs.stripe.com/api/checkout/sessions/create.md).
```html
Roger's Farm
```
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](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-line_items) da addebitare
- Valute da utilizzare
Includi un `success_url` con l’URL di una pagina del tuo sito web a cui il cliente viene reindirizzato una volta che ha completato il pagamento.
```curl
curl https://api.stripe.com/v1/checkout/sessions \
-u "<>:" \
-H "Stripe-Account: {{CONNECTEDACCOUNT_ID}}" \
-d "line_items[0][price_data][currency]=usd" \
--data-urlencode "line_items[0][price_data][product_data][name]=Cucumbers from Roger's Farm" \
-d "line_items[0][price_data][unit_amount]=200" \
-d "line_items[0][quantity]=10" \
-d "payment_intent_data[application_fee_amount]=200" \
-d mode=payment \
--data-urlencode "success_url=https://example.com/success"
```
Dopo aver creato una sessione di Checkout, reindirizza il cliente all’[URL](https://docs.stripe.com/api/checkout/sessions/object.md#checkout_session_object-url) restituito nella risposta. Se hai bisogno di evadere i beni o servizi acquistati dopo il pagamento, consulta [Pagamenti tramite Checkout e Payment Link](https://docs.stripe.com/checkout/fulfillment.md).
## Salvare le modalità di pagamento per uso futuro
Se fornisci servizi che non vengono addebitati subito ai clienti, leggi come [impostare pagamenti futuri](https://docs.stripe.com/payments/save-and-reuse.md?platform=checkout).
Probabilmente hai utilizzato la versione precedente di Checkout per creare un token o un’origine sul client, che poi hai specificato sul server per salvarlo per un uso futuro. Nella versione corrente di Checkout questo flusso è invertito. Prima crei una sessione sul server, reindirizzi il cliente su Checkout, che a sua volta viene reindirizzato all’applicazione una volta completata l’operazione.
### Prima
Con la versione precedente di Checkout, visualizzeresti le informazioni sull’addebito e raccoglieresti i dati della carta del cliente.
```html
```
Poi invieresti al server il token o l’origine risultante per creare successivamente un addebito.
#### curl
```bash
curl https://api.stripe.com/v1/customers \
-u <>: \
-d "email"="customer@example.com" \
-d "source"="{{STRIPE_TOKEN}}"
curl https://api.stripe.com/v1/charges \
-u <>: \
-d "customer"="{{CUSTOMER_ID}}" \
-d "description"="Cleaning service" \
-d "amount"="{{ORDER_AMOUNT}}" \
-d "currency"="usd"
```
### Dopo
Aggiungi sul tuo sito web un pulsante di pagamento che richiami un endpoint lato server per creare una [sessione di Checkout](https://docs.stripe.com/api/checkout/sessions/create.md).
```html
Cleaning service
```
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](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-line_items) da addebitare
- Valute da utilizzare
Includi un `success_url` con l’URL di una pagina del tuo sito web a cui il cliente viene reindirizzato una volta che ha completato la configurazione del pagamento.
```curl
curl https://api.stripe.com/v1/checkout/sessions \
-u "<>:" \
-d mode=setup \
-d currency=usd \
--data-urlencode "success_url=https://example.com/success?session_id={CHECKOUT_SESSION_ID}"
```
Dopo aver creato una sessione di Checkout, reindirizza il cliente all’[URL](https://docs.stripe.com/api/checkout/sessions/object.md#checkout_session_object-url) restituito nella risposta per raccogliere i dettagli del metodo di pagamento. Una volta completato il flusso, il cliente viene reindirizzato a `success_url`. Per completare la riscossione di un pagamento, [recupera il SetupIntent](https://docs.stripe.com/payments/checkout/save-and-reuse.md?payment-ui=stripe-hosted#retrieve-checkout-session) dalla sessione di Checkout e utilizzalo per preparare la transazione.
## Catalogo prodotti semplice con prezzi fissi
Se vendi prodotti a prezzo fisso (come t-shirt o e-book), consulta la guida su [link di pagamento](https://docs.stripe.com/payment-links/create.md). Probabilmente hai utilizzato la versione precedente di Checkout per creare un token o un’origine sul client e l’hai trasmessa al server per creare un addebito.
### Prima
Con la versione precedente di Checkout, visualizzeresti l’importo e la descrizione e raccoglieresti i dati della carta del cliente.
```html
```
Poi invieresti al server il token o l’origine risultante per creare un cliente e un addebito.
#### Curl
```bash
curl https://api.stripe.com/v1/customers \
-u <>: \
-d "email"="{{STRIPE_EMAIL}}" \
-d "source"="{{STRIPE_TOKEN}}"
curl https://api.stripe.com/v1/charges \
-u <>: \
-d "customer"="{{CUSTOMER_ID}}" \
-d "description"="T-shirt" \
-d "amount"=500 \
-d "currency"="usd"
```
### Dopo
Crea un oggetto [Product](https://docs.stripe.com/api/products.md) e un oggetto [Price](https://docs.stripe.com/api/prices.md) che rappresentano l’articolo. Il seguente esempio crea il prodotto incorporato. Puoi anche creare questi oggetti nella [Dashboard](https://dashboard.stripe.com/test/products).
```curl
curl https://api.stripe.com/v1/prices \
-u "<>:" \
-d currency=usd \
-d unit_amount=500 \
-d "product_data[name]=T-shirt"
```
Crea un [link di pagamento](https://dashboard.stripe.com/payment-links/create) nella Dashboard utilizzando gli oggetti Prodotto e Prezzo. Dopo aver creato il link, fai clic sul **pulsante Acquista** per configurare l’aspetto e generare il codice che puoi copiare e incollare nel tuo sito web.
#### HTML
```html
Purchase your new kit
```
## Abbonamenti semplici
Se fornisci un servizio di abbonamento semplice (ad esempio l’accesso mensile a un software), consulta la guida sui [link di pagamento](https://docs.stripe.com/payment-links/create.md). Probabilmente hai utilizzato la versione precedente di Checkout per creare un token o un’origine sul client, che poi hai specificato sul server per creare un cliente e un abbonamento.
### Prima
Con la versione precedente di Checkout, visualizzeresti le informazioni sull’abbonamento e raccoglieresti i dati della carta del cliente.
```html
```
Poi invieresti al server il token o l’origine risultanti per creare un cliente e un abbonamento.
#### Curl
```bash
curl https://api.stripe.com/v1/customers \
-u <>: \
-d "email"="{{STRIPE_EMAIL}}" \
-d "source"="{{STRIPE_TOKEN}}"
curl https://api.stripe.com/v1/subscriptions \
-u <>: \
-d "customer"="{{CUSTOMER_ID}}" \
-d "items[][price]"="{PRICE_ID}" \
-d "items[][quantity]"=1
```
### Dopo
Crea un oggetto [Product](https://docs.stripe.com/api/products.md) e un oggetto [Price](https://docs.stripe.com/api/prices.md) che rappresentano l’abbonamento. Il seguente esempio crea il prodotto incorporato. Puoi anche creare questi oggetti nella [Dashboard](https://dashboard.stripe.com/test/products).
```curl
curl https://api.stripe.com/v1/prices \
-u "<>:" \
-d currency=usd \
-d unit_amount=2000 \
-d "recurring[interval]=month" \
-d "product_data[name]=Gold Tier"
```
Crea un [link di pagamento](https://dashboard.stripe.com/payment-links/create) nella Dashboard utilizzando gli oggetti Prodotto e Prezzo. Dopo aver creato il link, fai clic sul **pulsante Acquista** per configurare l’aspetto e generare il codice che puoi copiare e incollare nel tuo sito web.
#### HTML
```html
Purchase your new kit
```
## Conversione dei parametri
La versione corrente di Checkout supporta la maggior parte delle funzionalità della versione precedente di Checkout. Tuttavia, non condividono la stessa API. La tabella riportata di seguito mostra la corrispondenza dei parametri e delle opzioni di configurazione della versione precedente e della versione corrente. Per un elenco completo delle opzioni di configurazione, consulta [sessioni di Checkout](https://docs.stripe.com/api/checkout/sessions.md).
| Versione precedente | Versione corrente | Suggerimenti per l’integrazione |
| ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `allowRememberMe` | Non supportato | Riutilizza i clienti esistenti specificando il parametro `customer` durante la creazione di una [sessione di Checkout](https://docs.stripe.com/api/checkout/sessions/create.md). Puoi anche abilitare [Link](https://docs.stripe.com/payments/link/checkout-link.md) per consentire ai tuoi clienti di salvare e riutilizzare in modo sicuro i dati di pagamento. |
| `amount` | Calcolato automaticamente come somma degli importi di tutti i parametri `line_items` | L’importo totale è la somma delle voci riga specificate in Checkout. |
| `billingAddress` | `Session.billing_address_collection` | Checkout raccoglie automaticamente l’indirizzo di fatturazione se è obbligatorio per prevenire le frodi o a fini normativi. Per raccogliere sempre l’indirizzo di fatturazione, imposta questo parametro su `required`. |
| `closed` | Quando un cliente vuole chiudere Checkout, chiude la scheda del browser. |
| `currency` | `Session.currency` | |
| `description` | `Session.line_items.description` o `product.description` | Se specifichi un prezzo, Checkout genera una descrizione automatica della frequenza dei pagamenti. Se specifichi il parametro `Session.line_items`, Checkout visualizza il nome di ogni voce riga nel parametro `name`. |
| `email` | `Session.customer_email` | Se conosci già l’indirizzo email del cliente, puoi precompilarlo con [customer_email](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-customer_email) quando crei la sessione di Checkout. |
| `image` | **Branding dell’attività**: carica il logo o l’icona della tua attività nella Dashboard.
**Immagini prodotto**: specifica le immagini di ogni voce riga con `product.images`. | Checkout utilizza immagini specifiche per il [branding](https://docs.stripe.com/payments/checkout/customization/appearance.md#branding) della tua azienda e per i prodotti che vendi. Checkout mostra il logo dell’azienda per impostazione predefinita e recupera l’icona e il nome della tua azienda. |
| `key` | Parametro non più specificato in Checkout | |
| `locale` | `Session.locale` | Puoi specificare un’[impostazione locale](https://docs.stripe.com/payments/checkout/custom-components.md#localization) supportata durante la creazione di una sessione di Checkout. |
| `name` | `product.name` per i prezzi specificati in `Session.line_items` | Se specifichi un prezzo, Checkout mostra il nome del prodotto a cui appartiene il prezzo. Se specifichi il parametro `Session.line_items`, Checkout mostra il nome di ogni voce riga nel parametro `name`. |
| `panelLabel` | `submit_type` | Checkout personalizza automaticamente il testo del pulsante a seconda degli articoli che vendi. Per i pagamenti una tantum, utilizza [submit_type](https://docs.stripe.com/payments/checkout/custom-components.md#submit-button) per personalizzare il testo del pulsante. |
| `shippingAddress` | `session.shipping_address_collection` | [Raccogli le informazioni sull’indirizzo di spedizione](https://docs.stripe.com/payments/collect-addresses.md?payment-ui=checkout) specificando una matrice di `allowed_countries` autorizzati per le spedizioni. |
| `token` o `source` | `success_url` | In JavaScript non è più disponibile una richiamata una volta completato il pagamento. Dato che il cliente paga su una pagina diversa, imposta `success_url` per reindirizzare il cliente sulla pagina di conferma dopo che ha completato il pagamento. |
| `zipCode` | Raccolto automaticamente da Checkout | Checkout raccoglie automaticamente il codice postale se richiesto per prevenire le frodi o a fini normativi. |
## See also
- [Aggiungere altri metodi di pagamento](https://docs.stripe.com/payments/payment-methods/overview.md)
- [Raccogliere indirizzi e numeri di telefono](https://docs.stripe.com/payments/collect-addresses.md)