यह आधिकारिक Android checkout SDK (
com.dodopayments.api:checkout-android) है,
जो Dodo का hosted checkout खोलने के लिए है। यह
backend Kotlin SDK से अलग है, जो आपके server से Dodo
Payments API को कॉल करता है।Checkout Sessions API
वह
checkout_url बनाएँ जिसे यह SDK खोलता हैMobile Integration Guide
mobile checkout flows के लिए best practices
androidx.browser.customtabs का उपयोग करके Dodo का hosted checkout Chrome Custom Tab में खोलता है। इसमें कोई networking code नहीं है और यह कोई API key नहीं रखता। आप अपने backend के checkout session से एक checkoutUrl पास करते हैं और user के flow पूरा करने या छोड़ने पर SDK एक typed CheckoutResult लौटाता है।
आवश्यकताएँ: minSdk 23, Kotlin, Java 17।
Installation
1
Add the Dependency
build.gradle.kts
2
Register a Callback URL Scheme
अपने callback scheme को Gradle manifest placeholder के रूप में सेट करें। Library के अपने
manifest में पहले से redirect activity का intent filter
इस value का scheme,
${dodoCallbackScheme} token का उपयोग करके घोषित है, इसलिए यह एक property ही पूरा setup है —
आपको कोई manifest XML जोड़ने की आवश्यकता नहीं है:build.gradle.kts
CheckoutParams.returnUrl में दिए गए scheme से मेल खाना चाहिए (उदाहरण के लिए
myapp://checkout/return)।यदि आप placeholder को पूरी तरह छोड़ देते हैं, तो build तुरंत unresolved-placeholder error के साथ विफल हो जाता है,
checkout के समय चुपचाप विफल नहीं होता। यदि आप इसे सेट करते हैं, लेकिन यह
returnUrl के scheme से मेल नहीं खाता, तो DodoCheckout.start कुछ भी प्रस्तुत करने से पहले
PLATFORM_ERROR throw करता है।उपयोग
SDK दो invocation styles को support करता है।- Launcher (Recommended)
- Suspend Function
contract को
registerForActivityResult के साथ register करें, फिर उसे launch करें:Result का अर्थ
CheckoutStatus
आवश्यक
इनमें से कोई एक:
SUCCEEDED, FAILED, CANCELLED, PENDING, EXPIRED।String?
जब return URL में इनमें से कोई शामिल हो, तब set होता है। इसे UI में display करें, access देने के लिए इसका उपयोग न करें। नीचे Verify the Payment देखें।
String?
Subscription checkouts के लिए set होता है।
List<String>?
जब checkout में license key products शामिल हों, तब set होता है।
String?
जब checkout किसी email को capture करता है, तब set होता है।
Map<String, String>
return URL के प्रत्येक query parameter को verbatim रखता है।
Payment verify करें
Webhooks
payment events को real time में सुनें
Get Payment Detail
आवश्यकता के अनुसार payment status query करें
CheckoutResult.status पर निर्भर न रहें।
Errors
DodoCheckout.start केवल misuse या platform
failure की स्थिति में CheckoutError throw करता है। code CheckoutError.code से पढ़ें:
INVALID_CHECKOUT_URL: validcheckout.dodopayments.comsession URL नहीं है।INVALID_RETURN_URL: valid absolute URL नहीं है।ALREADY_IN_PROGRESS: checkout पहले से चल रहा है।PLATFORM_ERROR: unexpected platform failure, जिसमें ऐसाreturnUrlभी शामिल है जिसका scheme आपकेdodoCallbackSchemeplaceholder से मेल नहीं खाता।
CANCELLED या
FAILED), thrown error नहीं। Launcher style के साथ, validation errors
launcher.launch(...) से बाहर throw होते हैं।
छोड़े गए Sessions
यदि checkout के दौरान app बंद हो जाता है या user उसे force-stop कर देता है, तो SDK session को locally store करता है। अगली बार app launch होने पर abandoned session की जाँच करें और उसे अपने backend के साथ reconcile करें:abandoned.createdAt milliseconds में epoch timestamp है।
संबंधित
Mobile Integration Guide
mobile checkout flows के लिए best practices
Kotlin SDK
server-side operations के लिए Backend SDK