Passer au contenu principal

GitHub Repository

Code source complet et guide de configuration

Configuration rapide

1. Prérequis

2. Installer les dépendances

3. Configuration de la base de données

  1. Inscrivez-vous sur Neon
  2. Créez un nouveau projet
  3. Ouvrez l’éditeur SQL
  4. Copiez et collez le contenu de schema.sql
  5. Exécutez la requête
  6. Récupérez votre chaîne de connexion depuis Neon → Détails de connexion

4. Définir les variables d’environnement initiales

Note : Nous définirons DODO_PAYMENTS_WEBHOOK_KEY après le déploiement une fois que vous aurez votre URL de webhook.

5. Initialiser et déployer

6. Obtenez votre URL de webhook

Votre URL de webhook est :

7. Enregistrer le webhook dans le tableau de bord DodoPayments

  1. Accédez au DodoPayments Dashboard → Développeur → Webhooks
  2. Créez un nouvel endpoint de webhook
  3. Configurez votre URL de webhook comme endpoint
  4. Activez ces événements d’abonnement :
    • subscription.active
    • subscription.cancelled
    • subscription.renewed
  5. Copiez le Secret de signature

8. Définir la clé de webhook et redéployer

Ce que cela fait

Traite les événements d’abonnement et les stocke dans PostgreSQL :
  • subscription.active - Crée/met à jour les enregistrements de clients et d’abonnements
  • subscription.cancelled - Marque l’abonnement comme annulé
  • subscription.renewed - Met à jour la date de facturation suivante

Fonctionnalités clés

Vérification de la signature - Utilisation de la bibliothèque dodopayments
Idempotence - Empêche le traitement en double grâce aux identifiants de webhook
Journalisation des événements - Traçabilité complète dans la table webhook_events
Gestion des erreurs - Journalisées et reprogrammables
Remarque : Cette implémentation illustre la gestion de trois événements d’abonnement principaux (subscription.active, subscription.cancelled, subscription.renewed) avec un nombre minimal de champs. Vous pouvez facilement l’étendre pour prendre en charge d’autres types d’événements et champs selon vos besoins.

Fichiers de configuration

Schéma de base de données

Tables créées :
  • customers - Email, nom, dodo_customer_id
  • subscriptions - Statut, montant, next_billing_date, lié aux clients
  • webhook_events - Journal des événements avec webhook_id pour l’idempotence

Code d’implémentation

Comment ça fonctionne

Le gestionnaire de webhook :
  1. Vérifie la signature - S’assure que la requête provient de DodoPayments en utilisant HMAC-SHA256
  2. Vérifie les doublons - Utilise l’ID du webhook pour éviter de traiter deux fois le même événement
  3. Journalise l’événement - Stocke le webhook brut dans la table webhook_events pour l’audit
  4. Traite l’événement - Crée ou met à jour les clients et abonnements dans Neon
  5. Gère les erreurs - Enregistre les échecs et marque l’événement comme non traité pour une nouvelle tentative

Tests

Développement local :
Consultez les journaux dans le tableau de bord Netlify :
  1. Sélectionnez votre site → onglet Functions
  2. Cliquez sur la fonction webhook
  3. Consultez les journaux en temps réel et l’historique des invocations
Configurer dans le tableau de bord DodoPayments :
  1. Allez dans Développeurs → Webhooks
  2. Ajoutez un point de terminaison avec votre URL de Fonctions Netlify
  3. Activez : subscription.active, subscription.cancelled, subscription.renewed

Problèmes courants

Ressources

Dernière modification le 22 mai 2026