GitHub Repository
Code source complet et guide de configuration
Configuration rapide
1. Prérequis
Vous avez besoin de :- Un compte Netlify
- Un compte base de données Neon
- Une clé API Dodo Payments accessible via Developer → API Keys dans le tableau de bord
2. Installer les dépendances
3. Configuration de la base de données
- Inscrivez-vous sur Neon et créez un projet.
- Ouvrez l’éditeur SQL.
- Copiez l’intégralité du contenu de
schema.sqlet exécutez-le. - Copiez votre chaîne de connexion depuis Connection Details.
4. Définir les variables d’environnement initiales
Vous définirez
DODO_PAYMENTS_WEBHOOK_KEY après le déploiement, une fois que vous disposerez de l’URL de votre webhook.5. Initialiser et déployer
6. Obtenir l’URL de votre webhook
Votre URL de webhook est :7. Enregistrer le webhook dans le tableau de bord DodoPayments
- Accédez à Developer → Webhooks dans le tableau de bord Dodo Payments.
- Cliquez sur Add endpoint.
- Saisissez l’URL de votre webhook.
- Sélectionnez ces événements :
subscription.active,subscription.cancelled,subscription.renewed. - Cliquez sur Create endpoint et copiez le secret de signature.
8. Définir la clé du webhook et redéployer
Fonctionnement
Le gestionnaire de webhook traite les événements d’abonnement et les stocke dans PostgreSQL :subscription.active— Crée ou met à jour les enregistrements du client et de l’abonnementsubscription.cancelled— Marque l’abonnement comme annulésubscription.renewed— Met à jour la prochaine date de facturation
Fonctionnalités principales
- Vérification de signature — Utilise le SDK Dodo Payments pour vérifier l’authenticité du webhook
- Idempotence — Utilise l’en-tête
webhook-idpour empêcher les traitements en double - Journalisation des événements — Stocke tous les événements dans la table
webhook_eventsà des fins d’audit - Gestion des erreurs — Consigne les échecs et marque les événements pour une nouvelle tentative
Cet exemple gère trois événements principaux d’abonnement avec un nombre minimal de champs. Vous pouvez l’étendre pour prendre en charge d’autres types d’événements et champs selon vos besoins.
Fichiers de configuration
Schéma de la base de données
customers— Adresse e-mail, nom et identifiant client Dodo Paymentssubscriptions— Statut, montant, prochaine date de facturation, associé aux clientswebhook_events— Journal des événements avec l’identifiant du webhook pour l’idempotence
Code d’implémentation
Fonctionnement
Le gestionnaire de webhook :- Vérifie la signature — Utilise le SDK Dodo Payments pour vérifier la requête avec HMAC-SHA256
- Vérifie les doublons — Utilise l’en-tête
webhook-idpour empêcher le traitement deux fois du même événement - Consigne l’événement — Stocke le webhook brut dans la table
webhook_eventsà des fins d’audit - Traite l’événement — Crée ou met à jour les clients et les abonnements dans Neon
- Gère les erreurs — Consigne les échecs et marque les événements comme non traités pour une nouvelle tentative
Tests
Développement local :- Sélectionnez votre site et accédez à Functions.
- Cliquez sur la fonction
webhook. - Consultez les logs en temps réel et l’historique des appels.
- Accédez à Developer → Webhooks.
- Ajoutez un endpoint avec l’URL de vos Netlify Functions.
- Sélectionnez
subscription.active,subscription.cancelledetsubscription.renewed.