Ö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:2
Set up server-side integration
Skapa eller uppdatera
src/lib/auth.ts: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)
Åtkomst till kundportalen
Lista kunddata
Spåra mätanvändning
Aktiverausage()-pluginet på servern för att fånga mätade händelser och låta kunder inspektera sin användningsbaserade fakturering.
authClient.dodopayments.usage.ingesttar emot händelser för den inloggade, e-postverifierade användaren.authClient.dodopayments.usage.meters.listlistar senaste användningen för de mätare som är kopplade till den 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
Plugin Options
Plugin Options
- 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
Useroch returnerar extra fält som ska bifogas DodoPayments-kunden vid skapande och uppdatering (t.ex.metadata,phone_number)
Checkout Plugin Options
Checkout Plugin Options
- 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
Common Issues
Common Issues
- Ogiltig API-nyckel: Kontrollera din
DODO_PAYMENTS_API_KEYi.env. - Webhook-signaturfel: Se till att webhook-hemligheten matchar den som är inställd i Dodo Payments Dashboard. - Kund inte skapad: BekräftacreateCustomerOnSignUpär satt tilltrue.
Best Practices
Best Practices
- Använd miljövariabler för alla hemligheter och nycklar. - Testa i
test_modeinnan du byter tilllive_mode. - Logga webhook-händelser för felsökning och revision.