---
title: "Stripe parte 1: checkout, subscription, test contro produzione"
description: "Incassare veri pagamenti con Stripe Checkout e le subscription, modellare prezzi mensili e annuali e lavorare in sicurezza in modalita test prima di passare in live"
type: "lesson"
locale: "it"
course: "Lo stack applicativo moderno - Auth, dati e pagamenti"
number: "3.5"
canonical: "https://agenticschool.dev/it/corsi/modern-app-stack/stripe-part-1-checkout-subscriptions-test-vs-production"
datePublished: "2026-06-12"
dateModified: "2026-06-12"
---

# Stripe parte 1: checkout, subscription, test contro produzione

- Course: Lo stack applicativo moderno - Auth, dati e pagamenti
- Lesson: 3.5
- Duration: 30 min
- Level: fortgeschritten
- Status: published
- Canonical URL: https://agenticschool.dev/it/corsi/modern-app-stack/stripe-part-1-checkout-subscriptions-test-vs-production
- Locale: it

> Incassare veri pagamenti con Stripe Checkout e le subscription, modellare prezzi mensili e annuali e lavorare in sicurezza in modalita test prima di passare in live

## Summary

Qui il tuo prodotto puo guadagnare denaro. Stripe gestisce i pagamenti perche tu non tocchi mai dati di carta grezzi. Questa lezione copre Embedded contro Hosted Checkout, il modello prodotti-e-prezzi, le subscription con fatturazione mensile e annuale, le carte di test contro cui costruisci (4242 4242 4242 4242) e la stretta separazione test/produzione che ti lascia fatturare i clienti con fiducia senza rischiare denaro reale in development.

## What you learn

- Embedded contro Hosted Stripe Checkout e perche non gestisci mai i dati di carta da solo
- Il modello prodotti-e-prezzi e le subscription con fatturazione mensile contro annuale
- La modalita test con la carta di test 4242 e il cammino pulito verso la produzione

## Panoramica

Auth, dati e segreti sono in atto. Ora il tuo prodotto puo guadagnare denaro. Stripe e lo standard per incassare pagamenti, e il vantaggio principale e che non tocchi mai un numero di carta di credito grezzo - Stripe lo raccoglie, cosicche il tuo carico di conformita passa da spaventoso a gestibile. Questa lezione ti porta a una subscription funzionante: i due gusti di checkout, come prodotti e prezzi modellano la tua tariffazione, come le subscription gestiscono la fatturazione ricorrente incluso il toggle mensile contro annuale di cui la tua pagina di pricing ha bisogno, e la disciplina della modalita test che ti lascia costruire e verificare tutto senza muovere un centesimo di denaro reale.

## Cosa imparerai

Imparerai la differenza tra Hosted ed Embedded Checkout e quando usare ciascuno, come il modello prodotti-e-prezzi di Stripe si mappa sui tuoi livelli di tariffazione, come le subscription gestiscono la fatturazione ricorrente mensile e annuale, come costruire tutto in modalita test con le carte di test di Stripe e la checklist pulita per passare in produzione una volta che tutto funziona.

## Prerequisiti

Un'app funzionante con auth e dati e la disciplina dei segreti della lezione precedente, perche le chiavi Stripe sono tra le piu sensibili che terrai mai - una chiave live trapelata e una linea diretta verso il tuo denaro. Devi anche essere a tuo agio con il fatto che test e produzione sono mondi separati, esattamente come con Clerk.

## Il problema

I principianti suppongono che incassare pagamenti voglia dire costruire un form di carta di credito e memorizzare i numeri di carta. Questo cammino e un incubo: gestire carte grezze ti mette sotto tutto il peso della conformita PCI, e un errore ti espone a frode e responsabilita giuridica che non sei attrezzato a portare. Cosi le persone evitano l'addebito del tutto e lasciano denaro sul tavolo, o costruiscono qualcosa di insicuro. Stripe esiste proprio perche tu non memorizzi mai un numero di carta. Rimandi il passo di pagamento a Stripe, lui raccoglie la carta sulla sua infrastruttura sicura e ti comunica il risultato. Il tuo job si restringe a "configurare i prodotti e reagire a cio che Stripe ti dice", il che e totalmente fattibile.

