Skip to main content
Le SDK C# fournit aux applications .NET un accès typé à l’API REST de Dodo Payments. Chaque méthode d’API est asynchrone et renvoie une 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 :
Si vous ne définissez pas 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.
Conservez les clés API dans des variables d’environnement, des secrets utilisateur ou Azure Key Vault. Ne les inscrivez jamais en dur dans votre code source et ne les committez jamais dans le contrôle de version.

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
Un client créé avec new() lit ses paramètres depuis l’environnement :
Le client lit ces variables d’environnement lorsque vous ne définissez pas la propriété correspondante : 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éfinissez MaxRetries 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éfinissez Timeout pour le modifier :

Remplacements par requête

Pour modifier les paramètres d’un appel unique, appelez WithOptions 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 le client de la section Démarrage rapide.

Créer une session de paiement

Créez une session de paiement, puis redirigez le client vers le CheckoutUrl renvoyé :
Chaque URL de paiement ne fonctionne qu’une seule fois et expire après 24 heures. Pour connaître toutes les options de session, consultez Sessions de paiement.

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.
POST /subscriptions (la méthode Subscriptions.Create du SDK) est obsolète. Elle fonctionne toujours pour les intégrations existantes, mais les nouvelles intégrations doivent créer des abonnements via une Session de paiement.
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 de DodoPaymentsApiException, 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, lisez Items, puis appelez HasNext() et Next() :
Pour définir la taille de la page, transmettez un 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
Ajoutez la clé à votre configuration, par exemple dans appsettings.json :
appsettings.json
En développement, stockez la clé avec les secrets utilisateur plutôt que dans 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# :
Dernière modification le 26 septembre 2026