Skip to main content
C# SDK ger .NET-applikationer typad åtkomst till Dodo Payments REST API. Alla API-metoder är asynkrona och returnerar en Task, requests och responses är typade klasser, och klienten försöker automatiskt igen vid misslyckade requests.

Installation

Install the package from NuGet:
SDK:t kräver .NET Standard 2.0 eller senare och levereras även med en .NET 8-version. Det fungerar med ASP.NET Core, konsolapplikationer och andra typer av .NET-projekt. Exemplen på den här sidan använder C# 12-syntax, till exempel collection expressions.

Quick Start

Skapa en klient och skapa sedan en checkout-session:
Om du inte anger BearerToken läser klienten miljövariabeln DODO_PAYMENTS_API_KEY. Om du inte anger BaseUrl eller DODO_PAYMENTS_BASE_URL ansluter klienten till live mode. Information om hur du använder test mode finns i Environments. En API-nyckel för test mode fungerar endast i test mode.
Förvara API-nycklar i miljövariabler, user secrets eller Azure Key Vault. Hårdkoda dem aldrig i källkoden och checka aldrig in dem i versionshanteringen.

Kärnfunktioner

Async/Await

Alla API-metoder returnerar en Task och accepterar en valfri CancellationToken.

Strong Typing

Typade request- och response-klasser med annoteringar för nullable reference types.

Smart Retries

Två omförsök som standard, med exponentiell backoff, för anslutningsfel och statuskoder som kan försöks om.

Error Handling

En exception-klass för varje vanlig HTTP-felstatus, med statuskoden och response body.

Konfiguration

Miljövariabler

Lagra din API-nyckel i en miljövariabel:
.env
En klient som skapas med new() läser sina inställningar från miljön:
Klienten läser dessa miljövariabler när du inte anger motsvarande property: Om varken BearerToken eller DODO_PAYMENTS_API_KEY har angetts kastar klienten DodoPaymentsInvalidDataException. WebhookKey innehåller din webhook signing secret, men C# SDK har ingen metod som verifierar webhook-signaturer. Följ Webhooks för att verifiera dem.

Manuell konfiguration

Ange properties på klienten för att åsidosätta miljövariablerna:

Miljöer

Klienten ansluter som standard till live mode (https://live.dodopayments.com). Om du vill använda test mode (https://test.dodopayments.com) anger du BaseUrl till EnvironmentUrl.TestMode:

Omförsök

SDK:t försöker igen vid anslutningsfel och responses med status 408, 409, 429 eller 500 och högre. Som standard görs två omförsök med exponentiell backoff. Ange MaxRetries för att ändra antalet omförsök, eller ange 0 för att inaktivera omförsök:

Tidsgränser

Varje request-försök avbryts efter 1 minut som standard. Tidsgränsen omfattar inte omförsök. Ange Timeout för att ändra den:

Åsidosättningar per request

Om du vill ändra inställningar för ett enskilt anrop anropar du WithOptions på klienten eller en service. Den returnerar en modifierad kopia som delar samma connection pool, medan den ursprungliga klienten inte ändras:

Vanliga åtgärder

Exemplen i det här avsnittet använder client från Quick Start.

Skapa en checkout-session

Skapa en checkout-session och omdirigera sedan kunden till den returnerade CheckoutUrl:
Varje checkout-URL kan användas en gång och upphör att gälla efter 24 timmar. Se Checkout Sessions för alla sessionsalternativ.

Hantera kunder

Skapa en kund med en e-postadress och ett namn och hämta den sedan med dess ID:
Customers.Retrieve accepterar även ID:t som en sträng, till exempel client.Customers.Retrieve("cus_123").

Hantera prenumerationer

Skapa en prenumeration och debitera den sedan om det är en on-demand-prenumeration.
POST /subscriptions (SDK:ts Subscriptions.Create-metod) är deprecated. Den fungerar fortfarande för befintliga integrationer, men nya integrationer bör skapa prenumerationer genom en Checkout Session.
Billing kräver endast Country, en ISO-landskod med två bokstäver. Customer tar emot en AttachExistingCustomer för att koppla en befintlig kund eller en NewCustomer för att skapa en. Charge är avsedd för on-demand-prenumerationer, och ProductPrice anges i den minsta valutaenheten.

Felhantering

När API:t returnerar en felstatus kastar SDK:t en subklass av DodoPaymentsApiException, som har properties för StatusCode och ResponseBody. Exception-klassen beror på statuskoden. Alla 4xx-exceptions ärver från DodoPayments4xxException. En 4xx-status utan en egen klass, till exempel 409, kastar DodoPayments4xxException. DodoPaymentsUnexpectedStatusCodeException hanterar statusar utanför intervallen 4xx och 5xx. SDK:t kastar även dessa exceptions:
  • DodoPaymentsIOException: Ett I/O- eller nätverksfel.
  • DodoPaymentsInvalidDataException: SDK:t kunde inte tolka response-data, till exempel eftersom en obligatorisk property saknas.
  • DodoPaymentsException: Basklassen för alla SDK-exceptions.

Paginering

List-metoder returnerar en resultatsida. Du kan iterera över varje item eller själv gå igenom sidorna.

Automatisk paginering

Paginate returnerar en IAsyncEnumerable som hämtar nästa sida när det behövs:

Manuell paginering

Om du vill arbeta med en sida i taget läser du Items och anropar sedan HasNext() och Next():
Om du vill ange sidstorleken skickar du en PaymentListParams från namnrymden DodoPayments.Client.Models.Payments, till exempel client.Payments.List(new PaymentListParams { PageSize = 50 }).

ASP.NET Core-integration

Registrera en klient som singleton i dependency injection-containern och läs API-nyckeln från konfigurationen:
Program.cs
Lägg till nyckeln i konfigurationen, till exempel i appsettings.json:
appsettings.json
Under utveckling lagrar du nyckeln med user secrets i stället för i appsettings.json:

Resurser

NuGet Package

Paketversioner och installationskommandon.

GitHub Repository

Källkod, releaser och exempel.

API Reference

Alla endpoints, parametrar och responses.

Discord Community

Ställ frågor och prata med andra utvecklare.

Support

Få hjälp med C# SDK:
Senast ändrad 26 september 2026