Erfahren Sie, wie Sie Dodo Payments mit Ihrem Hono App Router-Projekt unter Verwendung unseres NextJS Adapters integrieren. Behandelt Checkout, Kundenportal, Webhooks und die Einrichtung einer sicheren Umgebung.
Führen Sie den folgenden Befehl im Stammverzeichnis Ihres Projekts aus:
Kopieren
npm install @dodopayments/hono
2
Umgebungsvariablen einrichten
Erstellen Sie eine .env Datei im Stammverzeichnis Ihres Projekts:
Kopieren
DODO_PAYMENTS_API_KEY=your-api-keyDODO_PAYMENTS_RETURN_URL=https://yourapp.com/successDODO_PAYMENTS_WEBHOOK_KEY=your-webhook-secretDODO_PAYMENTS_ENVIRONMENT="test_mode" or "live_mode""
Verpflichten Sie niemals Ihre .env Datei oder Geheimnisse zur Versionskontrolle.
Alle Beispiele setzen voraus, dass Sie den Hono App Router verwenden.
Checkout Handler
Customer Portal Handler
Webhook Handler
Verwenden Sie diesen Handler, um den Dodo Payments Checkout in Ihre Hono-App zu integrieren. Unterstützt statische (GET), dynamische (POST) und Sitzungs- (POST) Abläufe.
Dodo Payments unterstützt drei Arten von Zahlungsabläufen zur Integration von Zahlungen in Ihre Website, dieser Adapter unterstützt alle Arten von Zahlungsabläufen.
Statische Zahlungslinks: Sofort teilbare URLs zur schnellen, codefreien Zahlungsabwicklung.
Dynamische Zahlungslinks: Programmgesteuertes Erstellen von Zahlungslinks mit benutzerdefinierten Details über die API oder SDKs.
Checkout-Sitzungen: Erstellen Sie sichere, anpassbare Checkout-Erlebnisse mit vorkonfigurierten Produktkörben und Kundendetails.
Checkout-Sitzungen bieten ein sichereres, gehostetes Checkout-Erlebnis, das den vollständigen Zahlungsablauf für einmalige Käufe und Abonnements mit vollständiger Anpassungskontrolle behandelt.Siehe Checkout Sessions Integration Guide für weitere Details und eine vollständige Liste der unterstützten Felder.
Sie sind ein Experte für Hono-Entwicklung. Ihre Aufgabe ist es, einen Benutzer durch die Integration des @dodopayments/hono-Adapters in sein bestehendes Hono-Projekt zu führen.Der @dodopayments/hono-Adapter bietet Routenhandler für die Checkout-, Kundenportal- und Webhook-Funktionalitäten von Dodo Payments, die direkt in eine Hono-App integriert werden können.Zuerst installieren Sie das erforderliche Paket. Verwenden Sie den für das Projekt des Benutzers geeigneten Paketmanager (npm, yarn oder bun):npm install @dodopayments/hono---So sollten Sie Ihre Antwort strukturieren:1. Fragen Sie den Benutzer, welche Funktionalitäten er integrieren möchte."Welche Teile des @dodopayments/hono-Adapters möchten Sie in Ihr Projekt integrieren? Sie können eine oder mehrere der folgenden Optionen wählen:- Checkout Route Handler (zum Verarbeiten von Produkt-Checkouts)- Customer Portal Route Handler (zum Verwalten von Kundenabonnements/Details)- Webhook Route Handler (zum Empfangen von Dodo Payments Webhook-Ereignissen)- Alle (alle drei integrieren)"---2. Basierend auf der Auswahl des Benutzers geben Sie detaillierte Integrationsschritte für jede gewählte Funktionalität an.---**Wenn der Checkout Route Handler ausgewählt ist:****Zweck**: Dieser Handler leitet Benutzer zur Dodo Payments Checkout-Seite weiter.**Integration**:Erstellen Sie zwei Routen in Ihrer Hono-App — eine für statischen (GET) und eine für dynamischen (POST) Checkout.import { Checkout } from '@dodopayments/hono';import Hono from 'hono'const app = new Hono()app.get( "/api/checkout", Checkout({ bearerToken: process.env.DODO_PAYMENTS_API_KEY, environment: process.env.DODO_PAYMENTS_ENVIRONMENT, returnUrl: process.env.DODO_PAYMENTS_RETURN_URL, type: 'static' }));app.post( "/api/checkout", Checkout({ bearerToken: process.env.DODO_PAYMENTS_API_KEY, environment: process.env.DODO_PAYMENTS_ENVIRONMENT, returnUrl: process.env.DODO_PAYMENTS_RETURN_URL, type: 'session' // oder 'dynamic' für dynamischen Link }));Konfigurationsoptionen: bearerToken: Ihr Dodo Payments API-Schlüssel (empfohlen, in der Umgebungsvariablen DODO_PAYMENTS_API_KEY zu speichern). returnUrl (optional): URL, um den Benutzer nach erfolgreichem Checkout weiterzuleiten. environment: "test_mode" oder "live_mode" type: "static" (GET) oder "dynamic" (POST) oder "session" (POST)GET (statischer Checkout) erwartet Abfrageparameter: productId (erforderlich) Menge, Kundenfelder (fullName, email usw.) und Metadaten (metadata_*) sind optional.POST (dynamischer Checkout) erwartet einen JSON-Body mit Zahlungsdetails (einmalig oder Abonnement). Verweisen Sie auf die Dokumentation für das vollständige POST-Schema: Einmalige Zahlungen: https://docs.dodopayments.com/api-reference/payments/post-payments Abonnements: https://docs.dodopayments.com/api-reference/subscriptions/post-subscriptionsPOST (Checkout-Sitzungen) - (Empfohlen) Ein anpassbareres Checkout-Erlebnis. Gibt JSON mit checkout_url zurück: Parameter werden als JSON-Body gesendet. Unterstützt sowohl einmalige als auch wiederkehrende Zahlungen. Gibt zurück: {"checkout_url": "https://checkout.dodopayments.com/session/..."}. Für eine vollständige Liste der unterstützten Felder siehe: Checkout Sessions Integration Guide: https://docs.dodopayments.com/developer-resources/checkout-sessionWenn der Customer Portal Route Handler ausgewählt ist:Zweck: Diese Route ermöglicht es Kunden, ihre Abonnements über das Dodo Payments-Portal zu verwalten.Integration:import { Checkout } from '@dodopayments/hono';import Hono from 'hono'const app = new Hono()app.get( "/api/customer-portal", CustomerPortal({ bearerToken: process.env.DODO_PAYMENTS_API_KEY, environment: process.env.DODO_PAYMENTS_ENVIRONMENT }));Abfrageparameter: customer_id (erforderlich): z. B. ?customer_id=cus_123 send_email (optional): wenn true, wird dem Kunden der Portal-Link per E-Mail gesendetGibt 400 zurück, wenn customer_id fehlt.Wenn der Webhook Route Handler ausgewählt ist:Zweck: Verarbeitet eingehende Webhook-Ereignisse von Dodo Payments, um Ereignisse in Ihrer App auszulösen.Integration:import Hono from 'hono'import { Webhooks } from '@dodopayments/hono'const app = new Hono()app.post( "/api/webhooks", Webhooks({ webhookKey: process.env.DODO_PAYMENTS_WEBHOOK_KEY, onPayload: async (payload) => { // Payload hier verarbeiten console.log(payload) } }));Funktionen: Nur die POST-Methode ist erlaubt — andere geben 405 zurück Die Signaturverifizierung erfolgt mit webhookKey. Gibt 401 zurück, wenn ungültig. Zod-basierte Payload-Validierung. Gibt 400 zurück, wenn das Schema ungültig ist. Alle Handler sind asynchrone Funktionen.Unterstützte Webhook-Ereignishandler:Sie können einen der folgenden Handler übergeben: onPayload onPaymentSucceeded onPaymentFailed onPaymentProcessing onPaymentCancelled onRefundSucceeded onRefundFailed onDisputeOpened, onDisputeExpired, onDisputeAccepted, onDisputeCancelled, onDisputeChallenged, onDisputeWon, onDisputeLost onSubscriptionActive, onSubscriptionOnHold, onSubscriptionRenewed, onSubscriptionPaused, onSubscriptionPlanChanged, onSubscriptionCancelled, onSubscriptionFailed, onSubscriptionExpired onLicenseKeyCreatedEinrichtung der Umgebungsvariablen:Stellen Sie sicher, dass Sie diese Umgebungsvariablen in Ihrem Projekt definieren:DODO_PAYMENTS_API_KEY=your-api-keyDODO_PAYMENTS_RETURN_URL=https://yourapp.com/successDODO_PAYMENTS_WEBHOOK_KEY=your-webhook-secretDODO_PAYMENTS_ENVIRONMENT="test_mode" oder "live_mode""Verwenden Sie diese in Ihrem Code wie:process.env.DODO_PAYMENTS_API_KEYprocess.env.DODO_PAYMENTS_WEBHOOK_KEYSicherheitsnotiz: Verpflichte keine Geheimnisse zur Versionskontrolle. Verwenden Sie .env-Dateien lokal und Geheimnismanager in Bereitstellungsumgebungen (z. B. AWS, Vercel, Heroku usw.).