GitHub Repository
Boilerplate complet FastAPI + Dodo Payments
Aperçu
Le modèle FastAPI fournit un point de départ prêt pour la production pour intégrer Dodo Payments avec votre backend Python. Ce modèle inclut la gestion des sessions de paiement, la vérification des webhooks, l’intégration du portail client et des modèles d’API asynchrones pour vous aider à commencer à accepter des paiements rapidement.Ce boilerplate utilise FastAPI avec les patterns async/await, Pydantic pour la validation, et le SDK Python
dodopayments pour une intégration API fluide.Caractéristiques
- Configuration rapide - Commencez en moins de 5 minutes
- Support asynchrone - Construit avec les modèles natifs async/await de FastAPI
- Sessions de paiement - Flux de paiement préconfiguré utilisant le SDK Python
- Gestion des webhooks - Point de terminaison webhook sécurisé avec vérification de signature
- Portail client - Création facile de sessions de portail client
- Sécurité des types - Validation complète Pydantic et indications de type
- Configuration de l’environnement - Configuration des variables d’environnement prête à l’emploi
Prérequis
Avant de commencer, assurez-vous d’avoir :- Python 3.9+ (recommandé : Python 3.11+)
- pip ou uv pour la gestion des paquets
- Compte Dodo Payments (pour accéder aux clés API et Webhook depuis le tableau de bord)
Démarrage rapide
Create Virtual Environment
Configurez un environnement Python isolé :Ou en utilisant uv pour une gestion des dépendances plus rapide :
Get API Credentials
Inscrivez-vous sur Dodo Payments et récupérez vos identifiants depuis le tableau de bord :
- Clé API : Tableau de bord → Développeur → Clés API
- Clé Webhook : Tableau de bord → Développeur → Webhooks
Configure Environment Variables
Créez un fichier Mettez à jour les valeurs avec vos identifiants Dodo Payments :
.env à la racine :.env
Run the Development Server
Vous devriez voir l’interface Swagger UI de FastAPI avec tous les points de terminaison disponibles prêts à être testés.
Structure du projet
Points de terminaison API
Le modèle inclut les points de terminaison préconfigurés suivants :| Endpoint | Method | Description |
|---|---|---|
/checkout | POST | Créez une nouvelle session de paiement |
/webhook | POST | Gérez les webhooks Dodo Payments |
/customer-portal | POST | Générez l’URL du portail client |
Exemples de code
Création d’une session de paiement
Gestion des webhooks
Intégration du portail client
Événements de webhook
Le modèle démontre la gestion des événements de webhook courants :| Event | Description |
|---|---|
payment.succeeded | Paiement effectué avec succès |
payment.failed | La tentative de paiement a échoué |
subscription.active | L’abonnement est maintenant actif |
subscription.cancelled | L’abonnement a été annulé |
refund.succeeded | Remboursement traité avec succès |
- Mettre à jour les autorisations des utilisateurs dans votre base de données
- Envoyer des e-mails de confirmation
- Fournir l’accès à des produits numériques
- Suivre les analyses et les métriques
Tester les webhooks localement
Pour le développement local, utilisez des outils comme ngrok pour exposer votre serveur local :Déploiement
Docker
Considérations de production
Dépannage
Import errors or missing modules
Import errors or missing modules
Assurez-vous que votre environnement virtuel est activé et que les dépendances sont installées :
Checkout session creation fails
Checkout session creation fails
Causes courantes :
- ID produit invalide — vérifiez qu’il existe dans votre tableau de bord Dodo
- Mauvaise clé API ou mauvais paramètre d’environnement dans
.env - Consultez les journaux FastAPI pour des messages d’erreur détaillés
Webhooks not receiving events
Webhooks not receiving events
Pour les tests locaux, utilisez ngrok pour exposer votre serveur :Mettez à jour l’URL du webhook dans votre Dodo dashboard avec l’URL ngrok. Assurez-vous de mettre à jour votre fichier
.env avec la clé de vérification du webhook correcte.Webhook signature verification fails
Webhook signature verification fails
- Assurez-vous que
DODO_PAYMENTS_WEBHOOK_KEYest correctement défini dans votre.env - Vérifiez que vous utilisez le corps brut de la requête pour la vérification de la signature
- Vérifiez que vous lisez correctement l’en-tête
webhook-signature
En savoir plus
Python SDK
Documentation complète du SDK Python avec prise en charge async
Webhooks Documentation
Découvrez tous les événements webhook et les bonnes pratiques
Checkout Sessions
Approfondissement de la configuration des sessions de paiement
API Reference
Documentation complète de l’API Dodo Payments
Support
Besoin d’aide avec le modèle ?- Rejoignez notre communauté Discord pour des questions et des discussions
- Consultez le dépôt GitHub pour les problèmes et les mises à jour
- Contactez notre équipe de support pour obtenir de l’aide