स्थापना
अपने package manager सेdodopayments package install करें:
त्वरित शुरुआत
एक client बनाएं, फिर checkout session बनाएं:bearerToken छोड़ देते हैं, तो client DODO_PAYMENTS_API_KEY environment variable पढ़ता है। यदि आप environment छोड़ देते हैं, तो client live mode से connect करता है। Test mode API key केवल environment: 'test_mode' के साथ काम करती है।
मुख्य सुविधाएं
TypeScript First
हर request parameter और response field के लिए type definitions, जो आपके editor में दिखाई देती हैं।
Auto-Pagination
जब आप
for await...of के साथ iterate करते हैं, तो List methods आपके लिए अगला page fetch करती हैं।Error Handling
प्रत्येक HTTP error status के लिए typed error class, जिसमें status, headers और response body शामिल हैं।
Smart Retries
connection errors और retryable status codes के लिए default रूप से exponential backoff के साथ दो retries।
Configuration
Environment Variables
अपनी API key को environment variable में store करें:.env
यदि base URL set है और आप
environment भी pass करते हैं, तो constructor “Ambiguous URL” error throw करता है। उस स्थिति में environment का उपयोग करने के लिए baseURL: null pass करें।
Webhook verify करने के लिए raw request body और headers को client.webhooks.unwrap(rawBody, { headers }) में pass करें। यह आपके webhook key से signature check करता है और parsed event return करता है। client.webhooks.unsafeUnwrap(rawBody) body को verify किए बिना parse करता है, इसलिए इसका उपयोग केवल testing के लिए करें। Webhooks देखें।
Timeout Configuration
Requests का default timeout 1 minute है। Client या किसी single request पर milliseconds मेंtimeout set करें:
APIConnectionTimeoutError throw करता है। Timed-out requests को retry किया जाता है, इसलिए call fail होने से पहले timeout से अधिक समय ले सकती है।
Retry Configuration
Client या किसी single request परmaxRetries set करें:
DodoPayments.APIError की subclass throw करता है। प्रत्येक error में status, headers और error (response body) properties होती हैं। instanceof से किसी specific class की जांच करें, जैसे err instanceof DodoPayments.RateLimitError:
सामान्य Operations
इस section के examples Quick Start सेclient का उपयोग करते हैं।
Checkout Session बनाएं
एक checkout session बनाएं, फिर customer को लौटाए गएcheckout_url पर redirect करें:
checkout_url एक बार काम करता है और 24 घंटे बाद expire हो जाता है। प्रत्येक session option के लिए Checkout Sessions देखें।
Customers Manage करें
Email address और name के साथ customer बनाएं, फिर उसे ID से retrieve करें:Subscriptions Handle करें
एक subscription बनाएं, on-demand subscription charge करें और subscription का usage history पढ़ें।billing के लिए केवल country, यानी two-letter ISO country code, आवश्यक है। customer मौजूदा customer attach करने के लिए { customer_id } या नया customer बनाने के लिए { email, name? } लेता है। charge on-demand subscriptions के लिए है और product_price सबसे छोटी currency unit में होता है। retrieveUsageHistory paginated list return करता है, जिसे आप Auto-Pagination में बताए अनुसार iterate कर सकते हैं।Usage-Based Billing
Usage Events Ingest करें
किसी customer के लिए usage events भेजें:event_id idempotency key है, इसलिए प्रत्येक event को unique value दें। यदि एक ही request में वही event_id दो बार दिखाई देता है, तो पूरी request reject कर दी जाती है। यदि कोई event_id पहले ही ingest किया जा चुका है, तो नया event ignore कर दिया जाता है। एक request में अधिकतम 1,000 events स्वीकार किए जाते हैं। timestamp default रूप से current time पर set होता है और यदि यह 1 घंटे से अधिक अतीत में या 5 मिनट से अधिक भविष्य में हो, तो reject कर दिया जाता है।Usage Events Retrieve करें
किसी single event को उसकेevent_id से retrieve करें, या customer, event name और time range से filter किए गए events की list बनाएं:
usageEvents.list, meter_id भी स्वीकार करता है और paginated list return करता है।
Proxy Configuration
Requests को proxy के माध्यम से भेजने के लिए अपने runtime की proxy settingsfetchOptions में pass करें।
Node.js (Using Undici)
एक undiciProxyAgent को dispatcher के रूप में pass करें:
Bun
proxy option set करें:
Deno
Deno.createHttpClient के साथ HTTP client बनाएं और उसे client के रूप में pass करें:
Logging
logLevel client option या DODO_PAYMENTS_LOG environment variable से log level set करें। Client option, environment variable को override करता है।
'debug': Debug messages, info, warnings और errors।'info': Info messages, warnings और errors।'warn': Warnings और errors। यह default है।'error': केवल errors।'off': कोई logging नहीं।
console पर log करता है। pino, winston या किसी अन्य logging library का उपयोग करने के लिए अपने logger को logger option के रूप में pass करें; logLevel अभी भी नियंत्रित करता है कि कौन से messages उस तक पहुंचें। Log messages केवल debugging के लिए हैं और उनका format releases के बीच बदल सकता है।
Node.js SDK से Migration
यदि आप legacy Node.js SDK का उपयोग करते हैं, तो upgrade करने के लिए migration guide follow करें। वर्तमान SDKfetch API का उपयोग करता है, node-fetch का नहीं; इसके लिए Node.js 20, TypeScript 4.9 और Jest 28 या बाद का version आवश्यक है और इसमें एक migration tool शामिल है, जो आपके अधिकांश code को update करता है।
View Migration Guide
Node.js SDK से TypeScript SDK पर migrate करना सीखें
Auto-Pagination
List methods paginated results return करती हैं। हर page से items प्राप्त करने के लिएfor await...of के साथ iterate करें। SDK आवश्यकता होने पर अगला page request करता है:
page.items पढ़ें और hasNextPage() तथा getNextPage() call करें:
page_size pass करें, जैसे client.payments.list({ page_size: 50 })।
आवश्यकताएं
SDK TypeScript 4.9 या बाद के version और इन runtimes को support करता है:- Web browsers (up-to-date Chrome, Firefox, Safari, Edge और अन्य)
- Node.js 20 LTS या बाद के (non-EOL) versions
- Deno 1.28.0 या बाद का
- Bun 1.0 या बाद का
- Cloudflare Workers
- Vercel Edge Runtime
- Jest 28 या बाद का,
"node"environment के साथ ("jsdom"environment supported नहीं है) - Nitro 2.6 या बाद का
Resources
GitHub Repository
Source code, releases और पूरी method list।
API Reference
हर endpoint, parameter और response।
Discord Community
प्रश्न पूछें और अन्य developers के साथ बातचीत करें।
Report Issues
Bugs report करें या features request करें।
Support
TypeScript SDK के लिए सहायता प्राप्त करने हेतु:- Discord: Real-time सहायता के लिए community server join करें।
- Email: support@dodopayments.com पर संपर्क करें।
- GitHub: repository पर issue खोलें।