Zum Hauptinhalt springen

Documentation Index

Fetch the complete documentation index at: https://docs.dodopayments.com/llms.txt

Use this file to discover all available pages before exploring further.

Übersicht

Das Next.js Minimal Boilerplate bietet einen sofort einsatzbereiten Ausgangspunkt für die Integration von Dodo Payments in Ihre Next.js-Anwendung. Diese Vorlage umfasst Checkout-Sitzungen, Webhook-Verarbeitung, Kundenportal und moderne UI-Komponenten, um Ihnen zu helfen, schnell Zahlungen zu akzeptieren.
Dieses Boilerplate verwendet Next.js 16 App Router mit TypeScript, Tailwind CSS 4 und dem @dodopayments/nextjs-Adapter.

Funktionen

  • Schnelle Einrichtung – In weniger als 5 Minuten startklar
  • Zahlungsintegration – Vorgefertigter Checkout-Flow mit @dodopayments/nextjs
  • Moderne Oberfläche – Saubere, dunkel gehaltene Preisübersicht mit Tailwind CSS
  • Webhook-Handler – Bereit nutzbarer Webhook-Endpunkt für Zahlungsereignisse
  • Kundenportal – Ein-Klick-Verwaltung von Abonnements
  • TypeScript – Vollständig typisiert mit minimalen, fokussierten Typen
  • Vorbefüllter Checkout – Zeigt, wie Kundendaten zur Verbesserung der UX übergeben werden

Voraussetzungen

Bevor Sie beginnen, stellen Sie sicher, dass Sie Folgendes haben:
  • Node.js 20.9+ (erforderlich für Next.js 16)
  • Dodo Payments-Konto (um API- und Webhook-Keys vom Dashboard abzurufen)

Schnellstart

1

Clone the Repository

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

Install Dependencies

npm install
3

Get API Credentials

Melde dich bei Dodo Payments an und hole dir deine Zugangsdaten über das Dashboard:
Stelle sicher, dass du dich beim Entwickeln im Testmodus befindest!
4

Configure Environment Variables

Erstelle eine .env-Datei im Stammverzeichnis:
cp .env.example .env
Aktualisieren Sie die Werte mit Ihren Dodo Payments-Anmeldeinformationen:
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
Committe deine .env-Datei niemals in die Versionskontrolle. Sie ist bereits in .gitignore enthalten.
5

Add Your Products

Aktualisiere src/lib/products.ts mit deinen tatsächlichen Produkt-IDs von 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

Run the Development Server

npm run dev
Öffne http://localhost:3000, um deine Preisübersicht zu sehen!

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

Anpassung

Produktinformationen aktualisieren

Bearbeite src/lib/products.ts, um zu ändern:
  • Produkt-IDs (aus deinem Dodo-Dashboard)
  • Preise
  • Funktionen
  • Beschreibungen

Kundendaten vorab ausfüllen

Ersetze in src/app/components/ProductCard.tsx die hartcodierten Werte durch deine tatsächlichen Benutzerdaten:
customer: {
  name: "John Doe",
  email: "john@example.com",
},

Kundenportal aktualisieren

Ersetze in src/app/components/Header.tsx die hartcodierte Kunden-ID:
const CUSTOMER_ID = "cus_001"; // Replace with actual customer ID
Sie können einen Testkauf abschließen, um die Kunden-ID für Tests zu erhalten.

Webhook-Ereignisse

Das Boilerplate demonstriert die Behandlung von zwei Webhook-Ereignissen in src/app/api/webhook/route.ts:
  • onSubscriptionActive – Wird ausgelöst, wenn ein Abonnement aktiv wird
  • onPaymentSucceeded – Wird ausgelöst, wenn eine Zahlung erfolgreich ist
Fügen Sie Ihre Geschäftslogik in diese Handler ein:
onSubscriptionActive: async (payload) => {
  // Grant access to your product
  // Update user database
  // Send welcome email
},
Fügen Sie bei Bedarf weitere Webhook-Ereignisse hinzu. Für die lokale Entwicklung können Sie Tools wie ngrok verwenden, um einen sicheren Tunnel zu Ihrem lokalen Server zu erstellen und ihn als Ihre Webhook-URL zu verwenden.

Bereitstellung

Für die Produktion bauen

npm run build
npm start

Auf Vercel bereitstellen

[ Mit Vercel bereitstellen ](https://vercel.com/new/clone?repository-url=https://github.com/dodopayments/dodo-nextjs-minimal-boilerplate) Vergessen Sie nicht, Ihre Umgebungsvariablen im Vercel-Dashboard hinzuzufügen!

Webhook-URL aktualisieren

Nach der Bereitstellung aktualisieren Sie Ihre Webhook-URL im Dodo Payments Dashboard:
https://example.com/api/webhook

Fehlersuche

Lösche node_modules und installiere die Abhängigkeiten neu:
rm -rf node_modules package-lock.json
npm install
Häufige Ursachen:
  • Ungültige Produkt-ID – überprüfe, ob sie in deinem Dodo-Dashboard existiert
  • Falscher API-Schlüssel oder Umgebungseinstellung in .env
  • Prüfe Browser-Konsole und Terminal auf Fehler
Für lokale Tests nutze ngrok, um deinen Server freizugeben:
ngrok http 3000
Aktualisiere die Webhook-URL in deinem Dodo-Dashboard auf die ngrok-URL. Denk daran, deine .env-Datei mit dem korrekten Webhook-Verifizierungsschlüssel zu aktualisieren.

Erfahren Sie mehr

Unterstützung

Brauchen Sie Hilfe mit dem Boilerplate?
Last modified on February 27, 2026