Skip to main content

GitHub Repository

Code source complet et guide d’installation

Configuration rapide

1. Prérequis

Vous avez besoin de :

2. Installer les dépendances

3. Configuration de la base de données

  1. Inscrivez-vous sur Neon et créez un projet.
  2. Ouvrez l’éditeur SQL.
  3. Copiez l’intégralité du contenu de schema.sql et exécutez-le.
  4. 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 aurez votre URL de webhook.

5. 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 à Developer → Webhooks dans le tableau de bord Dodo Payments.
  2. Cliquez sur Add endpoint.
  3. Saisissez votre URL de webhook.
  4. Sélectionnez ces événements : subscription.active, subscription.cancelled, subscription.renewed.
  5. Cliquez sur Create endpoint et copiez le secret de signature.

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

Ce que cela fait

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’abonnement
  • subscription.cancelled — Marque l’abonnement comme annulé
  • subscription.renewed — Met à jour la prochaine date de facturation

Fonctionnalités clés

  • Vérification de signature — Utilise le SDK Dodo Payments pour vérifier l’authenticité des webhooks
  • Idempotence — Utilise l’en-tête webhook-id pour empêcher le traitement en double
  • Journalisation des événements — Stocke tous les événements dans la table webhook_events pour assurer une traçabilité
  • Gestion des erreurs — Journalise 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 des types d’événements et des champs supplémentaires selon vos besoins.

Fichiers de configuration

Schéma de base de données

Tables créées :
  • customers — Adresse e-mail, nom et ID client Dodo Payments
  • subscriptions — Statut, montant, prochaine date de facturation, associés aux clients
  • webhook_events — Journal des événements avec l’ID du webhook pour assurer l’idempotence

Code d’implémentation

Comment ça fonctionne

Le gestionnaire de webhook :
  1. Désactive l’analyse du corps de la requête — Pour accéder au corps brut nécessaire à la vérification de signature
  2. Vérifie la signature — Utilise le SDK Dodo Payments pour vérifier la requête avec HMAC-SHA256
  3. Vérifie les doublons — Utilise l’en-tête webhook-id pour empêcher le traitement deux fois du même événement
  4. Journalise l’événement — Stocke le webhook brut dans la table webhook_events pour assurer une traçabilité
  5. Traite l’événement — Crée ou met à jour les clients et les abonnements dans Neon
  6. Gère les erreurs — Journalise les échecs et marque les événements comme non traités pour permettre une nouvelle tentative

Tests

Développement local :
Afficher les journaux dans le tableau de bord Vercel :
  1. Sélectionnez votre projet.
  2. Accédez à Deployments → dernier déploiement.
  3. Cliquez sur Functions → Logs.
Configurer dans le tableau de bord Dodo Payments :
  1. Accédez à Developer → Webhooks.
  2. Ajoutez un endpoint avec l’URL de vos Vercel Functions.
  3. Sélectionnez subscription.active, subscription.cancelled et subscription.renewed.

Problèmes courants

Ressources

Dernière modification le 26 septembre 2026