मुख्य सामग्री पर जाएं

पूर्वापेक्षाएँ

डोडो पेमेंट्स को अपने मोबाइल ऐप में एकीकृत करने से पहले, सुनिश्चित करें कि आपके पास हैं:
  • डोडो पेमेंट्स खाता: सक्रिय व्यापारी खाता जिसमें API पहुंच हो
  • API क्रेडेंशियल्स: अपने डैशबोर्ड से API कुंजी और वेबहुक गुप्त कुंजी
  • मोबाइल ऐप प्रोजेक्ट: एंड्रॉइड, iOS, React Native, या Flutter अनुप्रयोग
  • बैकेंड सर्वर: चेकआउट सत्र निर्माण को सुरक्षित रूप से संभालने के लिए

इंटीग्रेशन वर्कफ़्लो

मोबाइल इंटीग्रेशन एक सुरक्षित 4-चरणीय प्रक्रिया का पालन करता है जहां आपका बैकेंड API कॉल को संभालता है और आपका मोबाइल ऐप उपयोगकर्ता अनुभव का प्रबंधन करता है।
1

बैकेंड: चेकआउट सत्र बनाएं

चेकआउट सत्र API दस्तावेज़

अपने बैकेंड में Node.js, Python, और अन्य का उपयोग करके चेकआउट सत्र बनाने के तरीके के बारे में जानें। समर्पित चेकआउट सत्र API दस्तावेज़ में पूर्ण उदाहरण और पैरामीटर संदर्भ देखें।
सुरक्षा: चेकआउट सत्र आपके बैकेंड सर्वर पर बनाए जाने चाहिए, कभी भी मोबाइल ऐप में नहीं। यह आपकी API कुंजियों की सुरक्षा करता है और उचित मान्यता सुनिश्चित करता है।
2

मोबाइल: चेकआउट URL प्राप्त करें

आपका मोबाइल ऐप चेकआउट URL प्राप्त करने के लिए आपके बैकेंड को कॉल करता है:
func getCheckoutURL(productId: String, customerEmail: String, customerName: String) async throws -> String {
    let url = URL(string: "https://your-backend.com/api/create-checkout-session")!
    var request = URLRequest(url: url)
    request.httpMethod = "POST"
    request.setValue("application/json", forHTTPHeaderField: "Content-Type")
    
    let requestData: [String: Any] = [
        "productId": productId,
        "customerEmail": customerEmail,
        "customerName": customerName
    ]
    request.httpBody = try JSONSerialization.data(withJSONObject: requestData)
    
    let (data, _) = try await URLSession.shared.data(for: request)
    let response = try JSONDecoder().decode(CheckoutResponse.self, from: data)
    return response.checkout_url
}
सुरक्षा: मोबाइल ऐप केवल आपके बैकेंड के साथ संवाद करते हैं, कभी भी सीधे डोडो पेमेंट्स API के साथ नहीं।
3

मोबाइल: ब्राउज़र में चेकआउट खोलें

4

बैकेंड: भुगतान पूर्णता को संभालें

भुगतान स्थिति की पुष्टि करने के लिए वेबहुक और रीडायरेक्ट URLs के माध्यम से भुगतान पूर्णता को संसाधित करें।

प्लेटफ़ॉर्म-विशिष्ट इंटीग्रेशन

पूर्ण कार्यान्वयन उदाहरणों के लिए नीचे अपने मोबाइल प्लेटफ़ॉर्म का चयन करें:

एंड्रॉइड इंटीग्रेशन

क्रोम कस्टम टैब कार्यान्वयन

// Add Chrome Custom Tabs dependency to build.gradle
implementation 'androidx.browser:browser:1.5.0'

// In your Activity
class PaymentActivity : AppCompatActivity() {
    private var customTabsSession: CustomTabsSession? = null
    private var customTabsClient: CustomTabsClient? = null
    private var customTabsServiceConnection: CustomTabsServiceConnection? = null

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        // Initialize Custom Tabs
        customTabsServiceConnection = object : CustomTabsServiceConnection() {
            override fun onCustomTabsServiceConnected(name: ComponentName, client: CustomTabsClient) {
                customTabsClient = client
                customTabsClient?.warmup(0L)
                customTabsSession = customTabsClient?.newSession(object : CustomTabsCallback() {
                    override fun onNavigationEvent(navigationEvent: Int, extras: Bundle?) {
                        // Handle navigation events
                    }
                })
            }
            override fun onServiceDisconnected(name: ComponentName) {
                customTabsClient = null
            }
        }
        CustomTabsClient.bindCustomTabsService(
            this,
            "com.android.chrome",
            customTabsServiceConnection!!
        )
        // Get checkout URL from backend and launch
        lifecycleScope.launch {
            try {
                val checkoutURL = getCheckoutURL("prod_123", "[email protected]", "Customer Name")
                val customTabsIntent = CustomTabsIntent.Builder(customTabsSession)
                    .build()
                customTabsIntent.launchUrl(this@PaymentActivity, Uri.parse(checkoutURL))
            } catch (e: Exception) {
                // Handle error
                Log.e("PaymentActivity", "Failed to get checkout URL", e)
            }
        }
    }
}

सर्वोत्तम प्रथाएँ

  • सुरक्षा: कभी भी अपने ऐप कोड में API कुंजियाँ न रखें। सुरक्षित भंडारण और SSL पिनिंग का उपयोग करें।
  • उपयोगकर्ता अनुभव: लोडिंग संकेतक दिखाएं, त्रुटियों को सुचारू रूप से संभालें, और स्पष्ट संदेश प्रदान करें।
  • परीक्षण: परीक्षण कार्ड का उपयोग करें, नेटवर्क त्रुटियों का अनुकरण करें, और विभिन्न उपकरणों पर परीक्षण करें।

समस्या निवारण

सामान्य मुद्दे

  • WebView भुगतान लिंक नहीं खोल रहा है: सुनिश्चित करें कि भुगतान लिंक मान्य है और HTTPS का उपयोग करता है।
  • कॉलबैक प्राप्त नहीं हुआ: अपने रिटर्न URL और वेबहुक कॉन्फ़िगरेशन की जांच करें।
  • API कुंजी त्रुटियाँ: सुनिश्चित करें कि आपकी API कुंजी सही है और आवश्यक अनुमतियाँ हैं।

अतिरिक्त संसाधन

प्रश्नों या सहायता के लिए, संपर्क करें [email protected]