Hoppa till huvudinnehåll

Översikt

Next.js minimala mall ger en färdig att använda startpunkt för att integrera Dodo Payments med din Next.js-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 mall använder Next.js 16 App Router med TypeScript, Tailwind CSS 4 och @dodopayments/nextjs adaptern.

Funktioner

  • Snabb installation - Kom igång på mindre än 5 minuter
  • Betalningsintegration - Förkonfigurerad kassa-flöde med @dodopayments/nextjs
  • 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 20.9+ (krävs för Next.js 16)
  • Dodo Payments-konto (för att få tillgång till API och Webhook-nycklar från instrumentpanelen)

Snabbstart

1

Klona Repositoriet

git clone https://github.com/dodopayments/dodo-nextjs-minimal-boilerplate.git
cd dodo-nextjs-minimal-boilerplate
2

Installera beroenden

npm install
3

Få API-uppgifter

Registrera dig på Dodo Payments och hämta dina uppgifter från instrumentpanelen:
Se till att du är i Testläge medan du utvecklar!
4

Konfigurera miljövariabler

Skapa en .env fil i rotkatalogen:
cp .env.example .env
Uppdatera värdena med dina Dodo Payments-uppgifter:
DODO_PAYMENTS_API_KEY=your_api_key_here
DODO_PAYMENTS_WEBHOOK_KEY=your_webhook_signing_key_here
DODO_PAYMENTS_RETURN_URL=http://localhost:3000
DODO_PAYMENTS_ENVIRONMENT=test_mode
Kom ihåg att aldrig begå din .env fil till versionskontroll. Den är redan inkluderad i .gitignore.
5

Lägg till dina produkter

Uppdatera src/lib/products.ts med dina faktiska produkt-ID:n från Dodo Payments:
export const products: Product[] = [
  {
    product_id: "pdt_001", // Replace with your product ID
    name: "Basic Plan",
    description: "Get access to basic features and support",
    price: 9999, // in cents
    features: [
      "Access to basic features",
      "Email support",
      "1 Team member",
      "Basic analytics",
    ],
  },
  // ... add more products
];
6

Kör utvecklingsservern

npm run dev
Öppna http://localhost:3000 för att se din prissida!

Projektstruktur

src/
├── app/
│   ├── api/
│   │   ├── checkout/          # Checkout session handler
│   │   ├── customer-portal/   # Customer portal redirect
│   │   └── webhook/           # Webhook event handler
│   ├── components/
│   │   ├── Footer.tsx         # Reusable footer
│   │   ├── Header.tsx         # Navigation header
│   │   └── ProductCard.tsx    # Product pricing card
│   ├── globals.css            # Global styles
│   ├── layout.tsx             # Root layout
│   └── page.tsx               # Pricing page (home)
└── lib/
    └── products.ts            # Product definitions

Anpassning

Uppdatera produktinformation

Redigera src/lib/products.ts för att ändra:
  • Produkt-ID:n (från din Dodo-instrumentpanel)
  • Priser
  • Funktioner
  • Beskrivningar

Förifyll kunddata

I src/app/components/ProductCard.tsx, ersätt de hårdkodade värdena med dina faktiska användardata:
customer: {
  name: "John Doe",
  email: "[email protected]",
},

Uppdatera kundportalen

I src/app/components/Header.tsx, ersätt det hårdkodade kund-ID:t:
const CUSTOMER_ID = "cus_001"; // Replace with actual customer ID
Du kan genomföra ett testköp för att få kund-ID:t för testning.

Webhook-händelser

Mallen visar hur man hanterar två webhook-händelser i src/app/api/webhook/route.ts:
  • onSubscriptionActive - Utlöses när en prenumeration blir aktiv
  • onPaymentSucceeded - Utlöses när en betalning är framgångsrik
Lägg till din affärslogik inuti dessa hanterare:
onSubscriptionActive: async (payload) => {
  // Grant access to your product
  // Update user database
  // Send welcome email
},
Lägg till fler webhook-händelser vid behov. För lokal utveckling kan du använda verktyg som ngrok för att skapa en säker tunnel till din lokala server och använda den som din webhook-URL.

Distribution

Bygg för produktion

npm run build
npm start

Distribuera till Vercel

[ Distribuera med Vercel ](https://vercel.com/new/clone?repository-url=https://github.com/dodopayments/dodo-nextjs-minimal-boilerplate) Glöm inte att lägga till dina miljövariabler i Vercel-instrumentpanelen!

Uppdatera Webhook-URL

Efter distribution, uppdatera din webhook-URL i Dodo Payments Dashboard:
https://example.com/api/webhook

Felsökning

Ta bort node_modules och installera om beroenden:
rm -rf node_modules package-lock.json
npm install
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
För lokal testning, använd ngrok för att exponera din server:
ngrok http 3000
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.
Ersätt den hårdkodade CUSTOMER_ID i src/app/components/Header.tsx 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.

Lär dig mer

Support

Behöver du hjälp med mallen?