## Hosted contro Embedded Checkout

Stripe Checkout e una pagina di pagamento pre-costruita e sicura che Stripe mantiene, quindi ottieni un flusso di pagamento raffinato e conforme PCI senza costruire un form. Viene in due gusti. Hosted Checkout redirige il cliente verso una pagina ospitata da Stripe (checkout.stripe.com), lui paga, e Stripe lo redirige verso il tuo URL di successo - il piu semplice da mettere in atto, interamente mantenuto da Stripe. Embedded Checkout rende la stessa esperienza di pagamento sicura all'interno della tua pagina, cosicche il cliente non lascia mai la tua app, il che puo migliorare la conversione e sentirsi piu nativo. Entrambi sono ugualmente sicuri, perche Stripe gestisce i dati di carta in entrambi i casi; la differenza e puramente se il pagamento ha luogo sulla pagina di Stripe o integrato nella tua. Parti con Hosted per essere funzionante il piu in fretta, poi passa a Embedded per un'esperienza piu fluida (la parte 2 copre Embedded in dettaglio).

- Hosted Checkout: redirigere verso una pagina Stripe, pagare, redirigere di ritorno. Il piu rapido da pubblicare, zero gestione di carta.
- Embedded Checkout: lo stesso flusso sicuro, reso nella tua app. Migliore conversione, piu rifinitura.
- Entrambi sono ugualmente sicuri - Stripe gestisce la carta in entrambi i casi. La scelta riguarda l'esperienza utente.
- Non vedi ne memorizzi un numero di carta con nessuna delle due opzioni.

## Prodotti e prezzi

Stripe modella la tua tariffazione con due oggetti collegati: un prodotto e uno o piu prezzi. Un prodotto e la cosa che vendi ("piano Pro"). Un prezzo e un modo preciso di pagare per essa ("20 USD al mese" o "200 USD all'anno"). Un prodotto puo avere piu prezzi - e esattamente cosi che costruisci una pagina di pricing con un toggle mensile/annuale: lo stesso prodotto Pro ha un prezzo mensile e un prezzo annuale, e il tuo toggle commuta il prezzo che il checkout usa. Crei prodotti e prezzi nel dashboard Stripe (o via API), e ogni prezzo riceve un ID come price_xxx che referenzi quando lanci un checkout. Tenere i prezzi come oggetti separati, invece di mettere gli importi in chiaro nel tuo codice, significa che puoi cambiare la tariffazione nel dashboard senza ri-deployare.

- Prodotto: cio che vendi (il "piano Pro").
- Prezzo: un modo di pagare per esso (mensile contro annuale sono due prezzi sullo stesso prodotto).
- Un toggle mensile/annuale e semplicemente la scelta tra due ID di prezzo al momento del checkout.
- Referenzia i prezzi con il loro ID price_xxx; cambia gli importi nel dashboard senza toccare il codice.

## Subscription: mensile e annuale

Una subscription e un prezzo fatturato secondo un calendario ricorrente. Quando un cliente fa un checkout con un prezzo ricorrente, Stripe crea una subscription e addebita la sua carta automaticamente a ogni ciclo - mensile o annuale - e gestisce i rinnovi, i nuovi tentativi su pagamenti falliti e le cancellazioni per te. E il motore dei ricavi SaaS, e Stripe pilota il ciclo di fatturazione perche tu non debba farlo. Per la pagina di pricing che lo stile di questo corso esige, modelli due prezzi ricorrenti per livello (un prezzo mensile e un prezzo annuale), metti la pagina per default sul prezzo annuale al mese e lasci il toggle commutare verso mensile. Ecco la forma per lanciare un subscription checkout - la superficie di API esatta evolve, quindi segui la documentazione aggiornata di Stripe, ma la struttura resta stabile.

