Skip to main content
C# SDK .NET applications को Dodo Payments REST API का typed access प्रदान करता है। प्रत्येक API method asynchronous है और एक Task लौटाता है, requests और responses typed classes होते हैं, और client आपके लिए विफल requests का पुनःप्रयास करता है।

स्थापना

पैकेज को NuGet से इंस्टॉल करें:
SDK के लिए .NET Standard 2.0 या बाद का संस्करण आवश्यक है और इसके साथ .NET 8 build भी उपलब्ध है। यह ASP.NET Core, console applications और अन्य .NET project types के साथ काम करता है। इस पृष्ठ के उदाहरण C# 12 syntax का उपयोग करते हैं, जैसे collection expressions।

त्वरित आरम्भ

एक client बनाएँ, फिर एक checkout session बनाएँ:
यदि आप BearerToken सेट नहीं करते हैं, तो client DODO_PAYMENTS_API_KEY environment variable से मान पढ़ता है। यदि आप BaseUrl या DODO_PAYMENTS_BASE_URL सेट नहीं करते हैं, तो client live mode से connect होता है। test mode का उपयोग करने के लिए Environments देखें। test mode API key केवल test mode में काम करती है।
API keys को environment variables, user secrets या Azure Key Vault में रखें। उन्हें अपने source code में कभी hardcode न करें और न ही version control में commit करें।

मुख्य सुविधाएँ

Async/Await

प्रत्येक API method एक Task लौटाता है और एक वैकल्पिक CancellationToken स्वीकार करता है।

Strong Typing

nullable reference type annotations वाली typed request और response classes।

Smart Retries

connection errors और retryable status codes के लिए, exponential backoff के साथ, default रूप से दो retries।

Error Handling

प्रत्येक सामान्य HTTP error status के लिए एक exception class, जिसमें status code और response body शामिल होते हैं।

Configuration

Environment Variables

अपनी API key को environment variable में रखें:
.env
new() से बनाया गया client अपनी settings environment से पढ़ता है:
जब आप matching property सेट नहीं करते हैं, तो client इन environment variables को पढ़ता है: यदि न तो BearerToken और न ही DODO_PAYMENTS_API_KEY सेट है, तो client DodoPaymentsInvalidDataException throw करता है। WebhookKey में आपका webhook signing secret होता है, लेकिन C# SDK में webhook signatures को verify करने की कोई method नहीं है। उन्हें verify करने के लिए Webhooks का पालन करें।

Manual Configuration

environment variables को override करने के लिए client पर properties सेट करें:

Environments

client default रूप से live mode (https://live.dodopayments.com) से connect होता है। test mode (https://test.dodopayments.com) का उपयोग करने के लिए BaseUrl को EnvironmentUrl.TestMode पर सेट करें:

Retries

SDK connection errors और 408, 409, 429 या 500 और उससे अधिक status वाले responses का पुनःप्रयास करता है। यह default रूप से exponential backoff के साथ दो बार retry करता है। retries की संख्या बदलने के लिए MaxRetries सेट करें, या retries बंद करने के लिए इसे 0 पर सेट करें:

Timeouts

प्रत्येक request attempt default रूप से 1 minute के बाद timeout हो जाता है। timeout में retries शामिल नहीं होते। इसे बदलने के लिए Timeout सेट करें:

Per-Request Overrides

किसी एक call के लिए settings बदलने हेतु client या service पर WithOptions call करें। यह एक modified copy लौटाता है, जो उसी connection pool को share करती है, और original client में कोई बदलाव नहीं होता:

सामान्य Operations

इस section के उदाहरण Quick Start से client का उपयोग करते हैं।

Checkout Session बनाएँ

एक checkout session बनाएँ, फिर customer को लौटाए गए CheckoutUrl पर redirect करें:
प्रत्येक checkout URL एक बार काम करता है और 24 hours के बाद expire हो जाता है। प्रत्येक session option के लिए Checkout Sessions देखें।

Customers प्रबंधित करें

एक email address और name के साथ customer बनाएँ, फिर उसे ID से retrieve करें:
Customers.Retrieve ID को string के रूप में भी स्वीकार करता है, उदाहरण के लिए client.Customers.Retrieve("cus_123")।

Subscriptions संभालें

एक subscription बनाएँ, फिर यदि वह on-demand subscription है तो उसे charge करें।
POST /subscriptions (SDK की Subscriptions.Create method) deprecated है। यह मौजूदा integrations के लिए अभी भी काम करती है, लेकिन नए integrations को Checkout Session के माध्यम से subscriptions बनानी चाहिए।
Billing के लिए केवल Country आवश्यक है, जो two-letter ISO country code है। Customer किसी मौजूदा customer को जोड़ने के लिए AttachExistingCustomer या नया customer बनाने के लिए NewCustomer लेता है। Charge on-demand subscriptions के लिए है, और ProductPrice currency की सबसे छोटी इकाई में होता है।

Error Handling

जब API कोई error status लौटाता है, तो SDK DodoPaymentsApiException की subclass throw करता है, जिसमें StatusCode और ResponseBody properties होती हैं। Exception class status code पर निर्भर करती है। सभी 4xx exceptions, DodoPayments4xxException से inherit करती हैं। ऐसा 4xx status जिसकी अपनी class नहीं है, जैसे 409, DodoPayments4xxException throw करता है। DodoPaymentsUnexpectedStatusCodeException 4xx और 5xx ranges के बाहर के statuses को संभालता है। SDK इन exceptions को भी throw करता है:
  • DodoPaymentsIOException: I/O या network error।
  • DodoPaymentsInvalidDataException: SDK response data को interpret नहीं कर सका, उदाहरण के लिए क्योंकि कोई required property missing है।
  • DodoPaymentsException: प्रत्येक SDK exception की base class।

Pagination

List methods results का एक page लौटाती हैं। आप प्रत्येक item पर iterate कर सकते हैं या pages के बीच स्वयं आगे बढ़ सकते हैं।

Auto-Pagination

Paginate एक IAsyncEnumerable लौटाता है, जो आवश्यकता पड़ने पर अगला page fetch करता है:

Manual Pagination

एक बार में एक page के साथ काम करने के लिए Items पढ़ें, फिर HasNext() और Next() call करें:
page size सेट करने के लिए DodoPayments.Client.Models.Payments namespace से एक PaymentListParams पास करें, उदाहरण के लिए client.Payments.List(new PaymentListParams { PageSize = 50 })।

ASP.NET Core Integration

dependency injection container में एक client को singleton के रूप में register करें और configuration से API key पढ़ें:
Program.cs
अपनी configuration में key जोड़ें, उदाहरण के लिए appsettings.json में:
appsettings.json
development में key को appsettings.json के बजाय user secrets के साथ store करें:

Resources

NuGet Package

Package versions और install commands।

GitHub Repository

Source code, releases और examples।

API Reference

प्रत्येक endpoint, parameter और response।

Discord Community

प्रश्न पूछें और अन्य developers से बातचीत करें।

Support

C# SDK के लिए सहायता प्राप्त करने हेतु:
अंतिम संशोधन 26 सितंबर 2026