Skip to main content
Il componente @dodopayments/convex aggiunge Dodo Payments al tuo backend Convex. Fornisce una funzione checkout che crea sessioni di checkout, una funzione customerPortal che apre il Customer Portal per l’utente autenticato e createDodoWebhookHandler, che verifica i webhook in un’azione HTTP Convex. Richiede Convex 1.26 o versioni successive.

Checkout Function

Crea sessioni di checkout dalle azioni Convex.

Customer Portal

Consenti ai clienti di gestire i propri abbonamenti e dati.

Webhooks

Ricevi ed elabora gli eventi webhook di Dodo Payments.

Installazione

1

Install the Package

Esegui questo comando nella root del progetto:
2

Add Component to Convex Config

Aggiungi il componente Dodo Payments alla configurazione Convex:
Dopo aver modificato convex.config.ts, esegui una volta npx convex dev per generare i tipi.
3

Set Up Environment Variables

Imposta le variabili d’ambiente nella dashboard Convex, in Settings → Environment Variables. Per aprire la dashboard, esegui:
Aggiungi queste variabili d’ambiente:
  • DODO_PAYMENTS_API_KEY: la tua chiave API Dodo Payments, disponibile in Developer → API Keys nella dashboard Dodo Payments.
  • DODO_PAYMENTS_ENVIRONMENT: test_mode oppure live_mode.
  • DODO_PAYMENTS_WEBHOOK_SECRET: il tuo secret webhook, disponibile in Developer → Webhooks. Obbligatorio per la gestione dei webhook. L’handler dei webhook legge esattamente questo nome di variabile.
Archivia i secret come variabili d’ambiente Convex. Le funzioni backend Convex non leggono i file .env. Non eseguire mai il commit dei secret nel controllo versione.

Esempi di configurazione del componente

1

Create Internal Query

Crea una query interna che trovi un cliente nel database tramite l’ID di autenticazione. La funzione identify del passaggio successivo la usa per ottenere l’ID cliente Dodo Payments dell’utente autenticato per il customer portal.
Il componente non definisce uno schema. Prima di usare questa query, definisci una tabella customers con un indice by_auth_id in convex/schema.ts, oppure modifica la query in modo che corrisponda allo schema esistente.
2

Configure DodoPayments Component

Crea il client. identify associa l’utente Convex autenticato a un ID cliente Dodo Payments. Restituisce null se nessun utente è autenticato o se non viene trovato alcun cliente corrispondente.
Aggiungi quindi le funzioni necessarie:
Usa questa funzione per aggiungere il checkout Dodo Payments alla tua app Convex. Crea una sessione di checkout dai campi accettati dal validator del payload di checkout del componente.

Funzione di checkout

Il componente Convex crea sessioni di checkout, il flusso di checkout consigliato per tutti i pagamenti. Una sessione contiene il carrello dei prodotti, i dati del cliente e le opzioni di checkout.

Utilizzo

Chiama checkout da un’azione Convex, specificando i campi della sessione di checkout in payload:
checkout non chiama identify. Per associare un cliente esistente, passa customer: { customer_id } nel payload. Per ulteriori dettagli e per un elenco completo dei campi supportati, consulta Checkout Sessions. Una sessione creata con payment_method_id non restituisce alcun URL di checkout, quindi checkout genera un errore in questo caso.

Formato della risposta

La funzione di checkout restituisce un oggetto con l’URL di checkout:

Funzione Customer Portal

La funzione customer portal restituisce un URL Customer Portal per l’utente autenticato.

Utilizzo

Restituisce un oggetto con un campo portal_url.

Parametri

boolean
predefinito:"false"
Se impostato su true, Dodo Payments invia anche tramite email il link al portal al cliente.
customerPortal ottiene il cliente dalla funzione identify nella configurazione DodoPayments, che deve restituire dodoCustomerId del cliente. Se identify restituisce null, customerPortal genera un errore User is not authenticated..

Handler webhook

createDodoWebhookHandler verifica ogni richiesta prima di eseguire il tuo codice:
  • Metodo: registra la route con method: "POST". Le richieste con altri metodi non raggiungono l’handler.
  • Verifica della firma: verifica la firma Standard Webhooks usando la variabile d’ambiente DODO_PAYMENTS_WEBHOOK_SECRET. Restituisce 400 se la verifica non riesce.
  • Validazione del payload: validato con Zod. Restituisce 400 per i payload non validi.
  • Gestione degli errori:
    • 400: firma non valida, payload non valido o errore generato da uno dei tuoi handler
    • 200: tutti gli handler hanno terminato l’esecuzione
    • Se DODO_PAYMENTS_WEBHOOK_SECRET non è impostata, l’handler genera un errore e la richiesta non va a buon fine.
  • Routing degli eventi: chiama onPayload per ogni evento, quindi l’handler per il tipo di evento.

Handler degli eventi webhook supportati

Ogni handler riceve ActionCtx di Convex e il payload verificato per il relativo tipo di evento:

Utilizzo nel frontend

Chiama le azioni di checkout e del portal dai tuoi componenti React con l’hook useAction da convex/react.

Prompt per LLM

Copia questo prompt nel tuo assistente di coding AI per aggiungere il componente al progetto. Per fornire al tuo agente anche la documentazione e le competenze di Dodo Payments, installa il Agent Plugin.
Ultima modifica il 26 settembre 2026