Skip to main content

Quick Start

Jalankan integrasi pembayaran seluler Anda dalam 4 langkah sederhana

Platform Examples

Contoh kode lengkap untuk Android, iOS, React Native, dan Flutter
Dodo Payments menyediakan checkout SDK resmi untuk Android, iOS, React Native, dan Flutter. Masing-masing membungkus pola yang didokumentasikan di bawah ini (buka URL checkout, tangkap pengembalian, parsing hasil) di balik satu panggilan start(...) bertipe, dengan pemulihan sesi yang ditinggalkan sebagai fitur bawaan. Gunakan WebView manual hanya jika tidak ada yang sesuai dengan stack Anda.

Prasyarat

Sebelum mengintegrasikan Dodo Payments ke aplikasi mobile Anda, pastikan Anda memiliki:
  • Akun Dodo Payments: Akun merchant aktif dengan akses API
  • Kredensial API: API key dan webhook secret key dari dashboard Anda
  • Proyek Aplikasi Mobile: Aplikasi Android, iOS, React Native, atau Flutter
  • Server Backend: Untuk menangani pembuatan sesi checkout dengan aman

Alur Kerja Integrasi

Integrasi mobile mengikuti proses 4 langkah yang aman, dengan backend Anda menangani panggilan API dan aplikasi mobile Anda mengelola pengalaman pengguna.
1

Backend: Create Checkout Session

Checkout Session API Docs

Pelajari cara membuat sesi checkout di backend Anda menggunakan Node.js, Python, dan lainnya. Lihat contoh lengkap dan referensi parameter dalam dokumentasi Checkout Sessions API khusus.
Keamanan: Sesi checkout harus dibuat di server backend Anda, bukan di aplikasi mobile. Hal ini melindungi API key Anda dan memastikan validasi yang tepat.
2

Mobile: Get Checkout URL

Aplikasi mobile Anda memanggil backend untuk mendapatkan URL checkout. Autentikasi permintaan ini dengan token sesi milik pengguna yang sudah masuk.
Keamanan: Aplikasi mobile hanya berkomunikasi dengan backend Anda, bukan langsung dengan Dodo Payments API.
3

Mobile: Open Checkout in Browser

Buka URL checkout di browser dalam aplikasi yang aman untuk memproses pembayaran. Atau lewati seluruh penyiapan manual dengan checkout SDK resmi untuk platform Anda.

Pick your mobile SDK

Langkah instalasi dan petunjuk penyiapan untuk Android, iOS, React Native, dan Flutter.
4

Backend: Handle Payment Completion

Proses penyelesaian pembayaran melalui webhook dan URL pengalihan untuk mengonfirmasi status pembayaran.

Pilih SDK Anda

Setiap SDK mobile menyediakan kontrak yang sama: satu panggilan start(...) membuka checkout Dodo yang di-hosting di browser native platform dan mengembalikan CheckoutResult bertipe yang status-nya adalah succeeded, failed, cancelled, pending, atau expired. Tidak ada yang menyimpan API key atau memanggil Dodo Payments API, dan keempatnya mendukung pemulihan sesi yang ditinggalkan.

Android

com.dodopayments.api:checkout-android membuka Chrome Custom Tab. Memerlukan minSdk 23.

iOS

dodopayments-mobile-sdk-ios membuka SFSafariViewController. Memerlukan iOS 16+.

React Native

@dodopayments/react-native-checkout, Turbo Module di atas kedua native core. Memerlukan React Native 0.76+.

Flutter

dodopayments_checkout, channel Pigeon di atas kedua native core. Memerlukan Flutter 3.44+.
status yang Anda dapatkan adalah petunjuk UI, bukan bukti pembayaran. Konfirmasikan setiap pembayaran dari backend Anda melalui webhook payment.succeeded / subscription.active, atau dengan mengambil pembayaran menggunakan secret key Anda.

Mendaftarkan Skema URL Callback

Keempat SDK mengembalikan kontrol ke aplikasi Anda melalui skema URL khusus yang Anda pilih, misalnya myapp://checkout/return. Daftarkan sekali untuk setiap platform:
android/app/build.gradle
Manifest SDK itu sendiri sudah mendeklarasikan aktivitas pengalihan, jadi tidak ada XML manifest yang perlu ditambahkan.
Lebih suka membuatnya sendiri? Buka checkout_url di WebView dan intercept navigasi ke return_url Anda, lalu baca parameter query status dan payment_id. SDK di atas melakukan ini untuk Anda di browser nyata platform, sehingga Apple Pay dan Google Pay tetap berfungsi.

Praktik Terbaik

  • Keamanan: Jangan pernah menyertakan API key dalam aplikasi Anda. Buat sesi checkout di backend dan teruskan hanya checkout_url yang dihasilkan ke client.
  • Otoritas: Perlakukan CheckoutResult.status sebagai petunjuk UI. Berikan akses hanya setelah backend Anda mengonfirmasi pembayaran.
  • Pengalaman Pengguna: Tampilkan status pemuatan saat backend membuat sesi, dan tangani cancelled sebagai hasil normal, bukan error.
  • Pengujian: Gunakan test mode dan test cards, lalu verifikasi round trip return-URL di perangkat nyata dan simulator.

Pemecahan Masalah

Masalah Umum

  • Callback tidak pernah tiba: Skema dalam returnUrl harus sama dengan yang Anda daftarkan. Di Android, skema tersebut adalah manifest placeholder dodoCallbackScheme; di iOS dan React Native, skema tersebut adalah URL type Info.plist.
  • Checkout kembali ke browser, bukan ke aplikasi Anda (iOS): Anda belum meneruskan URL masuk. Panggil DodoCheckout.handleOpenURL(url) dari .onOpenURL, scene(_:openURLContexts:), atau listener React Native Linking.
  • PLATFORM_ERROR di Android: Biasanya disebabkan ketidakcocokan skema. Hal ini juga dapat terjadi jika MainActivity Anda menetapkan android:taskAffinity="" (default flutter create bawaan), yang menyebabkan beberapa build OEM kehilangan checkout yang sedang berlangsung.
  • ALREADY_IN_PROGRESS: Checkout masih terbuka. Tunggu atau tutup checkout sebelumnya sebelum memulai yang lain.
  • Build gagal dengan placeholder yang tidak terselesaikan: Anda menambahkan Android SDK tetapi tidak pernah menetapkan manifestPlaceholders["dodoCallbackScheme"].
  • Pembayaran berhasil tetapi akses tidak diberikan: Hal ini diharapkan jika Anda mengandalkan hasil dari mobile. Berikan akses berdasarkan webhook payment.succeeded / subscription.active.

Sumber Daya Tambahan

Untuk pertanyaan atau dukungan, hubungi support@dodopayments.com.
Terakhir diubah pada 31 Juli 2026