Vai al contenuto principale

GitHub Repository

Guida completa al codice sorgente e alla configurazione

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 il contenuto di schema.sql
  5. Esegui la query
  6. Ottieni la stringa di connessione da Neon → Dettagli di Connessione

4. Imposta le Variabili Ambientali Iniziali

Nota: Imposteremo DODO_PAYMENTS_WEBHOOK_KEY dopo il deployment una volta che avrai il tuo URL webhook.

5. Inizializza e Distribuisci

6. Ottieni il Tuo URL del Webhook

Il tuo URL del webhook è:

7. Registra il Webhook nel Dashboard di DodoPayments

  1. Vai alla 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 Segreto di Firma

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 di fatturazione successiva

Caratteristiche Principali

Verifica della firma - Utilizzando la libreria dodopayments
Idempotenza - Previene l’elaborazione duplicata con gli ID dei webhook
Registrazione degli eventi - Traccia completa nella tabella webhook_events
Gestione degli errori - Registrati e ripetibili
Nota: Questa implementazione dimostra la gestione di tre eventi principali di sottoscrizione (subscription.active, subscription.cancelled, subscription.renewed) con i campi minimi. Puoi facilmente estenderla per supportare tipi di eventi aggiuntivi 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 del webhook:
  1. Verifica la firma - Garantisce che la richiesta provenga da DodoPayments utilizzando HMAC-SHA256
  2. Controlla i duplicati - Utilizza l’ID del webhook per prevenire l’elaborazione dello stesso evento due volte
  3. Registra l’evento - Conserva il webhook grezzo nella tabella webhook_events per la tracciabilità
  4. Elabora l’evento - Crea o aggiorna clienti e sottoscrizioni in Neon
  5. Gestisce gli errori - Registra i fallimenti e contrassegna l’evento come non elaborato per il tentativo successivo

Test

Sviluppo locale:
Visualizza i log nel Dashboard di Netlify:
  1. Seleziona il tuo sito → scheda Funzioni
  2. Fai clic sulla funzione webhook
  3. Visualizza log in tempo reale e cronologia delle invocazioni
Configura nel Dashboard di DodoPayments:
  1. Vai a Sviluppatori → Webhook
  2. Aggiungi endpoint con il tuo URL delle Funzioni Netlify
  3. Abilita: subscription.active, subscription.cancelled, subscription.renewed

Problemi Comuni

Risorse

Ultima modifica il 22 maggio 2026