Skip to main content
यह आधिकारिक 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
Android SDK, 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 ${dodoCallbackScheme} token का उपयोग करके घोषित है, इसलिए यह एक property ही पूरा setup है — आपको कोई manifest XML जोड़ने की आवश्यकता नहीं है:
build.gradle.kts
इस value का scheme, CheckoutParams.returnUrl में दिए गए scheme से मेल खाना चाहिए (उदाहरण के लिए myapp://checkout/return)।
यदि आप placeholder को पूरी तरह छोड़ देते हैं, तो build तुरंत unresolved-placeholder error के साथ विफल हो जाता है, checkout के समय चुपचाप विफल नहीं होता। यदि आप इसे सेट करते हैं, लेकिन यह returnUrl के scheme से मेल नहीं खाता, तो DodoCheckout.start कुछ भी प्रस्तुत करने से पहले PLATFORM_ERROR throw करता है।

उपयोग

SDK दो invocation styles को support करता है।

Result का अर्थ

status field UI hint है, payment का प्रमाण नहीं। Access देने से पहले हमेशा webhooks या Get Payment Detail endpoint का उपयोग करके अपने backend पर payment verify करें।
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 करें
इनमें से किसी एक के payment की पुष्टि करने के बाद ही user को access दें। केवल 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 के रूप में।
Int?
Navigation bar का color।
Int?
Navigation bar के ऊपर divider का color।
CloseButtonStyle
DEFAULT system का “X” icon दिखाता है; BACK इसके बजाय back arrow बनाता है।
CloseButtonPosition
Toolbar के किस तरफ close button दिखाई देता है: START या END
Boolean
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.com session URL नहीं है।
  • INVALID_RETURN_URL: यह valid absolute URL नहीं है।
  • ALREADY_IN_PROGRESS: checkout पहले से चल रहा है।
  • PLATFORM_ERROR: unexpected platform failure, जिसमें ऐसा returnUrl शामिल है जिसका scheme आपके dodoCallbackScheme placeholder से मेल नहीं खाता।
User द्वारा cancel करना या declined payment हमेशा एक result (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 है।

Mobile Integration Guide

Mobile checkout flows के लिए best practices

Kotlin SDK

Server-side operations के लिए Backend SDK
अंतिम संशोधन 17 अगस्त 2026