Skip to main content
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 ini

Mobile Integration Guide

Praktik terbaik untuk alur checkout seluler
Android SDK membuka checkout yang di-host Dodo dalam Chrome Custom Tab menggunakan 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 ${dodoCallbackScheme}, sehingga satu properti ini sudah mencakup seluruh penyiapan — Anda tidak perlu menambahkan XML manifest:
build.gradle.kts
Nilainya harus cocok dengan scheme dalam 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.

Arti Result

Field status adalah petunjuk UI, bukan bukti pembayaran. Selalu verifikasi pembayaran di backend Anda menggunakan webhook atau endpoint Get Payment Detail sebelum memberikan akses.
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
Berikan akses kepada pengguna hanya setelah salah satu cara ini mengonfirmasi pembayaran. Jangan hanya mengandalkan CheckoutResult.status.

Error

DodoCheckout.start hanya melempar CheckoutError untuk penggunaan yang salah atau kegagalan platform. Baca kodenya dari CheckoutError.code:
  • INVALID_CHECKOUT_URL: bukan session URL checkout.dodopayments.com.
  • INVALID_RETURN_URL: bukan URL absolut yang valid.
  • ALREADY_IN_PROGRESS: checkout sedang berjalan.
  • PLATFORM_ERROR: kegagalan platform yang tidak terduga, termasuk returnUrl yang schemenya tidak cocok dengan placeholder dodoCallbackScheme Anda.
Pembatalan oleh pengguna atau pembayaran yang ditolak selalu berupa result (CANCELLED atau FAILED), bukan error yang dilempar. Dengan gaya launcher, error validasi dilempar dari launcher.launch(...).

Session yang Ditinggalkan

Jika aplikasi dihentikan atau pengguna melakukan force-stop selama checkout, SDK menyimpan session secara lokal. Saat aplikasi diluncurkan berikutnya, periksa session yang ditinggalkan dan rekonsiliasikan dengan backend Anda:
abandoned.createdAt adalah timestamp epoch dalam milidetik.

Terkait

Mobile Integration Guide

Praktik terbaik untuk alur checkout seluler

Kotlin SDK

Backend SDK untuk operasi sisi server
Terakhir diubah pada 31 Juli 2026