Skip to main content
यह आधिकारिक Dodo Payments React Native checkout SDK है, @dodopayments/react-native-checkout। यह Dodo’s hosted checkout को native browser view में खोलता है और typed result लौटाता है। ध्यान दें: dodopayments-react-native-sdk (unscoped) नाम का एक पुराना, असंबंधित package मौजूद है, जिसका API पूरी तरह अलग है। यह पेज केवल वर्तमान आधिकारिक scoped package का documentation है।

Checkout Sessions API

अपने backend से वह checkout_url बनाएँ जिसे यह SDK खोलता है।

Mobile Integration Guide

देखें कि यह पूरे mobile payment flow में कैसे फिट होता है।
React Native SDK उसी native Swift और Kotlin cores के ऊपर एक thin Turbo Module wrapper है। यह iOS पर SFSafariViewController और Android पर Chrome Custom Tab खोलता है, कोई API key नहीं रखता और Dodo API को सीधे कभी call नहीं करता। Checkout का पूरा logic browser में चलता है; SDK केवल view lifecycle को manage करता है और return URL को capture करता है।
इस SDK के लिए केवल New Architecture, React Native 0.76+, iOS 16+ और Android minSdk 24 आवश्यक हैं।

Installation

1

Install the Package

Package autolinked है और Maven से com.dodopayments.api:checkout-android प्राप्त करता है।
किसी अतिरिक्त setup की आवश्यकता नहीं है; native dependency अपने-आप resolve हो जाती है।
2

Register a Callback URL Scheme

आपके app को checkout से return URL प्राप्त करने के लिए एक URL scheme register करनी होगी।
android/app/build.gradle में:
android/app/build.gradle
"myapp" को अपने app की scheme से बदलें।

उपयोग

Return URL को forward करना

Linking listener iOS के return-URL handling के लिए आवश्यक है। Android पर, handleOpenURL एक no-op है जो false को resolve करता है, क्योंकि Android core अपने redirect को native रूप से handle करता है। दोनों platforms पर listener को बिना शर्त register करना सुरक्षित है।

Result का अर्थ

result.status एक UI hint है, payment का प्रमाण नहीं। प्रत्येक payment की पुष्टि अपने backend से, payment.succeeded / subscription.active webhook के माध्यम से करें।
CheckoutStatus
आवश्यक
इनमें से कोई एक: succeeded, failed, cancelled, pending, expired
string
जब return URL में कोई URL शामिल हो, तब set होता है। इसे UI में दिखाएँ, access देने के लिए इसका उपयोग न करें। नीचे Verify the Payment देखें।
string
subscription checkouts के लिए set होता है।
string[]
जब checkout में license key products शामिल होते हैं, तब set होता है।
string
जब checkout कोई email capture करता है, तब set होता है।
Record<string, string>
return URL का प्रत्येक query parameter, verbatim।

Payment सत्यापित करें

Webhooks

payment सफल होने या subscription सक्रिय होने पर Dodo Payments आपके backend को call करता है।

Get Payment Detail

इसकी status सीधे जाँचने के लिए अपनी secret key से paymentId को look up करें।
इनमें से कोई एक payment की पुष्टि करने के बाद access दें; केवल result.status के आधार पर कभी नहीं।

Appearance Customization

customization के माध्यम से start(...) पर checkout browser के toolbar, buttons और color scheme को customize करें। विकल्पों को platform के अनुसार समूहित किया गया है, क्योंकि Android का Custom Tab और iOS का SFSafariViewController अलग-अलग native controls expose करते हैं। सभी fields optional हैं; customization छोड़ने पर प्रत्येक platform का default appearance उपयोग होता है।
Color
Toolbar का background color।
Color
Navigation bar का color।
Color
Navigation bar के ऊपर divider का color।
'default' | 'back'
default system का “X” icon दिखाता है; back इसके बजाय back arrow बनाता है।
'start' | 'end'
Toolbar में close button किस side पर दिखाई देता है।
boolean
Toolbar का share icon दिखाता है।
boolean
Toolbar में URL के नीचे page title दिखाता है।
boolean
Page scroll होने पर toolbar को auto-hide करने देता है।
boolean
Overflow menu में “Bookmark this page” दिखाता है।
boolean
Overflow menu में “Download page” दिखाता है।
'system' | 'light' | 'dark'
Device की system setting की परवाह किए बिना light या dark appearance लागू करता है।
'done' | 'close' | 'cancel'
Dismiss button के लिए label या icon।
'pageSheet' | 'fullScreen'
pageSheet swipe-to-dismiss वाले card के रूप में दिखाई देता है; fullScreen पूरी screen को cover करता है।
boolean
Scroll करने पर toolbar को collapse होने देता है। केवल तभी दिखाई देता है जब presentationStyle, fullScreen हो — pageSheet इस setting की परवाह किए बिना bars को pinned रखता है।
'system' | 'light' | 'dark'
Device की system setting की परवाह किए बिना light या dark appearance लागू करता है।

Errors

start केवल misuse या platform failure के लिए CheckoutError के साथ reject होता है। Cancelled या declined payment हमेशा result होता है, exception नहीं।
  • INVALID_CHECKOUT_URL: यह checkout.dodopayments.com session URL नहीं है।
  • INVALID_RETURN_URL: यह valid absolute URL नहीं है।
  • ALREADY_IN_PROGRESS: checkout पहले से चल रहा है।
  • PLATFORM_ERROR: unexpected platform failure।

Abandoned Sessions

यदि checkout के दौरान app या JS bundle kill हो जाता है, तो promise खो जाता है, लेकिन native layer session को बनाए रखती है। अगले mount पर इसे recover करें और अपने backend के साथ reconcile करें।

Mobile Integration Guide

Android, iOS और Flutter के लिए यही contract।

Expo Boilerplate

checkout integration के साथ एक complete Expo example।
अंतिम संशोधन 17 अगस्त 2026