Skip to main content

Übersicht

Das minimale Astro-Boilerplate ist eine Starter-App, in der Dodo Payments bereits verbunden ist. Fügen Sie Ihre API-Keys und Produkt-IDs hinzu, und Sie erhalten eine Preisseite, die den Checkout öffnet, einen Webhook-Endpunkt für Zahlungsereignisse und einen Link zum Customer Portal.
Dieses Boilerplate verwendet Astro 5 mit TypeScript, Tailwind CSS 4 und dem @dodopayments/astro-Adaptor. Informationen dazu, wie Sie dieselben API-Routen zu einer bestehenden App hinzufügen, finden Sie unter Astro Adaptor.

Funktionen

Das Boilerplate umfasst:
  • Schnelle Einrichtung: Vom Klonen bis zu einer laufenden Preisseite in etwa fünf Minuten.
  • Checkout: Ein vorkonfigurierter Checkout-Ablauf auf Basis von @dodopayments/astro.
  • Preisseite: Eine dunkel gehaltene Preisseite mit Tailwind CSS.
  • Webhook-Handler: Ein Endpunkt, der jede Webhook-Signatur überprüft und Ihren Code für das Ereignis ausführt.
  • Customer Portal: Ein Link in der Kopfzeile, der das Customer Portal öffnet, in dem Kunden ihre Abonnements verwalten.
  • TypeScript: Typisierte Produktdefinitionen und Handler.
  • Vorausgefüllter Checkout: Übermittelt den Namen und die E-Mail-Adresse des Kunden an den Checkout, damit der Kunde sie nicht erneut eingeben muss.

Voraussetzungen

Bevor Sie beginnen, benötigen Sie:
  • Eine Node.js-LTS-Version, die von Astro 5 vorausgesetzt wird.
  • Ein Dodo Payments-Konto, um im Dashboard einen API-Key und ein Webhook-Signaturgeheimnis zu erstellen.

Schnellstart

1

Clone the Repository

2

Install Dependencies

3

Get API Credentials

Registrieren Sie sich bei Dodo Payments und rufen Sie anschließend Ihre Zugangsdaten im Dashboard ab:
Erstellen Sie beide, während der Schalter Live Mode in der Seitenleiste deaktiviert ist. Ein Testmodus-Key funktioniert nur mit DODO_PAYMENTS_ENVIRONMENT=test_mode, und Zahlungen im Testmodus bewegen kein echtes Geld.
4

Configure Environment Variables

Kopieren Sie die Beispieldatei, um eine .env-Datei im Stammverzeichnis zu erstellen:
Legen Sie die Werte für Ihre Dodo Payments-Zugangsdaten fest:
.env.example setzt DODO_PAYMENTS_RETURN_URL auf Port 3000. Ändern Sie den Wert auf 4321, den vom Astro-Dev-Server verwendeten Port, damit der Checkout den Kunden zu Ihrer App zurückleitet.Die API-Routen lesen diese Variablen:
  • DODO_PAYMENTS_API_KEY authentifiziert die Checkout- und Customer-Portal-Routen.
  • DODO_PAYMENTS_WEBHOOK_KEY überprüft Webhook-Signaturen.
  • DODO_PAYMENTS_RETURN_URL gibt an, wohin der Checkout den Kunden nach der Zahlung weiterleitet.
  • DODO_PAYMENTS_ENVIRONMENT ist test_mode oder live_mode.
Committen Sie Ihre .env-Datei nicht in die Versionsverwaltung. Die .gitignore des Repositorys schließt sie bereits aus.
5

Add Your Products

Ersetzen Sie die Beispielprodukte in src/lib/products.ts durch Ihre eigenen. Legen Sie für jedes product_id die ID eines Produkts unter Products in Ihrem Dashboard fest:
Die Preisseite zeigt name, description, price und features aus dieser Datei an. Der Checkout berechnet den beim Produkt in Dodo Payments festgelegten Preis. Halten Sie daher price mit diesem synchron.
6

Run the Development Server

Öffnen Sie http://localhost:4321, um Ihre Preisseite anzuzeigen.

Projektstruktur

Die API-Routen für Checkout, Customer Portal und Webhooks befinden sich unter src/pages/api/:

Anpassung

Produktinformationen aktualisieren

Bearbeiten Sie src/lib/products.ts, um Folgendes zu ändern:
  • Produkt-IDs aus dem Products-Bereich Ihres Dodo Payments-Dashboards
  • Preise
  • Funktionen
  • Beschreibungen

