Panoramica
Il boilerplate minimo di Next.js è un’app starter con Dodo Payments già collegato. Aggiungi le tue chiavi API e gli ID prodotto per ottenere una pagina dei prezzi che apre il checkout, un endpoint webhook per gli eventi di pagamento e un link al Customer Portal.Questo boilerplate utilizza l’App Router di Next.js 16 con TypeScript, Tailwind CSS 4 e l’adaptor
@dodopayments/nextjs. Per aggiungere gli stessi route handler a un’app esistente, consulta Next.js Adaptor.Caratteristiche
Il boilerplate include:- Configurazione rapida: passa dal clone a una pagina dei prezzi funzionante in circa cinque minuti.
- Checkout: un flusso di checkout preconfigurato basato su
@dodopayments/nextjs. - Pagina dei prezzi: una pagina dei prezzi con tema scuro e stile basato su Tailwind CSS.
- Webhook Handler: un endpoint che verifica la firma di ogni webhook ed esegue il tuo codice per l’evento.
- Customer Portal: un link nell’intestazione che apre il Customer Portal, dove i clienti gestiscono i loro abbonamenti.
- TypeScript: definizioni dei prodotti e handler tipizzati.
- Checkout precompilato: passa il nome e l’email del cliente al checkout, così il cliente non deve reinserirli.
Prerequisiti
Prima di iniziare, ti servono:- Node.js 20.9 o versione successiva, richiesto da Next.js 16.
- Un account Dodo Payments, per creare una chiave API e un webhook signing secret nella dashboard.
Avvio rapido
1
Clone the Repository
2
Install Dependencies
3
Get API Credentials
Registrati su Dodo Payments, quindi recupera le tue credenziali dalla dashboard:
- API Key: crea una chiave in Dashboard → Developer → API Keys.
- Webhook Key: aggiungi un endpoint in Dashboard → Developer → Webhooks, quindi copia il suo signing secret. L’URL dell’endpoint deve essere pubblico e utilizzare HTTPS. Per ricevere eventi sul tuo computer, consulta Webhook Events.
4
Configure Environment Variables
Copia il file di esempio per creare un file Imposta i valori usando le tue credenziali Dodo Payments:I route handler leggono queste variabili:
.env nella directory principale:DODO_PAYMENTS_API_KEYautentica i gestori del checkout e del Customer Portal.DODO_PAYMENTS_WEBHOOK_KEYverifica le firme dei webhook.DODO_PAYMENTS_RETURN_URLindica dove il checkout reindirizza il cliente dopo il pagamento.DODO_PAYMENTS_ENVIRONMENTètest_modeolive_mode.
5
Add Your Products
Sostituisci i prodotti di esempio in La pagina dei prezzi mostra
src/lib/products.ts con i tuoi. Imposta ogni product_id sull’ID di un prodotto nella sezione Products della dashboard:name, description, price e features da questo file. Il checkout addebita il prezzo impostato sul prodotto in Dodo Payments, quindi mantieni price sincronizzato con esso.6
Run the Development Server
Struttura del progetto
I route handler per il checkout, il Customer Portal e i webhook si trovano insrc/app/api/:
Personalizzazione
Aggiornare le informazioni dei prodotti
Modificasrc/lib/products.ts per cambiare:
- ID prodotto, dalla sezione Products della dashboard Dodo Payments
- Prezzi
- Funzionalità
- Descrizioni
Precompilare i dati del cliente
src/app/components/ProductCard.tsx invia un nome e un’email codificati direttamente in ogni richiesta di checkout. Sostituiscili con i dati dell’utente autenticato:
Aggiornare il Customer Portal
Il link Customer Portal insrc/app/components/Header.tsx apre /api/customer-portal con un ID cliente codificato direttamente. Sostituiscilo con l’ID cliente Dodo Payments dell’utente autenticato:
Eventi webhook
Il gestore insrc/app/api/webhook/route.ts verifica ogni richiesta con DODO_PAYMENTS_WEBHOOK_KEY, quindi gestisce due eventi:
onSubscriptionActiveviene eseguito quando un abbonamento diventa attivo (subscription.active).onPaymentSucceededviene eseguito quando un pagamento va a buon fine (payment.succeeded).
onSubscriptionCancelled. Next.js Adaptor elenca tutti gli handler supportati.
Dodo Payments non può raggiungere localhost. Per lo sviluppo locale, usa un tunnel come ngrok per esporre il tuo server locale e utilizza l’URL del tunnel come endpoint webhook.
Deployment
Creare una build per la produzione
Eseguire il deployment su Vercel
[DODO_PAYMENTS_RETURN_URL sull’URL di produzione.
Aggiornare l’URL del webhook
Dopo il deployment, aggiungi l’URL del webhook di produzione nella Dodo Payments Dashboard, sostituendoexample.com con il tuo dominio:
DODO_PAYMENTS_WEBHOOK_KEY nel tuo ambiente di produzione.
Risoluzione dei problemi
Module not found or build errors
Module not found or build errors
Elimina
node_modules e package-lock.json, quindi reinstalla le dipendenze:Checkout redirect fails
Checkout redirect fails
Verifica queste cause comuni:
- L’ID prodotto non esiste nella dashboard Dodo Payments.
- La chiave API o
DODO_PAYMENTS_ENVIRONMENTin.envnon è corretta. Una chiave in modalità test funziona solo contest_mode.
npm run dev.Webhooks not receiving events
Webhooks not receiving events
Per i test locali, usa ngrok per esporre il tuo server:Nel tuo Dodo dashboard, aggiungi un endpoint con l’URL HTTPS di ngrok seguito da
/api/webhook. Copia il signing secret di quell’endpoint in DODO_PAYMENTS_WEBHOOK_KEY nel tuo file .env.Customer portal link doesn't work
Customer portal link doesn't work
Sostituisci l’
CUSTOMER_ID codificato direttamente in src/app/components/Header.tsx con l’ID di un cliente nella dashboard Dodo Payments.In produzione, recupera invece l’ID cliente dal tuo sistema di autenticazione e dal database.Per saperne di più
- Documentazione di Dodo Payments
- Documentazione sulle Checkout Sessions
- Documentazione sui webhook
- Next.js Adaptor: opzioni per i gestori
Checkout,CustomerPortaleWebhooks
Supporto
Per ricevere assistenza sul boilerplate:- Fai domande nella community Discord.
- Segnala problemi e segui gli aggiornamenti nel repository GitHub.
- Scrivi al team di supporto.