Panoramica
Il boilerplate Astro minimale fornisce un punto di partenza pronto all’uso per integrare Dodo Payments con la tua applicazione Astro. Questo template include sessioni di checkout, gestione dei webhook, portale clienti e componenti UI moderni per aiutarti ad accettare pagamenti rapidamente.Questo boilerplate utilizza Astro 5 con TypeScript, Tailwind CSS 4 e l’adapter
@dodopayments/astro.Caratteristiche
- Configurazione rapida - Inizia in meno di 5 minuti
- Integrazione pagamenti - Flusso di checkout preconfigurato con
@dodopayments/astro - UI moderna - Pagina prezzi pulita e a tema scuro con Tailwind CSS
- Gestore webhook - Endpoint webhook pronto all’uso per gli eventi di pagamento
- Portale clienti - Gestione abbonamenti con un clic
- TypeScript - Tipizzazione completa con tipi minimi e mirati
- Checkout precompilato - Mostra come passare i dati del cliente per migliorare l’esperienza utente
Requisiti
Prima di iniziare, assicurati di avere:- Versione LTS di Node.js (richiesta per Astro 5)
- Account Dodo Payments (per accedere alle chiavi API e Webhook dal dashboard)
Avvio Rapido
Get API Credentials
Iscriviti a Dodo Payments e ottieni le tue credenziali dalla dashboard:
- API Key: Dashboard → Developer → API Keys
- Webhook Key: Dashboard → Developer → Webhooks
Configure Environment Variables
Crea un file Aggiorna i valori con le tue credenziali Dodo Payments:
.env nella directory principale:Run the Development Server
Struttura del Progetto
Personalizzazione
Aggiorna le Informazioni sul Prodotto
Modificasrc/lib/products.ts per aggiornare:
- ID prodotto (dalla tua dashboard Dodo)
- Prezzi
- Funzionalità
- Descrizioni
Pre-compila i Dati del Cliente
Insrc/components/ProductCard.astro, sostituisci i valori hardcoded con i dati reali del tuo utente:
Aggiorna il Portale Clienti
Insrc/components/Header.astro, sostituisci l’ID cliente hardcoded con l’ID cliente reale del tuo sistema di autenticazione o database:
Eventi Webhook
Il boilerplate dimostra la gestione degli eventi webhook insrc/pages/api/webhook.ts:
onSubscriptionActive- Attivato quando un abbonamento diventa attivoonSubscriptionCancelled- Attivato quando un abbonamento viene annullato
Distribuzione
Questo boilerplate utilizza output statico con rendering on-demand per le rotte API. Dovrai installare un adapter per la tua piattaforma di distribuzione:| Piattaforma | Guida |
|---|---|
| Vercel | Distribuisci su Vercel |
| Netlify | Distribuisci su Netlify |
| Cloudflare | Distribuisci su Cloudflare |
Aggiorna l’URL del Webhook
Dopo la distribuzione, aggiorna il tuo URL del webhook nel Dashboard di Dodo Payments:DODO_PAYMENTS_WEBHOOK_KEY nel tuo ambiente di produzione per abbinare la chiave di firma webhook per il dominio distribuito.
Risoluzione dei Problemi
Module not found or build errors
Module not found or build errors
Elimina
node_modules e reinstalla le dipendenze:Checkout redirect fails
Checkout redirect fails
Cause comuni:
- ID prodotto non valido - verifica che esista nella tua dashboard Dodo
- Chiave API errata o impostazione ambiente sbagliata in
.env - Controlla la console del browser e il terminale per gli errori
Webhooks not receiving events
Webhooks not receiving events
Per i test locali, usa ngrok per esporre il tuo server:Aggiorna l’URL del webhook nella tua dashboard Dodo con l’URL ngrok. Ricorda di aggiornare il file .env con la chiave di verifica webhook corretta.
Customer portal link doesn't work
Customer portal link doesn't work
Sostituisci l’hardcoded
CUSTOMER_ID in src/components/Header.astro con un ID cliente reale dalla tua dashboard Dodo.Oppure integra il tuo sistema di autenticazione e database per recuperare dinamicamente l’ID cliente.Build fails with adapter error
Build fails with adapter error
Questo boilerplate usa output statico con API routes on-demand. È necessario installare un adapter per la distribuzione:Consulta le guide di distribuzione di Astro per i dettagli.
Scopri di Più
- Documentazione di Dodo Payments
- Documentazione delle Sessioni di Checkout
- Documentazione dei Webhook
Supporto
Hai bisogno di aiuto con il boilerplate?- Unisciti alla nostra comunità Discord per domande e discussioni
- Controlla il repository GitHub per problemi e aggiornamenti
- Contatta il nostro team di supporto per assistenza