Kundendaten vorausfüllen

Das Checkout-Skript in src/components/ProductCard.astro sendet bei jeder Checkout-Anfrage einen fest codierten Namen und eine fest codierte E-Mail-Adresse. Ersetzen Sie diese durch die Daten des angemeldeten Benutzers:

Customer Portal aktualisieren

Der Customer Portal-Link in src/components/Header.astro öffnet /api/customer-portal mit einer fest codierten Kunden-ID. Ersetzen Sie diese durch die Kunden-ID aus Ihrem Authentifizierungssystem oder Ihrer Datenbank:
Um eine Kunden-ID zum Testen zu erhalten, führen Sie einen Testkauf durch und kopieren Sie anschließend die Kunden-ID aus Customers im Dashboard.

Webhook-Ereignisse

Der Handler in src/pages/api/webhook.ts überprüft jede Anfrage mit DODO_PAYMENTS_WEBHOOK_KEY und verarbeitet anschließend zwei Ereignisse:
  • onSubscriptionActive wird ausgeführt, wenn ein Abonnement aktiv wird (subscription.active).
  • onSubscriptionCancelled wird ausgeführt, wenn ein Abonnement gekündigt wird (subscription.cancelled).
Fügen Sie Ihre Geschäftslogik in diesen Handlern ein:
Um weitere Ereignisse zu verarbeiten, fügen Sie deren Handler hinzu, beispielsweise onPaymentSucceeded. Unter Astro Adaptor finden Sie eine Liste aller unterstützten Handler. Dodo Payments kann localhost nicht erreichen. Verwenden Sie für die lokale Entwicklung einen Tunnel wie ngrok, um Ihren lokalen Server öffentlich bereitzustellen, und verwenden Sie die Tunnel-URL als Webhook-Endpunkt.

Bereitstellung

Astro erstellt die Seiten als statische Ausgabe, und jede API-Route setzt export const prerender = false, damit sie bei Bedarf gerendert wird. Routen, die bei Bedarf gerendert werden, benötigen einen Astro-Adapter für Ihre Bereitstellungsplattform: Informationen zu anderen Plattformen finden Sie in den Bereitstellungsanleitungen von Astro. Fügen Sie in Ihrer Hosting-Plattform die vier Umgebungsvariablen hinzu und setzen Sie DODO_PAYMENTS_RETURN_URL auf Ihre Produktions-URL.

Webhook-URL aktualisieren

Fügen Sie nach der Bereitstellung Ihre Produktions-Webhook-URL im Dodo Payments Dashboard hinzu:
Jeder Endpunkt verfügt über ein eigenes Signaturgeheimnis. Setzen Sie DODO_PAYMENTS_WEBHOOK_KEY in Ihrer Produktionsumgebung auf das Signaturgeheimnis dieses Endpunkts.

Fehlerbehebung

Löschen Sie node_modules und package-lock.json und installieren Sie anschließend die Abhängigkeiten neu:
Überprüfen Sie diese häufigen Ursachen:
  • Die Produkt-ID ist in Ihrem Dodo Payments-Dashboard nicht vorhanden.
  • Der API-Key oder DODO_PAYMENTS_ENVIRONMENT in .env ist falsch. Ein Testmodus-Key funktioniert nur mit test_mode.
Suchen Sie im Browser-Console und im Terminal, in dem npm run dev ausgeführt wird, nach dem Fehler.
Verwenden Sie für lokale Tests ngrok, um Ihren Server öffentlich bereitzustellen:
Fügen Sie in Ihrem Dodo-Dashboard einen Endpunkt mit der ngrok-HTTPS-URL gefolgt von /api/webhook hinzu. Kopieren Sie das Signaturgeheimnis dieses Endpunkts in DODO_PAYMENTS_WEBHOOK_KEY in Ihrer .env-Datei.
Die API-Routen werden bei Bedarf gerendert, und das Repository enthält keinen Bereitstellungsadapter. Installieren Sie den Astro-Adapter für Ihre Plattform, bevor Sie einen Produktions-Build erstellen.Weitere Informationen finden Sie in den Bereitstellungsanleitungen von Astro.

Weitere Informationen

Support

Wenn Sie Hilfe zum Boilerplate benötigen:
Zuletzt geändert am 26. September 2026