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 में काम करती है।
मुख्य सुविधाएँ
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 से पढ़ता है:
यदि न तो
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 करें:
Customers प्रबंधित करें
एक email address और name के साथ customer बनाएँ, फिर उसे ID से retrieve करें:Customers.Retrieve ID को string के रूप में भी स्वीकार करता है, उदाहरण के लिए client.Customers.Retrieve("cus_123")।
Subscriptions संभालें
एक subscription बनाएँ, फिर यदि वह on-demand subscription है तो उसे charge करें।Billing के लिए केवल Country आवश्यक है, जो two-letter ISO country code है। Customer किसी मौजूदा customer को जोड़ने के लिए AttachExistingCustomer या नया customer बनाने के लिए NewCustomer लेता है। Charge on-demand subscriptions के लिए है, और ProductPrice currency की सबसे छोटी इकाई में होता है।Error Handling
जब API कोई error status लौटाता है, तो SDKDodoPaymentsApiException की 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 करें:
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
appsettings.json में:
appsettings.json
Resources
NuGet Package
Package versions और install commands।
GitHub Repository
Source code, releases और examples।
API Reference
प्रत्येक endpoint, parameter और response।
Discord Community
प्रश्न पूछें और अन्य developers से बातचीत करें।
Support
C# SDK के लिए सहायता प्राप्त करने हेतु:- Discord: real-time सहायता के लिए community server से जुड़ें।
- Email: support@dodopayments.com पर संपर्क करें।
- GitHub: repository पर issue खोलें।