Skip to main content
PHP SDK, PHP 8.1+ applications को Dodo Payments REST API का access देता है। Methods named parameters लेते हैं, responses typed objects होते हैं और Composer PSR-4 autoloading के साथ SDK को load करता है।

इंस्टॉलेशन

Composer के साथ SDK install करें:
SDK के लिए PHP 8.1.0 या बाद का version और Composer आवश्यक हैं। यह आपके project में मौजूद PSR-18 HTTP client, जैसे Guzzle, के ज़रिए requests भेजता है, जिसे यह php-http/discovery के साथ ढूँढता है।

त्वरित प्रारंभ

एक client बनाएँ, फिर checkout session बनाएँ:
यदि आप bearerToken छोड़ देते हैं, तो client DODO_PAYMENTS_API_KEY environment variable को पढ़ता है। यदि आप baseUrl छोड़ देते हैं, तो client DODO_PAYMENTS_BASE_URL को पढ़ता है और live mode (https://live.dodopayments.com) से connect करता है, जब वह भी set न हो। Test mode API key केवल test mode URL, https://test.dodopayments.com के साथ काम करती है।
API keys को environment variables या secrets manager में रखें। उन्हें कभी भी अपने codebase में expose न करें और न ही version control में commit करें।

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

PSR-4 Compliant

Composer Dodopayments namespace को PSR-4 autoloading के साथ load करता है।

Modern PHP

PHP 8.1 या बाद के version के लिए बनाया गया है, जिसमें typed parameters और strict types हैं।

Extensive Testing

SDK repository में API services के लिए test suite शामिल है।

Exception Handling

प्रत्येक HTTP error status के लिए एक exception class, साथ ही timeout और connection exceptions।

Value Objects

Methods named parameters लेते हैं और जिन parameters की default value होती है, उन्हें name से pass करना आवश्यक है। Value object बनाने के लिए उसके static with constructor का उपयोग named parameters के साथ करें:
प्रत्येक value object में एक builder भी होता है:
Methods plain arrays भी स्वीकार करते हैं, जिनमें वही camelCase keys होती हैं, जैसे ["productID" => "pdt_123", "quantity" => 1]। Response properties भी camelCase names का उपयोग करती हैं, उदाहरण के लिए $session->checkoutURL।

Configuration

Client constructor, bearerToken, webhookKey, baseUrl और requestOptions लेता है। इन्हें छोड़ने पर यह environment से DODO_PAYMENTS_API_KEY, DODO_PAYMENTS_WEBHOOK_KEY (आपका webhook signing secret) और DODO_PAYMENTS_BASE_URL पढ़ता है। Webhook verify करने के लिए raw request body और headers को $client->webhooks->unwrap($body, headers: $headers) में pass करें। यह आपके webhook key से signature check करता है, parsed event लौटाता है और check fail होने पर WebhookException throw करता है। यदि आप headers छोड़ देते हैं, तो unwrap signature verify नहीं करता। $client->webhooks->unsafeUnwrap($body) body को बिना verify किए parse करता है, इसलिए इसका उपयोग केवल testing के लिए करें। Webhooks देखें।

Retry Configuration

SDK default रूप से कुछ errors को short exponential backoff के साथ दो बार retry करता है। ये errors retry trigger करते हैं:
  • Connection errors (network connectivity problems)
  • 408 Request Timeout
  • 409 Conflict
  • 429 Rate Limit
  • 500+ Internal errors
  • Timeouts
maxRetries को requestOptions में, client पर या किसी एक request पर set करें:
Requests default रूप से 60 seconds के बाद timeout हो जाती हैं। Limit बदलने के लिए उसी requestOptions array में seconds में timeout set करें।

सामान्य Operations

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

Checkout Session बनाएँ

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

Customers Manage करें

Email address और name के साथ customer बनाएँ, फिर उसे ID से retrieve करें:

Subscriptions Handle करें

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 attach करने के लिए AttachExistingCustomer::with(customerID: '...') pass करें या customer बनाने के लिए NewCustomer::with(email: '...', name: '...') pass करें। दोनों classes Dodopayments\Payments namespace में हैं। charge on-demand subscriptions के लिए है और productPrice सबसे छोटी currency unit में है।

Pagination

List methods एक page object लौटाते हैं। getItems() current page के items लौटाता है और pagingEachItem() current page से आगे के सभी items लौटाता है तथा आवश्यकता के अनुसार अधिक pages request करता है:
एक बार में एक page आगे बढ़ने के लिए hasNextPage() और getNextPage() call करें।

Error Handling

जब SDK API से connect नहीं कर पाता या API 4xx अथवा 5xx status लौटाती है, तो SDK Dodopayments\Core\Exceptions\APIException की subclass throw करता है:

Error Types

Exception class cause पर निर्भर करती है। सभी classes Dodopayments\Core\Exceptions namespace में हैं:
API calls के आसपास इन exceptions को catch करें, ताकि आपका application स्पष्ट message दिखा सके या बाद में फिर प्रयास कर सके। Retryable error के लिए SDK अपने automatic retries fail होने के बाद ही throw करता है।

Advanced Usage

Undocumented Endpoints

ऐसे endpoint को call करने के लिए जिसका कोई SDK method नहीं है, $client->request का उपयोग करें। यह SDK methods के समान authentication और retries लागू करता है:

Undocumented Parameters

SDK द्वारा define न किए गए parameters भेजने के लिए उन्हें requestOptions में pass करें:
ऐसा extra* parameter जिसका name documented parameter के समान हो, उसे override करता है।

Framework Integration

Laravel

Client को service class में wrap करें। यह example configured environment से API URL set करता है:
Settings को config/services.php में add करें:

Symfony

ऐसी service बनाएँ जो अपने constructor के माध्यम से API key प्राप्त करे:
Service को config/services.yaml में register करें:

Resources

GitHub Repository

Source code, releases और पूरी method list।

API Reference

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

Discord Community

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

Report Issues

Bugs report करें या features का अनुरोध करें।

Support

PHP SDK के लिए सहायता:

Contributing

Contribute करने के लिए contributing guidelines पढ़ें।
अंतिम संशोधन 26 सितंबर 2026