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 पर निर्भर न रहें।

Errors

DodoCheckout.start केवल misuse या platform failure की स्थिति में CheckoutError throw करता है। code CheckoutError.code से पढ़ें:
  • INVALID_CHECKOUT_URL: valid 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 होते हैं।

छोड़े गए 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
अंतिम संशोधन 31 जुलाई 2026