Zum Hauptinhalt springen

Ü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 den Next.js 16 App Router mit TypeScript, Tailwind CSS 4 und dem @dodopayments/nextjs Adapter.

Funktionen

  • Schnelle Einrichtung - Starten Sie in weniger als 5 Minuten
  • Zahlungsintegration - Vorgekonfigurierter Checkout-Flow mit @dodopayments/nextjs
  • Moderne UI - Saubere, dunkel gestaltete Preisgestaltungseite mit Tailwind CSS
  • Webhook-Handler - Bereitstehender Webhook-Endpunkt für Zahlungsereignisse
  • Kundenportal - Ein-Klick-Abonnementverwaltung
  • TypeScript - Vollständig typisiert mit minimalen, fokussierten Typen
  • Vorab ausgefüllter Checkout - Demonstriert das Übergeben von Kundendaten zur Verbesserung der Benutzererfahrung

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

Repository klonen

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

Abhängigkeiten installieren

npm install
3

API-Anmeldeinformationen abrufen

Melden Sie sich bei Dodo Payments an und holen Sie sich Ihre Anmeldeinformationen aus dem Dashboard:
Stellen Sie sicher, dass Sie sich im Testmodus befinden, während Sie entwickeln!
4

Umgebungsvariablen konfigurieren

Erstellen Sie 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
Verpflichten Sie niemals Ihre .env Datei zur Versionskontrolle. Sie ist bereits in .gitignore enthalten.
5

Fügen Sie Ihre Produkte hinzu

Aktualisieren Sie src/lib/products.ts mit Ihren 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

Entwicklungsserver starten

npm run dev
Öffnen Sie http://localhost:3000, um Ihre Preisgestaltungseite 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

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

Kundendaten vorab ausfüllen

In src/app/components/ProductCard.tsx ersetzen Sie die fest codierten Werte durch Ihre tatsächlichen Benutzerdaten:
customer: {
  name: "John Doe",
  email: "[email protected]",
},

Kundenportal aktualisieren

In src/app/components/Header.tsx ersetzen Sie die fest codierte 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 Verarbeitung von zwei Webhook-Ereignissen in src/app/api/webhook/route.ts:
  • onSubscriptionActive - Ausgelöst, wenn ein Abonnement aktiv wird
  • onPaymentSucceeded - 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öschen Sie node_modules und installieren Sie die Abhängigkeiten neu:
rm -rf node_modules package-lock.json
npm install
Häufige Ursachen:
  • Ungültige Produkt-ID - überprüfen Sie, ob sie in Ihrem Dodo-Dashboard vorhanden ist
  • Falscher API-Schlüssel oder Umgebungsparameter in .env
  • Überprüfen Sie die Browser-Konsole und das Terminal auf Fehler
Für lokale Tests verwenden Sie ngrok, um Ihren Server freizugeben:
ngrok http 3000
Aktualisieren Sie die Webhook-URL in Ihrem Dodo-Dashboard auf die ngrok-URL. Denken Sie daran, Ihre .env-Datei mit dem richtigen Webhook-Verifizierungsschlüssel zu aktualisieren.

Erfahren Sie mehr

Unterstützung

Brauchen Sie Hilfe mit dem Boilerplate?