Översikt
Astro minimal boilerplate ger en färdig att använda startpunkt för att integrera Dodo Payments med din Astro-applikation. Denna mall inkluderar kassa-sessioner, webhook-hantering, kundportal och moderna UI-komponenter för att hjälpa dig att börja ta emot betalningar snabbt.Denna boilerplate använder Astro 5 med TypeScript, Tailwind CSS 4, och
@dodopayments/astro adapter.Funktioner
- Snabb installation - Kom igång på mindre än 5 minuter
- Betalningsintegration - Förkonfigurerad kassa-flöde med
@dodopayments/astro - Modern UI - Ren, mörk-temad prissida med Tailwind CSS
- Webhook-hanterare - Färdig att använda webhook-endpoint för betalningsevenemang
- Kundportal - Enklicks hantering av prenumerationer
- TypeScript - Fullt typad med minimala, fokuserade typer
- Förifylld kassa - Visar hur man skickar kunddata för att förbättra UX
Förutsättningar
Innan du börjar, se till att du har:- Node.js LTS-version (krävs för Astro 5)
- Dodo Payments-konto (för att få tillgång till API och Webhook-nycklar från instrumentpanelen)
Snabbstart
1
Klona Repositoriet
2
Installera beroenden
3
Få API-uppgifter
Registrera dig på Dodo Payments och få dina uppgifter från instrumentpanelen:
- API-nyckel: Instrumentpanel → Utvecklare → API-nycklar
- Webhook-nyckel: Instrumentpanel → Utvecklare → Webhooks
4
Konfigurera miljövariabler
Skapa en Uppdatera värdena med dina Dodo Payments-uppgifter:
.env fil i rotkatalogen:5
Lägg till dina produkter
Uppdatera
src/lib/products.ts med dina faktiska produkt-ID:n från Dodo Payments:6
Kör utvecklingsservern
Projektstruktur
Anpassning
Uppdatera produktinformation
Redigerasrc/lib/products.ts för att ändra:
- Produkt-ID:n (från din Dodo-instrumentpanel)
- Priser
- Funktioner
- Beskrivningar
Förifyll kunddata
Isrc/components/ProductCard.astro, ersätt de hårdkodade värdena med dina faktiska användardata:
Uppdatera kundportalen
Isrc/components/Header.astro, ersätt det hårdkodade kund-ID:t med det faktiska kund-ID:t från ditt autentiseringssystem eller databas:
Webhook-händelser
Boilerplate visar hur man hanterar webhook-händelser isrc/pages/api/webhook.ts:
onSubscriptionActive- Utlöses när en prenumeration blir aktivonSubscriptionCancelled- Utlöses när en prenumeration avbryts
Distribution
Denna boilerplate använder statisk utdata med on-demand rendering för API-rutter. Du behöver installera en adapter för din distributionsplattform:| Plattform | Guide |
|---|---|
| Vercel | Distribuera till Vercel |
| Netlify | Distribuera till Netlify |
| Cloudflare | Distribuera till Cloudflare |
Uppdatera Webhook-URL
Efter distribution, uppdatera din webhook-URL i Dodo Payments Dashboard:DODO_PAYMENTS_WEBHOOK_KEY miljövariabeln i din produktionsmiljö för att matcha webhook-signaturnyckeln för din distribuerade domän.
Felsökning
Modul hittades inte eller byggfel
Modul hittades inte eller byggfel
Ta bort
node_modules och installera om beroenden:Kassa-omdirigering misslyckas
Kassa-omdirigering misslyckas
Vanliga orsaker:
- Ogiltigt produkt-ID - verifiera att det finns i din Dodo-instrumentpanel
- Fel API-nyckel eller miljöinställning i
.env - Kontrollera webbläsarens konsol och terminalen för fel
Webhooks tar inte emot händelser
Webhooks tar inte emot händelser
För lokal testning, använd ngrok för att exponera din server:Uppdatera webhook-URL:en i din Dodo-instrumentpanel till ngrok-URL:en. Kom ihåg att uppdatera din .env-fil med den korrekta webhook-verifieringsnyckeln.
Kundportalens länk fungerar inte
Kundportalens länk fungerar inte
Ersätt den hårdkodade
CUSTOMER_ID i src/components/Header.astro med ett faktiskt kund-ID från din Dodo-instrumentpanel.Eller integrera ditt autentiseringssystem och databas för att hämta kund-ID:t dynamiskt.Bygg misslyckas med adapterfel
Bygg misslyckas med adapterfel
Denna boilerplate använder statisk utdata med on-demand API-rutter. Du behöver installera en adapter för distribution:Se Astros distributionsguider för detaljer.
Lär dig mer
Support
Behöver du hjälp med boilerplate?- Gå med i vår Discord-community för frågor och diskussioner
- Kolla in GitHub-repositoriet för problem och uppdateringar
- Kontakta vårt supportteam för hjälp