Passer au contenu principal

GitHub Repository

Guide complet du code source et 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-collez le contenu de schema.sql
  5. Exécutez la requête
  6. Récupérez votre chaîne de connexion depuis Neon → Connection Details

4. Configurer les secrets initiaux

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

5. Mettre à jour wrangler.toml

Modifiez wrangler.toml et définissez le nom de votre worker :

6. Déployer

7. Obtenez votre URL de webhook

Votre URL de webhook est :

8. Enregistrer le webhook dans le tableau de bord DodoPayments

  1. Accédez à DodoPayments Dashboard → Developer → 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 Signing Secret

9. 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 - En utilisant la bibliothèque dodopayments
Idempotence - Empêche le traitement en double grâce aux identifiants de webhook
Journalisation des événements - Piste d’audit complète dans la table webhook_events
Gestion des erreurs - Journalisée et réessayable
Remarque : Cette implémentation montre 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 - Assure que la requête provient de DodoPayments en utilisant HMAC-SHA256
  2. Vérifie les doublons - Utilise l’identifiant du webhook pour empêcher le traitement du même événement deux fois
  3. Journalise l’événement - Stocke le webhook brut dans la table webhook_events pour la piste d’audit
  4. Traite l’événement - Crée ou met à jour les clients et abonnements
  5. Gère les erreurs - Enregistre les échecs et marque l’événement comme non traité pour réessayer

Tests

Développement local :
Configurer dans le tableau de bord DodoPayments :
  1. Allez sur Développeurs → Webhooks
  2. Ajoutez un point de terminaison avec votre URL de Worker
  3. Activez : subscription.active, subscription.cancelled, subscription.renewed

Problèmes courants

Ressources

Dernière modification le 22 mai 2026