Ü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:
- API-Key: Erstellen Sie einen Key unter Dashboard → Developer → API Keys.
- Webhook-Key: Fügen Sie unter Dashboard → Developer → Webhooks einen Endpunkt hinzu und kopieren Sie anschließend dessen Signaturgeheimnis. Die URL des Endpunkts muss öffentlich erreichbar sein und HTTPS verwenden. Informationen zum Empfangen von Ereignissen auf Ihrem Computer finden Sie unter Webhook Events.
4
Configure Environment Variables
Kopieren Sie die Beispieldatei, um eine Legen Sie die Werte für Ihre Dodo Payments-Zugangsdaten fest:
.env-Datei im Stammverzeichnis zu erstellen:.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_KEYauthentifiziert die Checkout- und Customer-Portal-Routen.DODO_PAYMENTS_WEBHOOK_KEYüberprüft Webhook-Signaturen.DODO_PAYMENTS_RETURN_URLgibt an, wohin der Checkout den Kunden nach der Zahlung weiterleitet.DODO_PAYMENTS_ENVIRONMENTisttest_modeoderlive_mode.
5
Add Your Products
Ersetzen Sie die Beispielprodukte in Die Preisseite zeigt
src/lib/products.ts durch Ihre eigenen. Legen Sie für jedes product_id die ID eines Produkts unter Products in Ihrem Dashboard fest: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
Projektstruktur
Die API-Routen für Checkout, Customer Portal und Webhooks befinden sich untersrc/pages/api/:
Anpassung
Produktinformationen aktualisieren
Bearbeiten Siesrc/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 insrc/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 insrc/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:
Webhook-Ereignisse
Der Handler insrc/pages/api/webhook.ts überprüft jede Anfrage mit DODO_PAYMENTS_WEBHOOK_KEY und verarbeitet anschließend zwei Ereignisse:
onSubscriptionActivewird ausgeführt, wenn ein Abonnement aktiv wird (subscription.active).onSubscriptionCancelledwird ausgeführt, wenn ein Abonnement gekündigt wird (subscription.cancelled).
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 setztexport 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:DODO_PAYMENTS_WEBHOOK_KEY in Ihrer Produktionsumgebung auf das Signaturgeheimnis dieses Endpunkts.
Fehlerbehebung
Module not found or build errors
Module not found or build errors
Löschen Sie
node_modules und package-lock.json und installieren Sie anschließend die Abhängigkeiten neu:Checkout redirect fails
Checkout redirect fails
Überprüfen Sie diese häufigen Ursachen:
- Die Produkt-ID ist in Ihrem Dodo Payments-Dashboard nicht vorhanden.
- Der API-Key oder
DODO_PAYMENTS_ENVIRONMENTin.envist falsch. Ein Testmodus-Key funktioniert nur mittest_mode.
npm run dev ausgeführt wird, nach dem Fehler.Webhooks not receiving events
Webhooks not receiving events
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.Customer portal link doesn't work
Customer portal link doesn't work
Ersetzen Sie
CUSTOMER_ID in src/components/Header.astro durch die ID eines Kunden in Ihrem Dodo Payments-Dashboard.Rufen Sie die Kunden-ID in der Produktion stattdessen aus Ihrem Authentifizierungssystem und Ihrer Datenbank ab.Build fails with adapter error
Build fails with adapter error
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
- Dodo Payments-Dokumentation
- Dokumentation zu Checkout Sessions
- Webhooks-Dokumentation
- Astro Adaptor: Optionen für die
Checkout-,CustomerPortal- undWebhooks-Handler - Astro-Dokumentation
Support
Wenn Sie Hilfe zum Boilerplate benötigen:- Stellen Sie Fragen in der Discord-Community.
- Melden Sie Probleme und verfolgen Sie Aktualisierungen im GitHub-Repository.
- Schreiben Sie eine E-Mail an das Support-Team.