Passer au contenu principal

Vue d’ensemble

L’Adaptateur Better Auth pour Dodo Payments fournit :
  • Création automatique de clients lors de l’inscription
  • Sessions de paiement (préférées) avec mappage de slug de produit
  • Portail client en libre-service
  • Points de terminaison d’ingestion et de reporting d’utilisation pour la facturation basée sur l’utilisation
  • Traitement des événements webhook en temps réel avec vérification de signature
  • Prise en charge complète de TypeScript
Vous avez besoin d’un compte Dodo Payments et de clés API pour utiliser cette intégration.

Prérequis

  • Node.js 20+
  • Accès à votre tableau de bord Dodo Payments
  • Projet existant utilisant better-auth

Installation

1

Install dependencies

Exécutez la commande suivante à la racine de votre projet :
Tous les paquets requis sont maintenant installés.

Configuration

1

Configure environment variables

Ajoutez-les à votre .env :
Ne validez jamais les clés API ou les secrets dans le contrôle de version.
2

Set up server-side integration

Créez ou mettez à jour src/lib/auth.ts :
Définissez environment sur live_mode pour la production.
3

Set up client-side integration

Créez ou mettez à jour src/lib/auth-client.ts :

Exemples d’utilisation

Préférez authClient.dodopayments.checkoutSession pour les nouvelles intégrations. L’ancienne méthode checkout est obsolète et conservée uniquement pour la rétrocompatibilité.

Création d’une session de paiement (préférée)

Contrairement à la méthode héritée checkout, checkoutSession ne nécessite pas d’informations de facturation à l’avance car elles seront fournies par l’utilisateur sur la page de paiement. Vous pouvez toujours les remplacer en passant la clé billing dans l’argument.
Semblable à la méthode héritée checkout, checkoutSession prend l’email et le nom du client à partir de leur session better-auth, cependant, vous pouvez les remplacer en passant l’objet customer avec l’email et le nom.
Vous pouvez passer les mêmes options dans l’argument que le corps de la requête pour le point de terminaison Créer une session de paiement.
L’URL de retour est prise à partir de successUrl configurée dans le plugin serveur. Vous n’avez pas besoin d’inclure return_url dans la charge utile du client.

Paiement Hérité (Obsolète)

La méthode authClient.dodopayments.checkout est obsolète. Utilisez checkoutSession pour de nouvelles implémentations.

Accéder au Portail Client

Lister les Données Client

Suivi de l’Utilisation Mesurée

Activez le plugin usage() sur le serveur pour capturer les événements mesurés et permettre aux clients de vérifier leur facturation basée sur l’usage.
  • authClient.dodopayments.usage.ingest ingère des événements pour l’utilisateur connecté, dont l’email est vérifié.
  • authClient.dodopayments.usage.meters.list liste l’utilisation récente pour les compteurs liés aux abonnements de ce client.
Les horodatages antérieurs à une heure ou plus de cinq minutes dans le futur sont rejetés lors de l’ingestion de l’utilisation.
Si vous omettez meter_id en listant les compteurs d’utilisation, tous les compteurs liés aux abonnements du client sont retournés.

Webhooks

Le plugin de webhooks traite les événements de paiement en temps réel de Dodo Payments avec une vérification de signature sécurisée. Le point de terminaison par défaut est /api/auth/dodopayments/webhooks.
1

Generate and set webhook secret

Générez un secret de webhook pour votre URL de point de terminaison (par exemple, https://<your-domain>/api/auth/dodopayments/webhooks) dans le tableau de bord Dodo Payments et définissez-le dans votre fichier .env:
2

Handle webhook events

Exemple de gestionnaire :

Gestionnaires d’Événements Webhook Pris en Charge

Référence de Configuration

  • client (obligatoire) : Instance client DodoPayments
  • createCustomerOnSignUp (optionnel) : Création automatique de clients lors de l’inscription de l’utilisateur
  • use (obligatoire) : Tableau de plugins à activer (checkout, portal, usage, webhooks)
  • getCustomerParams (optionnel) : Fonction qui reçoit l’authentification BetterAuth User et retourne des champs supplémentaires à attacher au client DodoPayments lors de la création et mise à jour (par exemple metadata, phone_number)
  • products : Tableau de produits ou fonction asynchrone retournant des produits - successUrl : URL de redirection après un paiement réussi - authenticatedUsersOnly : Exiger l’authentification de l’utilisateur (par défaut : false)

Dépannage et Conseils

  • Clé API invalide : Vérifiez votre DODO_PAYMENTS_API_KEY dans .env. - Discordance de signature de webhook : Assurez-vous que le secret du webhook correspond à celui défini dans le tableau de bord Dodo Payments. - Client non créé : Confirmez que createCustomerOnSignUp est défini sur true.
  • Utilisez des variables d’environnement pour tous les secrets et clés. - Testez en test_mode avant de passer en live_mode. - Enregistrez les événements webhook pour le débogage et l’audit.

Invite pour les LLMs

Dernière modification le 9 juillet 2026