GitHub Repository
Guida completa al codice sorgente e alla configurazione
Configurazione Rapida
1. Prerequisiti
Ti occorrono:- Un account Netlify
- Un account database Neon
- Una chiave API di Dodo Payments da Developer → API Keys nella dashboard
2. Installa le dipendenze
3. Configurazione del database
- Registrati su Neon e crea un progetto.
- Apri l’editor SQL.
- Copia l’intero contenuto di
schema.sqled eseguilo. - Copia la stringa di connessione da Connection Details.
4. Imposta le variabili d’ambiente iniziali
Imposterai
DODO_PAYMENTS_WEBHOOK_KEY dopo il deployment, una volta ottenuto l’URL del webhook.5. Inizializza ed esegui il deployment
6. Ottieni l’URL del webhook
L’URL del webhook è:7. Registra il 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. Imposta la chiave del webhook ed esegui nuovamente il deployment
Cosa fa
Il webhook handler elabora gli eventi delle subscription e li archivia in PostgreSQL:subscription.active— Crea o aggiorna i record dei customer 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 i trail 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 eventi e campi in base alle tue esigenze.
File di configurazione
Schema del database
customers— Email, nome e ID customer di Dodo Paymentssubscriptions— Stato, importo, data della prossima fatturazione, collegati ai customerwebhook_events— Registro degli eventi con webhook ID per l’idempotenza
Codice di implementazione
Come funziona
Il webhook handler:- Verifica la firma — Utilizza l’SDK di Dodo Payments per verificare la richiesta con HMAC-SHA256
- Controlla i duplicati — Utilizza l’header
webhook-idper impedire l’elaborazione dello stesso evento due volte - Registra l’evento — Archivia il webhook non elaborato nella tabella
webhook_eventsper i trail di audit - Elabora l’evento — Crea o aggiorna customer e subscription in Neon
- Gestisce gli errori — Registra gli errori e contrassegna gli eventi come non elaborati per un nuovo tentativo
Test
Sviluppo locale:- Seleziona il tuo sito e vai a Functions.
- Fai clic sulla funzione
webhook. - Visualizza i log in tempo reale e la cronologia delle invocazioni.
- Vai a Developer → Webhooks.
- Aggiungi un endpoint con l’URL di Netlify Functions.
- Seleziona
subscription.active,subscription.cancelledesubscription.renewed.