इंस्टॉलेशन
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 के साथ काम करती है।
मुख्य सुविधाएँ
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 बनाने के लिए उसके staticwith constructor का उपयोग named parameters के साथ करें:
["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 करें:
requestOptions array में seconds में timeout set करें।
सामान्य Operations
इस section के examples Quick Start से$client का उपयोग करते हैं।
Checkout Session बनाएँ
Checkout session बनाएँ, फिर customer को लौटाए गएcheckoutURL पर redirect करें:
Customers Manage करें
Email address और name के साथ customer बनाएँ, फिर उसे ID से retrieve करें:Subscriptions Handle करें
Subscription बनाएँ, फिर यदि यह on-demand subscription है तो उसे charge करें।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 करता है:
hasNextPage() और getNextPage() call करें।
Error Handling
जब SDK API से connect नहीं कर पाता या API 4xx अथवा 5xx status लौटाती है, तो SDKDodopayments\Core\Exceptions\APIException की subclass throw करता है:
Error Types
Exception class cause पर निर्भर करती है। सभी classesDodopayments\Core\Exceptions namespace में हैं:
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 करता है:config/services.php में add करें:
Symfony
ऐसी service बनाएँ जो अपने constructor के माध्यम से API key प्राप्त करे: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 के लिए सहायता:- Discord: Real-time help के लिए community server join करें।
- Email: support@dodopayments.com पर संपर्क करें।
- GitHub: repository पर issue खोलें।