Ini adalah Android checkout SDK resmi (
com.dodopayments.api:checkout-android),
untuk membuka checkout yang di-host Dodo. SDK ini berbeda dari
backend Kotlin SDK, yang memanggil Dodo
Payments API dari server Anda.Checkout Sessions API
Buat
checkout_url yang dibuka SDK iniMobile Integration Guide
Praktik terbaik untuk alur checkout seluler
androidx.browser.customtabs. SDK ini tidak memiliki kode networking dan tidak menyimpan API key. Anda meneruskan checkoutUrl dari checkout session backend, dan SDK mengembalikan CheckoutResult bertipe saat pengguna menyelesaikan atau meninggalkan alur.
Persyaratan: minSdk 23, Kotlin, Java 17.
Instalasi
1
Add the Dependency
build.gradle.kts
2
Register a Callback URL Scheme
Tetapkan callback scheme Anda sebagai Gradle manifest placeholder. Manifest milik library
sudah mendeklarasikan intent filter activity redirect menggunakan token
Nilainya harus cocok dengan scheme dalam
${dodoCallbackScheme}, sehingga satu properti ini sudah mencakup seluruh penyiapan —
Anda tidak perlu menambahkan XML manifest:build.gradle.kts
CheckoutParams.returnUrl (misalnya
myapp://checkout/return).Jika Anda menghilangkan placeholder sepenuhnya, build langsung gagal dengan
kesalahan unresolved-placeholder, bukan gagal secara diam-diam saat checkout. Jika
Anda menetapkannya tetapi tidak cocok dengan scheme milik
returnUrl, DodoCheckout.start
akan melempar PLATFORM_ERROR sebelum menampilkan apa pun.Penggunaan
SDK mendukung dua gaya pemanggilan.- Launcher (Recommended)
- Suspend Function
Daftarkan contract dengan
registerForActivityResult, lalu jalankan:Arti Result
CheckoutStatus
wajib
Salah satu dari
SUCCEEDED, FAILED, CANCELLED, PENDING, EXPIRED.String?
Diatur saat return URL menyertakannya. Tampilkan di UI, jangan gunakan untuk
memberikan akses. Lihat Verifikasi Pembayaran di bawah.
String?
Diatur untuk subscription checkout.
List<String>?
Diatur saat checkout menyertakan produk license key.
String?
Diatur saat checkout menangkap email.
Map<String, String>
Setiap query parameter dari return URL, secara verbatim.
Verifikasi Pembayaran
Webhooks
Dengarkan payment events secara real time
Get Payment Detail
Query status pembayaran sesuai kebutuhan
CheckoutResult.status.
Kustomisasi Tampilan
Sesuaikan toolbar, tombol, dan skema warna Custom Tab melaluicustomization di CheckoutParams. Semua kolom bersifat opsional; jika
customization dihilangkan, tampilan default Custom Tab Android akan digunakan.
Int?
Warna latar belakang toolbar, sebagai int ARGB
Color.Warna bilah navigasi.
Warna pemisah di atas bilah navigasi.
CloseButtonStyle
DEFAULT menampilkan ikon sistem “X”; BACK menampilkan panah kembali.CloseButtonPosition
Menentukan sisi toolbar tempat tombol tutup muncul:
START atau END.Menampilkan ikon berbagi pada toolbar.
Boolean
Menampilkan judul halaman di bawah URL pada toolbar.
Boolean
Memungkinkan toolbar tersembunyi otomatis saat halaman digulir.
Boolean
Menampilkan “Bookmark this page” di menu luapan.
Boolean
Menampilkan “Download page” di menu luapan.
ColorScheme
Memaksa tampilan terang atau gelap, terlepas dari pengaturan sistem perangkat:
SYSTEM, LIGHT, atau DARK.Error
DodoCheckout.start hanya melempar CheckoutError jika terjadi kesalahan penggunaan atau
kegagalan platform. Baca kodenya dari CheckoutError.code:
INVALID_CHECKOUT_URL: bukan URL sesicheckout.dodopayments.com.INVALID_RETURN_URL: bukan URL absolut yang valid.ALREADY_IN_PROGRESS: checkout sudah berjalan.PLATFORM_ERROR: kegagalan platform yang tidak terduga, termasukreturnUrlyang skemanya tidak cocok dengan placeholderdodoCallbackSchemeAnda.
CANCELLED atau
FAILED), bukan error yang dilempar. Dengan gaya launcher, error validasi
dilempar dari launcher.launch(...).
Sesi yang Terbengkalai
Jika aplikasi dihentikan atau pengguna melakukan force-stop selama checkout, SDK menyimpan sesi tersebut secara lokal. Saat aplikasi diluncurkan kembali, periksa sesi yang terbengkalai dan rekonsiliasikan dengan backend Anda:abandoned.createdAt adalah stempel waktu epoch dalam milidetik.
Terkait
Mobile Integration Guide
Praktik terbaik untuk alur checkout seluler
Kotlin SDK
SDK backend untuk operasi sisi server