GitHub Repository
Complete source code and setup guide
Configurazione Rapida
1. Prerequisiti
Ti servono:- Un account Supabase con un progetto creato
- Una chiave API di Dodo Payments disponibile in Developer → API Keys nella dashboard
2. Autenticazione e collegamento
3. Configurazione del database
- Vai alla dashboard di Supabase.
- Apri l’SQL Editor.
- Copia l’intero contenuto di
schema.sqled eseguilo.
4. Impostazione dei secret iniziali
Supabase fornisce automaticamenteSUPABASE_URL e SUPABASE_SERVICE_ROLE_KEY in fase di esecuzione.
Imposterai
DODO_PAYMENTS_WEBHOOK_KEY dopo il deployment, una volta ottenuto l’URL del webhook.5. Deployment
La funzione è già configurata infunctions/webhook/index.ts.
6. Ottenere l’URL del webhook
L’URL del webhook è:7. Registrazione del webhook nella dashboard di DodoPayments
- Vai a Developer → Webhooks nella dashboard di Dodo Payments.
- Fai clic su Add endpoint.
- Inserisci l’URL del webhook.
- Seleziona questi eventi:
subscription.active,subscription.cancelled,subscription.renewed. - Fai clic su Create endpoint e copia il signing secret.
8. Impostazione della chiave del webhook e nuovo deployment
Cosa fa
Il gestore dei webhook elabora gli eventi delle subscription e li archivia in Supabase PostgreSQL:subscription.active— Crea o aggiorna i record dei clienti e delle subscriptionsubscription.cancelled— Contrassegna la subscription come annullatasubscription.renewed— Aggiorna la data della prossima fatturazione
Funzionalità principali
- Verifica della firma — Utilizza l’SDK di Dodo Payments per verificare l’autenticità del webhook
- Idempotenza — Utilizza l’header
webhook-idper impedire l’elaborazione duplicata - Registrazione degli eventi — Archivia tutti gli eventi nella tabella
webhook_eventsper mantenere una traccia di audit - Gestione degli errori — Registra gli errori e contrassegna gli eventi per un nuovo tentativo
Questo esempio gestisce tre eventi principali delle subscription con un numero minimo di campi. Puoi estenderlo per supportare ulteriori tipi di evento e campi in base alle tue esigenze.
File di configurazione
Schema del database
customers— Email, nome e ID cliente Dodo Paymentssubscriptions— Stato, importo, data della prossima fatturazione, collegata ai clientiwebhook_events— Registro degli eventi con l’ID del webhook per l’idempotenza
Codice di implementazione
Come funziona
La Edge Function basata su Deno:- Verifica la firma — Utilizza l’SDK di Dodo Payments per la verifica HMAC-SHA256
- Controlla i duplicati — Utilizza l’header
webhook-idper impedire l’elaborazione duplicata - Registra l’evento — Archivia i dati grezzi del webhook nella tabella
webhook_events - Elabora gli aggiornamenti — Crea o aggiorna clienti e subscription tramite il client Supabase
- Gestisce gli errori — Registra gli errori e contrassegna gli eventi per un nuovo tentativo
Test
Sviluppo locale:Il flag
--no-verify-jwt è obbligatorio perché i webhook non includono token JWT. La sicurezza è garantita dalla verifica della firma del webhook.- Vai a Developer → Webhooks.
- Aggiungi un endpoint con il tuo URL Supabase.
- Seleziona
subscription.active,subscription.cancelledesubscription.renewed.