```typescript
// Backend uniquement (utilise la SECRET key). Crea una checkout session per un
// prezzo ricorrente. L'ID di prezzo decide mensile contro annuale.
import Stripe from 'stripe'

const stripe = new Stripe(process.env.STRIPE_SECRET_KEY!)

export async function createSubscriptionCheckout(opts: {
  priceId: string // price_xxx per il piano mensile OPPURE annuale scelto
  customerEmail: string
}) {
  return stripe.checkout.sessions.create({
    mode: 'subscription', // fatturazione ricorrente, non un pagamento unico
    line_items: [{ price: opts.priceId, quantity: 1 }],
    customer_email: opts.customerEmail,
    success_url: 'https://app.yoursite.com/welcome?session_id={CHECKOUT_SESSION_ID}',
    cancel_url: 'https://app.yoursite.com/pricing',
  })
}
```
Una subscription checkout session. mode: subscription significa ricorrente; l'ID di prezzo sceglie mensile o annuale.

Cio gira sul backend con la tua secret key, mai nel browser. La session che restituisce e cio verso cui redirigi il cliente (Hosted) o cio che rendi nella tua pagina (Embedded). In entrambi i casi, la carta e raccolta da Stripe.

## Modalita test e carte di test

Stripe ti da due modalita totalmente separate - test e live - ciascuna con le sue chiavi e i suoi dati. In modalita test, costruisci e verifichi tutto il flusso di pagamento senza muovere denaro reale, con numeri di carta di test speciali che Stripe riconosce. La famosa e 4242 4242 4242 4242: una Visa che riesce sempre. Stripe offre anche carte che simulano fallimenti, rifiuti e sfide di autenticazione, perche tu possa testare anche i cammini infelici. Usa qualsiasi data di scadenza futura, qualsiasi CVC a tre cifre e qualsiasi codice postale. Fai tutto il tuo development qui. Le tue chiavi di test cominciano con sk_test e pk_test e riflettono la stessa convenzione di prefisso che hai visto con Clerk.

- 4242 4242 4242 4242 - riesce ogni volta. Il tuo default per testare l'happy path.
- 4000 0000 0000 0002 - sempre rifiutata, perche tu possa testare la gestione d'errore.
- 4000 0025 0000 3155 - esige un'autenticazione (3D Secure), perche tu possa testare quel flusso.
- Usa qualsiasi data di scadenza futura, qualsiasi CVC, qualsiasi codice postale. Le vere carte non fanno niente in modalita test.

I dati della modalita test (clienti, subscription, pagamenti) sono totalmente separati dai dati live e non si trasferiscono mai. Quando passi in live, parti con un dashboard live pulito. Questa separazione e una feature: puoi sperimentare liberamente senza mai temere un vero addebito.

## Passare in produzione

Una volta che tutto funziona in modalita test, passare in live e una corta checklist accurata piuttosto che una ricostruzione. Attivi il tuo account Stripe (Stripe ha bisogno dei tuoi dati aziendali e bancari per pagarti), ricrei i tuoi prodotti e prezzi in modalita live se li hai fatti solo in test, scambi le tue chiavi test con chiavi live nel tuo ambiente in deploy e aggiorni tutti gli ID di prezzo che il tuo codice referenzia verso gli ID live. Poi fai tu stesso una vera piccola transazione per confermare che tutto il ciclo funziona end-to-end con chiavi live. Cruciale, tieni test e live strettamente separati - non incollare mai una chiave live in un file env di development. La parte 2 aggiunge il setup di webhook di cui la fatturazione di produzione ha davvero bisogno, quindi tratta il passaggio in live come "pronto a incassare pagamenti" piuttosto che "pienamente indurito per la produzione", finche non hai fatto la parte 2.

- Attiva il tuo account Stripe con veri dati aziendali e bancari, perche i versamenti funzionino.
- Ricrea prodotti e prezzi in modalita live; annota i nuovi ID price_xxx live.
- Scambia sk_test / pk_test con sk_live / pk_live solo nel tuo ambiente in deploy.
- Fai tu stesso una piccola vera transazione per confermare il ciclo live, poi rimborsala.
- Non chiamarlo finito finche la parte 2 non ha cablato i webhook - sono il modo in cui la tua app apprende cosa e davvero successo.

