Skip to main content

GitHub Repository

Codice sorgente completo e guida all’installazione

Configurazione Rapida

1. Prerequisiti

Ti servono:

2. Installazione delle dipendenze

3. Configurazione del database

  1. Registrati su Neon e crea un progetto.
  2. Apri l’editor SQL.
  3. Copia l’intero contenuto di schema.sql ed eseguilo.
  4. Copia la stringa di connessione da Connection Details.

4. Impostazione delle variabili d’ambiente iniziali

Imposterai DODO_PAYMENTS_WEBHOOK_KEY dopo il deployment, una volta ottenuto l’URL del 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 su Developer → Webhooks nella dashboard di Dodo Payments.
  2. Fai clic su Add endpoint.
  3. Inserisci l’URL del webhook.
  4. Seleziona questi eventi: subscription.active, subscription.cancelled, subscription.renewed.
  5. Fai clic su Create endpoint e copia il signing secret.

8. Imposta la Chiave del Webhook e Ridistribuisci

Cosa Fa

L’handler del webhook elabora gli eventi delle subscription e li archivia in PostgreSQL:
  • subscription.active — Crea o aggiorna i record del customer e della subscription
  • subscription.cancelled — Contrassegna la subscription come cancellata
  • subscription.renewed — Aggiorna la prossima data di fatturazione

Caratteristiche Principali

  • Verifica della firma — Utilizza l’SDK di Dodo Payments per verificare l’autenticità del webhook
  • Idempotenza — Utilizza l’header webhook-id per impedire l’elaborazione duplicata
  • Logging degli eventi — Archivia tutti gli eventi nella tabella webhook_events per finalità 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 set minimo di campi. Puoi estenderlo per supportare altri tipi di eventi e campi in base alle tue esigenze.

File di Configurazione

Schema del Database

Tabelle create:
  • customers — Email, nome e ID del customer Dodo Payments
  • subscriptions — Stato, importo, prossima data di fatturazione, collegati ai customer
  • webhook_events — Registro degli eventi con webhook ID per l’idempotenza

Codice di Implementazione

Come Funziona

L’handler del webhook:
  1. Disabilita il parsing del body — Per accedere al body raw necessario alla verifica della firma
  2. Verifica la firma — Utilizza l’SDK di Dodo Payments per verificare la richiesta con HMAC-SHA256
  3. Controlla i duplicati — Utilizza l’header webhook-id per impedire di elaborare due volte lo stesso evento
  4. Registra l’evento — Archivia il webhook raw nella tabella webhook_events per finalità di audit
  5. Elabora l’evento — Crea o aggiorna customer e subscription in Neon
  6. Gestisce gli errori — Registra gli errori e contrassegna gli eventi come non elaborati per un nuovo tentativo

Test

Sviluppo locale:
Visualizza i log nella dashboard di Vercel:
  1. Seleziona il progetto.
  2. Vai su Deployments → deployment più recente.
  3. Fai clic su Functions → Logs.
Configura nella dashboard di Dodo Payments:
  1. Vai su Developer → Webhooks.
  2. Aggiungi un endpoint con l’URL delle Vercel Functions.
  3. Seleziona subscription.active, subscription.cancelled e subscription.renewed.

Problemi Comuni

Risorse

Ultima modifica il 26 settembre 2026