Optional उन fields के लिए जो अनुपस्थित हो सकते हैं, Stream results को iterate करने के लिए, और CompletableFuture asynchronous calls के लिए।
स्थापना
मावेन
अपनेpom.xml में निर्भरता जोड़ें:
pom.xml
ग्रेडल
अपनेbuild.gradle.kts में dependency जोड़ें:
build.gradle.kts
SDK के लिए Java 8 या उसके बाद का version आवश्यक है, इसलिए यह Java 11, 17 और 21 पर भी चलता है।
त्वरित प्रारंभ
एक client बनाएं, फिर checkout session बनाएं:fromEnv(), live mode से connect करता है, जब तक DODO_PAYMENTS_BASE_URL या dodopayments.baseUrl कुछ और न कहे। test mode का उपयोग करने के लिए Test Mode देखें। test mode API key केवल test mode में काम करती है।
मुख्य सुविधाएं
Type Safety
compile-time checks के लिए typed request और response classes।
Shared Client
एक client बनाएं और उसे सभी requests में reuse करें: इसमें connection और thread pools होते हैं। Request और response objects immutable होते हैं।
Builder Pattern
हर request class में एक builder होता है, और
toBuilder() एक modified copy बनाता है।Async Support
client.async() ऐसा client लौटाता है जिसकी methods CompletableFuture लौटाती हैं।Configuration
Environment Variables
fromEnv() इन environment variables या matching system properties को पढ़ता है। System properties को प्राथमिकता मिलती है:
.env
DODO_PAYMENTS_API_KEY या dodopayments.apiKey से आती है। Webhook signing secret DODO_PAYMENTS_WEBHOOK_KEY या dodopayments.webhookKey से, और base URL DODO_PAYMENTS_BASE_URL या dodopayments.baseUrl से आता है। एक client बनाएं और उसे reuse करें, क्योंकि हर client का अपना connection pool और thread pools होता है।
Webhook verify करने के लिए raw request body और headers को client.webhooks().unwrap(UnwrapWebhookParams.builder().body(rawBody).headers(headers).build()) में pass करें, जहां headers एक com.dodopayments.api.core.http.Headers है। यह आपके webhook key से signature check करता है और parsed event लौटाता है, या DodoPaymentsWebhookException throw करता है। Headers के बिना, unwrap signature verify नहीं करता। client.webhooks().unsafeUnwrap(rawBody) body को verify किए बिना parse करता है, इसलिए इसका उपयोग केवल testing के लिए करें। Webhooks देखें।
Manual Configuration
Builder पर हर option set करें:RequestOptions.builder().timeout(Duration.ofSeconds(30)).build() pass करें। responseValidation(true) पहले से check करता है कि पूरी response expected types से match करती है। इसके बिना, SDK DodoPaymentsInvalidDataException केवल तब throw करता है जब आप unexpected type वाली property पढ़ते हैं।
Test Mode
test mode (https://test.dodopayments.com) का उपयोग करने के लिए builder पर testMode() call करें:
सामान्य Operations
इस section के examples Quick Start सेclient का उपयोग करते हैं।
Checkout Session बनाएं
एक checkout session बनाएं, फिर customer को लौटाए गए checkout URL पर redirect करें:checkoutUrl() एक Optional<String> लौटाता है। हर checkout URL केवल एक बार काम करता है और 24 hours के बाद expire हो जाता है। हर session option के लिए Checkout Sessions देखें।
Customers manage करें
email address, name और metadata के साथ customer बनाएं, फिर उसे ID से retrieve करें:Subscriptions handle करें
payment link के साथ subscription बनाएं, फिर यदि यह on-demand subscription है तो उसे charge करें।productPrice सबसे छोटी currency unit में होता है, जैसे USD के लिए cents या INR के लिए paise। $25.00 charge करने के लिए 2500 pass करें।Usage-Based Billing
Meters configure करें
एक meter बनाएं जो events को count करे, फिर अपने meters की list बनाएं।autoPager() हर meter पर iterate करता है और आवश्यकता के अनुसार अधिक pages fetch करता है:
Usage Events ingest करें
किसी customer के लिए usage event भेजें। Event metadata valuesJsonValue objects होते हैं:
eventId idempotency key है, इसलिए हर event को unique value दें। 1 hour से अधिक पुराना या 5 minutes से अधिक future का timestamp reject कर दिया जाता है।
Events को batch में ingest करें
एक request में अधिकतम 1,000 events भेजें। यह example पिछले example के imports का उपयोग करता है:Error Handling
SDK unchecked exceptions throw करता है। Error status के लिए यहDodoPaymentsServiceException की subclass throw करता है, जिसमें statusCode(), headers() और body() होते हैं। Base class से पहले उन specific classes को catch करें जिन्हें आप handle करना चाहते हैं:
UnexpectedStatusCodeException throw करते हैं। Network failures DodoPaymentsIoException throw करते हैं, और जिन responses को SDK interpret नहीं कर पाता वे DodoPaymentsInvalidDataException throw करती हैं। ये सभी DodoPaymentsException को extend करते हैं।
Async Operations
Asynchronous client प्राप्त करने के लिए client परasync() call करें। इसकी methods CompletableFuture लौटाती हैं:
DodoPaymentsOkHttpClientAsync.fromEnv() का उपयोग करें।
Spring Boot Integration
Configuration Class
एक client को bean के रूप में register करें और property से environment चुनें:Service Layer
Client को service में inject करें:Resources
GitHub Repository
Source code, releases और पूरी method list।
API Reference
हर endpoint, parameter और response।
Discord Community
Questions पूछें और अन्य developers के साथ बातचीत करें।
Report Issues
Bugs report करें या features का अनुरोध करें।
Support
Java SDK के लिए सहायता प्राप्त करने हेतु:- Discord: Real-time सहायता के लिए community server से जुड़ें।
- Email: support@dodopayments.com पर संपर्क करें।
- GitHub: repository पर issue खोलें।