## Errori frequenti

I comuni: mettere la Stripe secret key nel codice frontend, dove ogni visitatore puo leggerla (appartiene solo al backend); mettere gli importi di prezzo in chiaro nel codice invece di referenziare ID di prezzo, cosicche un cambiamento di prezzo vuol dire un ri-deploy; dimenticare che i dati test e live non si connettono mai e farsi prendere dal panico perche la produzione sembra vuota; e il grosso, contro cui questo corso mette in guardia di continuo - pensare che il checkout da solo basti. Senza webhook (parte 2), la tua app indovina se un pagamento e davvero riuscito. Costruisci in modalita test, tieni la secret key al backend e tratta la parte 2 come obbligatoria, non opzionale.

## ROI business

I pagamenti sono il momento in cui il tuo prodotto smette di essere un centro di costi e diventa un business. Stripe lascia un fondatore in solitaria incassare denaro da ovunque nel mondo, secondo un calendario ricorrente, senza team di pagamenti ne auditor PCI, in un pomeriggio. Le subscription trasformano specificamente uno sforzo occasionale in ricavo ricorrente, il che e tutta l'attrattiva finanziaria del SaaS - costruisci una volta e guadagni ogni mese. E il toggle mensile contro annuale non e cosmetico: i piani annuali migliorano il cashflow e riducono il churn, motivo per cui lo stile di questo corso mette la pagina di pricing per default sul prezzo annuale. Essere ben pagato e tanto una decisione di prodotto quanto una decisione tecnica.

## Checklist

Sei pronto per la parte 2 quando tutto questo e vero in modalita test.

- Sai spiegare perche non gestisci mai dati di carta grezzi e cosa fa il checkout per te.
- Hai creato un prodotto con sia un prezzo mensile sia un prezzo annuale.
- Un subscription checkout funziona in modalita test con la carta 4242 4242 4242 4242.
- La Stripe secret key vive solo al backend, in un file env gitignored.

## Risorse

La documentazione Stripe e la reference delle carte di test sono essenziali e sempre aggiornate - tienile aperte mentre costruisci. La Stripe CLI (fortemente usata nella parte 2) vale la pena installarla gia ora. La tua pagina di pricing dovrebbe seguire lo stile di questo corso: prezzo annuale mostrato per default al mese, con un toggle mensile/annuale. Poi, la parte 2 rende la fatturazione davvero affidabile con i webhook.

## La tua missione

In modalita test, crea un prodotto Pro con un prezzo mensile e un prezzo annuale, poi costruisci un subscription checkout che un utente connesso puo completare con la carta di test 4242. Conferma che la subscription appare nel tuo dashboard Stripe di test. Poi prova la carta rifiutata (4000 0000 0000 0002) e nota come la tua app gestisce il fallimento - questa consapevolezza del cammino infelice separa un vero flusso di fatturazione da una demo.

## Prossima lezione

Il checkout e solo meta della storia. La prossima lezione gestisce le parti che rendono la fatturazione degna di fiducia: i webhook (e perche il polling e l'istinto sbagliato), la verifica di firma, l'idempotenza, la proration quando un cliente fa upgrade a meta ciclo, i coupon e i promotion code e l'Embedded Checkout. Sono i dettagli che separano un giocattolo da un vero sistema di fatturazione.

## Transcript

Qui il tuo prodotto puo guadagnare denaro. Stripe gestisce i pagamenti perche tu non tocchi mai dati di carta grezzi. Questa lezione copre Embedded contro Hosted Checkout, il modello prodotti-e-prezzi, le subscription con fatturazione mensile e annuale, le carte di test contro cui costruisci (4242 4242 4242 4242) e la stretta separazione test/produzione che ti lascia fatturare i clienti con fiducia senza rischiare denaro reale in development.
