Vai al contenuto principale

Panoramica

L’Better Auth Adapter per Dodo Payments fornisce:
  • Creazione automatica del cliente al momento della registrazione
  • Sessioni di checkout (preferite) con mappatura dello slug del prodotto
  • Portale clienti self-service
  • Endpoint di ingestione e reporting per l’uso misurato per la fatturazione basata sull’uso
  • Elaborazione degli eventi webhook in tempo reale con verifica della firma
  • Supporto completo per TypeScript
È necessario un account Dodo Payments e chiavi API per usare questa integrazione.

Requisiti

  • Node.js 20+
  • Accesso al tuo Dashboard Dodo Payments
  • Progetto esistente che utilizza better-auth

Installazione

1

Install dependencies

Esegui il seguente comando nella directory principale del progetto:
Tutti i pacchetti richiesti sono stati installati.

Configurazione

1

Configure environment variables

Aggiungi questi al tuo file .env:
Non inviare mai chiavi API o segreti al controllo versione.
2

Set up server-side integration

Crea o aggiorna src/lib/auth.ts:
Imposta environment su live_mode per la produzione.
3

Set up client-side integration

Crea o aggiorna src/lib/auth-client.ts:

Esempi di utilizzo

Preferisci authClient.dodopayments.checkoutSession per le nuove integrazioni. Il metodo legacy checkout è deprecato ed è mantenuto solo per retrocompatibilità.

Creazione di una Sessione di Checkout (Preferita)

A differenza del metodo legacy checkout, checkoutSession non richiede informazioni di fatturazione anticipate in quanto verranno prese dall’utente alla pagina di checkout. È comunque possibile sovrascriverle passando il parametro billing nell’argomento.
Simile al metodo legacy checkout, checkoutSession prende l’email e il nome del cliente dalla loro sessione better-auth; tuttavia, è possibile sovrascriverli passando l’oggetto customer con email e nome.
Puoi passare le stesse opzioni nell’argomento come corpo della richiesta per l’endpoint Create Checkout Session.
L’URL di ritorno è preso dal successUrl configurato nel plugin del server. Non è necessario includere return_url nel payload del client.

Checkout Legacy (Deprecato)

Il metodo authClient.dodopayments.checkout è deprecato. Usa checkoutSession per nuove implementazioni.

Accesso al Portale Cliente

Elenco Dati Cliente

Monitoraggio Utilizzo a Consumo

Abilita il plugin usage() sul server per catturare eventi a consumo e permettere ai clienti di controllare la loro fatturazione basata sull’uso.
  • authClient.dodopayments.usage.ingest acquisisce eventi per l’utente autenticato e con email verificata.
  • authClient.dodopayments.usage.meters.list elenca l’utilizzo recente per i contatori collegati agli abbonamenti di quel cliente.
I timestamp più vecchi di un’ora o più di cinque minuti nel futuro sono respinti quando si acquisisce l’uso.
Se ometti meter_id quando elenchi i contatori di utilizzo, tutti i contatori legati agli abbonamenti del cliente vengono restituiti.

Webhooks

Il plugin dei webhooks elabora eventi di pagamento in tempo reale da Dodo Payments con verifica della firma sicura. L’endpoint predefinito è /api/auth/dodopayments/webhooks.
1

Generate and set webhook secret

Genera un segreto webhook per il tuo URL endpoint (es., https://<your-domain>/api/auth/dodopayments/webhooks) nel Dodo Payments Dashboard e impostalo nel tuo file .env:
2

Handle webhook events

Esempio di handler:

Event Handler Supportati per Webhook

Riferimento Configurazione

  • client (richiesto): Istanza del client DodoPayments
  • createCustomerOnSignUp (opzionale): Creazione automatica dei clienti alla registrazione utente
  • use (richiesto): Array di plugin da abilitare (checkout, portal, usage, webhooks)
  • getCustomerParams (opzionale): Funzione che riceve BetterAuth User e restituisce campi extra da allegare al cliente DodoPayments in fase di creazione e aggiornamento (es. metadata, phone_number)
  • products: Array di prodotti o funzione asincrona che restituisce prodotti - successUrl: URL di reindirizzamento dopo pagamento avvenuto - authenticatedUsersOnly: Richiede l’autenticazione utente (predefinito: false)

Risoluzione dei Problemi & Consigli

  • Chiave API non valida: Ricontrolla il tuo DODO_PAYMENTS_API_KEY in .env. - Divergenza firma webhook: Assicurati che il segreto del webhook corrisponda a quello impostato nel Dodo Payments Dashboard. - Cliente non creato: Verifica che createCustomerOnSignUp sia impostato su true.
  • Usa variabili di ambiente per tutti i segreti e chiavi. - Testa in test_mode prima di passare a live_mode. - Registra gli eventi webhook per il debugging e l’audit.

Prompt per LLMs

Ultima modifica il 9 luglio 2026