Task, les requêtes et les réponses sont des classes typées, et le client relance automatiquement les requêtes ayant échoué.
Installation
Install the package from NuGet:Le SDK nécessite .NET Standard 2.0 ou une version ultérieure, et inclut également une version pour .NET 8. Il fonctionne avec ASP.NET Core, les applications console et d’autres types de projets .NET. Les exemples de cette page utilisent la syntaxe C# 12, notamment les expressions de collections.
Quick Start
Créez un client, puis créez une session de paiement :BearerToken, le client lit la variable d’environnement DODO_PAYMENTS_API_KEY. Si vous ne définissez pas BaseUrl ou DODO_PAYMENTS_BASE_URL, le client se connecte au mode live. Pour utiliser le mode test, consultez Environnements. Une clé API du mode test ne fonctionne qu’en mode test.
Fonctionnalités principales
Async/Await
Chaque méthode d’API renvoie une
Task et accepte une CancellationToken facultative.Strong Typing
Des classes de requête et de réponse typées, avec des annotations de types de référence nullable.
Smart Retries
Deux nouvelles tentatives par défaut, avec une temporisation exponentielle, pour les erreurs de connexion et les codes d’état pouvant être relancés.
Error Handling
Une classe d’exception pour chaque erreur HTTP courante, avec le code d’état et le corps de la réponse.
Configuration
Variables d’environnement
Stockez votre clé API dans une variable d’environnement :.env
new() lit ses paramètres depuis l’environnement :
Si ni
BearerToken ni DODO_PAYMENTS_API_KEY n’est défini, le client lève DodoPaymentsInvalidDataException. WebhookKey contient votre secret de signature des webhooks, mais le SDK C# ne dispose d’aucune méthode pour vérifier les signatures des webhooks. Pour les vérifier, consultez Webhooks.
Configuration manuelle
Définissez les propriétés sur le client pour remplacer les variables d’environnement :Environnements
Le client se connecte par défaut au mode live (https://live.dodopayments.com). Pour utiliser le mode test (https://test.dodopayments.com), définissez BaseUrl sur EnvironmentUrl.TestMode :
Nouvelles tentatives
Le SDK relance les erreurs de connexion et les réponses dont le code d’état est 408, 409, 429 ou 500 et supérieur. Il effectue par défaut deux nouvelles tentatives, avec une temporisation exponentielle. DéfinissezMaxRetries pour modifier le nombre de nouvelles tentatives, ou définissez-le sur 0 pour désactiver les nouvelles tentatives :
Délais d’expiration
Chaque tentative de requête expire par défaut après 1 minute. Le délai d’expiration n’inclut pas les nouvelles tentatives. DéfinissezTimeout pour le modifier :
Remplacements par requête
Pour modifier les paramètres d’un appel unique, appelezWithOptions sur le client ou sur un service. Cette méthode renvoie une copie modifiée qui partage le même pool de connexions, sans modifier le client d’origine :
Opérations courantes
Les exemples de cette section utilisent leclient de la section Démarrage rapide.
Créer une session de paiement
Créez une session de paiement, puis redirigez le client vers leCheckoutUrl renvoyé :
Gérer les clients
Créez un client avec une adresse e-mail et un nom, puis récupérez-le à l’aide de son ID :Customers.Retrieve accepte également l’ID sous forme de chaîne, par exemple client.Customers.Retrieve("cus_123").
Gérer les abonnements
Créez un abonnement, puis facturez-le s’il s’agit d’un abonnement à la demande.Billing nécessite uniquement Country, un code pays ISO à deux lettres. Customer accepte un AttachExistingCustomer pour associer un client existant ou un NewCustomer pour en créer un. Charge est destiné aux abonnements à la demande, et ProductPrice est exprimé dans la plus petite unité monétaire.Gestion des erreurs
Lorsque l’API renvoie un état d’erreur, le SDK lève une sous-classe deDodoPaymentsApiException, qui possède les propriétés StatusCode et ResponseBody. La classe d’exception dépend du code d’état. Toutes les exceptions 4xx héritent de DodoPayments4xxException.
Un état 4xx sans classe dédiée, comme 409, lève
DodoPayments4xxException. DodoPaymentsUnexpectedStatusCodeException couvre les états situés en dehors des plages 4xx et 5xx.
Le SDK lève également les exceptions suivantes :
DodoPaymentsIOException: Une erreur d’E/S ou de réseau.DodoPaymentsInvalidDataException: Le SDK n’a pas pu interpréter les données de la réponse, par exemple parce qu’une propriété requise est absente.DodoPaymentsException: La classe de base de toutes les exceptions du SDK.
Pagination
Les méthodes de liste renvoient une page de résultats. Vous pouvez parcourir chaque élément ou parcourir vous-même les pages.Pagination automatique
Paginate renvoie un IAsyncEnumerable qui récupère la page suivante lorsque cela est nécessaire :
Pagination manuelle
Pour traiter une page à la fois, lisezItems, puis appelez HasNext() et Next() :
PaymentListParams de l’espace de noms DodoPayments.Client.Models.Payments, par exemple client.Payments.List(new PaymentListParams { PageSize = 50 }).
Intégration avec ASP.NET Core
Enregistrez un client comme singleton dans le conteneur d’injection de dépendances et lisez la clé API depuis la configuration :Program.cs
appsettings.json :
appsettings.json
Ressources
NuGet Package
Versions des packages et commandes d’installation.
GitHub Repository
Code source, versions et exemples.
API Reference
Chaque endpoint, paramètre et réponse.
Discord Community
Posez vos questions et échangez avec d’autres développeurs.
Assistance
Pour obtenir de l’aide concernant le SDK C# :- Discord : Rejoignez le serveur de la communauté pour obtenir de l’aide en temps réel.
- E-mail : Contactez support@dodopayments.com.
- GitHub : Ouvrez une issue dans le dépôt.