Vai al contenuto principale

GitHub Repository

Codice sorgente completo e guida all’installazione

Configurazione Rapida

1. Requisiti

2. Installa le Dipendenze

3. Configurazione del Database

  1. Iscriviti a Neon
  2. Crea un nuovo progetto
  3. Apri l’Editor SQL
  4. Copia e incolla i contenuti di schema.sql
  5. Esegui la query
  6. Ottieni la stringa di connessione da Neon → Connection Details

4. Imposta le Variabili Ambientali Iniziali

Via Vercel CLI:
Nota: Configureremo DODO_PAYMENTS_WEBHOOK_KEY dopo il deployment, una volta che avrai il tuo URL webhook.

5. Distribuisci

6. Ottieni il Tuo URL del Webhook

Il tuo URL del webhook è:

7. Registra il Webhook nel Dashboard di DodoPayments

  1. Vai a DodoPayments Dashboard → Developer → Webhooks
  2. Crea un nuovo endpoint webhook
  3. Configura il tuo URL webhook come endpoint
  4. Abilita questi eventi di sottoscrizione:
    • subscription.active
    • subscription.cancelled
    • subscription.renewed
  5. Copia il Signing Secret

8. Imposta la Chiave del Webhook e Ridistribuisci

Cosa Fa

Elabora eventi di sottoscrizione e li memorizza in PostgreSQL:
  • subscription.active - Crea/aggiorna record di clienti e sottoscrizioni
  • subscription.cancelled - Segna la sottoscrizione come annullata
  • subscription.renewed - Aggiorna la data della prossima fatturazione

Caratteristiche Principali

Verifica della firma - Utilizzando la libreria dodopayments
Idempotenza - Previene l’elaborazione duplicata con gli ID webhook
Registrazione degli eventi - Tracciamento completo nell’tabella webhook_events
Gestione degli errori - Registrati e ripetibili
Nota: Questa implementazione dimostra la gestione di tre eventi core di sottoscrizione (subscription.active, subscription.cancelled, subscription.renewed) con campi minimi. Puoi facilmente estenderla per supportare ulteriori tipi di eventi e campi in base alle tue esigenze.

File di Configurazione

Schema del Database

Tabelle create:
  • customers - Email, nome, dodo_customer_id
  • subscriptions - Stato, importo, next_billing_date, collegato ai clienti
  • webhook_events - Registro eventi con webhook_id per idempotenza

Codice di Implementazione

Come Funziona

Il gestore webhook:
  1. Disabilita il parsing del corpo - Per accedere al corpo raw per la verifica della firma
  2. Verifica la firma - Garantisce che la richiesta provenga da DodoPayments utilizzando HMAC-SHA256
  3. Controlla i duplicati - Utilizza l’ID webhook per evitare di elaborare lo stesso evento due volte
  4. Registra l’evento - Memorizza il webhook raw nella tabella webhook_events per l’audit trail
  5. Elabora l’evento - Crea o aggiorna clienti e sottoscrizioni su Neon
  6. Gestisce gli errori - Registra i fallimenti e segna l’evento come non elaborato per il retry

Test

Sviluppo locale:
Visualizza i log nel Dashboard di Vercel:
  1. Seleziona il tuo progetto
  2. Vai a Distribuzioni → ultima distribuzione
  3. Clicca su FunzioniLog
Configura nel Dashboard di DodoPayments:
  1. Vai a Sviluppatori → Webhook
  2. Aggiungi endpoint con il tuo URL delle Funzioni Vercel
  3. Abilita: subscription.active, subscription.cancelled, subscription.renewed

Problemi Comuni

Risorse

Ultima modifica il 22 maggio 2026