Översikt
Det minimala Next.js-boilerplate-projektet är en startapp där Dodo Payments redan är anslutet. Lägg till dina API-nycklar och produkt-ID:n så får du en prissida som öppnar checkout, en webhook-endpoint för betalningshändelser och en länk till Customer Portal.Detta boilerplate använder Next.js 16 App Router med TypeScript, Tailwind CSS 4 och
@dodopayments/nextjs-adaptern. Om du vill lägga till samma route handlers i en befintlig app kan du läsa Next.js Adaptor.Funktioner
Boilerplate-projektet innehåller:- Snabb installation: Gå från klonat repository till en fungerande prissida på cirka fem minuter.
- Checkout: Ett förkonfigurerat checkout-flöde byggt på
@dodopayments/nextjs. - Prissida: En mörk prissida formgiven med Tailwind CSS.
- Webhook-hanterare: En endpoint som verifierar varje webhook-signatur och kör din kod för händelsen.
- Customer Portal: En länk i sidhuvudet som öppnar Customer Portal, där kunder hanterar sina prenumerationer.
- TypeScript: Typade produktdefinitioner och hanterare.
- Förifylld checkout: Skickar kundens namn och e-postadress till checkout så att kunden inte behöver skriva in dem igen.
Förutsättningar
Innan du börjar behöver du:- Node.js 20.9 eller senare, vilket Next.js 16 kräver.
- Ett Dodo Payments-konto, för att skapa en API-nyckel och en webhook-signeringhemlighet i dashboarden.
Snabbstart
1
Clone the Repository
2
Install Dependencies
3
Get API Credentials
Registrera dig hos Dodo Payments och hämta sedan dina inloggningsuppgifter från dashboarden:
- API Key: Skapa en nyckel under Dashboard → Developer → API Keys.
- Webhook Key: Lägg till en endpoint under Dashboard → Developer → Webhooks och kopiera sedan dess signeringshemlighet. Endpoint-URL:en måste vara offentlig och använda HTTPS. Information om hur du tar emot händelser på din dator finns i Webhook Events.
4
Configure Environment Variables
Kopiera exempelfilen för att skapa en Ange värdena för dina Dodo Payments-inloggningsuppgifter:Route handlers läser dessa variabler:
.env-fil i rotkatalogen:DODO_PAYMENTS_API_KEYautentiserar checkout- och Customer Portal-hanterarna.DODO_PAYMENTS_WEBHOOK_KEYverifierar webhook-signaturer.DODO_PAYMENTS_RETURN_URLär platsen dit checkout skickar kunden efter betalningen.DODO_PAYMENTS_ENVIRONMENTärtest_modeellerlive_mode.
5
Add Your Products
Ersätt exempelprodukterna i Prissidan visar
src/lib/products.ts med dina egna. Ange varje product_id till ID:t för en produkt under Products i din dashboard:name, description, price och features från den här filen. Checkout debiterar det pris som angetts för produkten i Dodo Payments, så håll price synkroniserad med det.6
Run the Development Server
Projektstruktur
Route handlers för checkout, Customer Portal och webhooks finns undersrc/app/api/:
Anpassning
Uppdatera produktinformation
Redigerasrc/lib/products.ts för att ändra:
- Produkt-ID:n, från Products i din Dodo Payments-dashboard
- Priser
- Funktioner
- Beskrivningar
Förifyll kunduppgifter
src/app/components/ProductCard.tsx skickar ett hårdkodat namn och en hårdkodad e-postadress med varje checkout-begäran. Ersätt dem med den inloggade användarens uppgifter:
Uppdatera Customer Portal
Länken Customer Portal isrc/app/components/Header.tsx öppnar /api/customer-portal med ett hårdkodat kund-ID. Ersätt det med den inloggade användarens Dodo Payments-kund-ID:
Webhook-händelser
Hanteraren isrc/app/api/webhook/route.ts verifierar varje begäran med DODO_PAYMENTS_WEBHOOK_KEY och hanterar sedan två händelser:
onSubscriptionActivekörs när en prenumeration blir aktiv (subscription.active).onPaymentSucceededkörs när en betalning lyckas (payment.succeeded).
onSubscriptionCancelled. Next.js Adaptor innehåller en lista över alla hanterare som stöds.
Dodo Payments kan inte nå localhost. Vid lokal utveckling kan du använda en tunnel, till exempel ngrok, för att exponera din lokala server och använda tunnel-URL:en som din webhook-endpoint.
Driftsättning
Bygg för produktion
Distribuera till Vercel
[DODO_PAYMENTS_RETURN_URL till din produktions-URL.
Uppdatera webhook-URL
När du har distribuerat lägger du till din webhook-URL för produktion i Dodo Payments Dashboard, med din domän i stället förexample.com:
DODO_PAYMENTS_WEBHOOK_KEY i din produktionsmiljö.
Felsökning
Module not found or build errors
Module not found or build errors
Ta bort
node_modules och package-lock.json och installera sedan om beroendena:Checkout redirect fails
Checkout redirect fails
Kontrollera dessa vanliga orsaker:
- Produkt-ID:t finns inte i din Dodo Payments-dashboard.
- API-nyckeln eller
DODO_PAYMENTS_ENVIRONMENTi.envär fel. En testlägesnyckel fungerar endast medtest_mode.
npm run dev körs.Webhooks not receiving events
Webhooks not receiving events
Använd ngrok för att exponera din server vid lokal testning:Lägg till en endpoint med ngroks HTTPS-URL följd av
/api/webhook i din Dodo-dashboard. Kopiera den endpointens signeringshemlighet till DODO_PAYMENTS_WEBHOOK_KEY i din .env-fil.Customer portal link doesn't work
Customer portal link doesn't work
Ersätt det hårdkodade
CUSTOMER_ID i src/app/components/Header.tsx med ID:t för en kund i din Dodo Payments-dashboard.I produktion hämtar du i stället kund-ID:t från ditt autentiseringssystem och din databas.Läs mer
- Dodo Payments Documentation
- Checkout Sessions Documentation
- Webhooks Documentation
- Next.js Adaptor: alternativ för hanterarna
Checkout,CustomerPortalochWebhooks
Support
Om du behöver hjälp med boilerplate-projektet:- Ställ frågor i Discord-communityt.
- Rapportera problem och följ uppdateringar i GitHub-repositoryt.
- Mejla supportteamet.