Hoppa till huvudinnehåll

Översikt

Den Better Auth Adapter för Dodo Payments erbjuder:
  • Automatisk kundskapande vid registrering
  • Checkout Sessions (föredraget) med produkt-slug-mappning
  • Självbetjäningsportal för kunder
  • Metered usage-ingestion och rapporteringsändpunkter för användningsbaserad fakturering
  • Realtids-webhook-händelsebehandling med signaturverifiering
  • Full TypeScript-stöd
Du behöver ett Dodo Payments-konto och API-nycklar för att använda denna integration.

Förutsättningar

  • Node.js 20+
  • Tillgång till din Dodo Payments Dashboard
  • Befintligt projekt som använder better-auth

Installation

1

Install dependencies

Kör följande kommando i projektets rotmapp:
Alla nödvändiga paket är nu installerade.

Konfiguration

1

Configure environment variables

Lägg till dessa i din .env-fil:
Förekom aldrig att commita API-nycklar eller hemligheter till versionskontrollen.
2

Set up server-side integration

Skapa eller uppdatera src/lib/auth.ts:
Ange environment till live_mode för produktion.
3

Set up client-side integration

Skapa eller uppdatera src/lib/auth-client.ts:

Användningsexempel

Föredra authClient.dodopayments.checkoutSession för nya integrationer. Den äldre checkout-metoden är avskriven och finns kvar endast för bakåtkompatibilitet.

Skapa en Checkout Session (Föredraget)

Till skillnad från den äldre checkout-metoden kräver checkoutSession inte faktureringsinformation i förväg eftersom detta tas från användaren på kassasidan. Du kan fortfarande åsidosätta detta genom att skicka billing-nyckeln i argumentet.
Precis som den äldre checkout-metoden hämtar checkoutSession kundens e-post och namn från deras better-auth-session, men du kan åsidosätta det genom att skicka customer-objektet med e-post och namn.
Du kan skicka samma alternativ i argumentet som i begäran till Create Checkout Session slutpunkt.
Returneringsadressen tas från successUrl som konfigurerats i server-pluginet. Du behöver inte inkludera return_url i klientens payload.

Äldre Checkout (Avvecklad)

Metoden authClient.dodopayments.checkout är avskriven. Använd checkoutSession istället för nya implementationer.

Åtkomst till kundportalen

Lista kunddata

Spåra mätanvändning

Aktivera usage()-pluginet på servern för att fånga mätade händelser och låta kunder inspektera sin användningsbaserade fakturering.
  • authClient.dodopayments.usage.ingest tar emot händelser för den inloggade, e-postverifierade användaren.
  • authClient.dodopayments.usage.meters.list listar senaste användningen för de mätare som är kopplade till den kundens prenumerationer.
Tidsstämplar äldre än en timme eller mer än fem minuter framåt i tiden avvisas när användning registreras.
Om du utelämnar meter_id när du listar användningsmätare returneras alla mätare som är kopplade till kundens prenumerationer.

Webhooks

Webhooks-pluginen bearbetar realtidsbetalningshändelser från Dodo Payments med säker signaturverifiering. Standard-slutpunkten är /api/auth/dodopayments/webhooks.
1

Generate and set webhook secret

Generera en webhook-hemlighet för din slutpunkt (t.ex. https://<your-domain>/api/auth/dodopayments/webhooks) i Dodo Payments Dashboard och ange den i din .env-fil:
2

Handle webhook events

Exempelhanterare:

Stödda Webhook Händelsehanterare

Konfigurationsreferens

  • client (obligatorisk): DodoPayments klientinstans
  • createCustomerOnSignUp (valfri): Skapa automatiskt kunder vid användarregistrering
  • use (obligatorisk): Lista med plugins att aktivera (checkout, portal, användning, webhooks)
  • getCustomerParams (valfri): Funktion som tar emot BetterAuth User och returnerar extra fält som ska bifogas DodoPayments-kunden vid skapande och uppdatering (t.ex. metadata, phone_number)
  • products: Lista med produkter eller asynkron funktion som returnerar produkter - successUrl: URL att omdirigera till efter lyckad betalning - authenticatedUsersOnly: Kräver användarautentisering (standard: false)

Felsökning och tips

  • Ogiltig API-nyckel: Kontrollera din DODO_PAYMENTS_API_KEY i .env. - Webhook-signaturfel: Se till att webhook-hemligheten matchar den som är inställd i Dodo Payments Dashboard. - Kund inte skapad: Bekräfta createCustomerOnSignUp är satt till true.
  • Använd miljövariabler för alla hemligheter och nycklar. - Testa i test_mode innan du byter till live_mode. - Logga webhook-händelser för felsökning och revision.

Prompt för LLMs

Senast ändrad 22 maj 2026