यह आधिकारिक 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 पर निर्भर न रहें।
Appearance Customization
CheckoutParams पर customization के माध्यम से Custom Tab के toolbar, buttons और color scheme को कस्टमाइज़ करें। सभी fields optional हैं; customization को छोड़ने पर Android का default Custom Tab appearance उपयोग होता है।
Int?
Toolbar का background color, ARGB
Color int के रूप में।Navigation bar का color।
Navigation bar के ऊपर divider का color।
CloseButtonStyle
DEFAULT system का “X” icon दिखाता है; BACK इसके बजाय back arrow बनाता है।CloseButtonPosition
Toolbar के किस तरफ close button दिखाई देता है:
START या END।Toolbar का share icon दिखाता है।
Boolean
Toolbar में URL के नीचे page title दिखाता है।
Boolean
Page के scroll होने पर toolbar को अपने-आप hide होने देता है।
Boolean
Overflow menu में “Bookmark this page” दिखाता है।
Boolean
Overflow menu में “Download page” दिखाता है।
ColorScheme
Device की system setting की परवाह किए बिना light या dark appearance लागू करता है:
SYSTEM, LIGHT, या DARK।Errors
DodoCheckout.start केवल गलत उपयोग या platform
failure के लिए CheckoutError throw करता है। CheckoutError.code से code पढ़ें:
INVALID_CHECKOUT_URL: यहcheckout.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 होते हैं।
Abandoned Sessions
यदि checkout के दौरान app बंद हो जाता है या user उसे force-stop कर देता है, तो SDK session को locally store करता है। अगली बार app launch होने पर abandoned session की जाँच करें और उसे अपने backend के साथ reconcile करें:abandoned.createdAt milliseconds में epoch timestamp है।
Related
Mobile Integration Guide
Mobile checkout flows के लिए best practices
Kotlin SDK
Server-side operations के लिए Backend SDK