Ini adalah paket Flutter resmi Dodo Payments (
dodopayments_checkout
di pub.dev). Paket terpisah yang dibuat oleh komunitas juga tersedia, lihat
Proyek Komunitas.Checkout Sessions API
Buat checkout_url yang akan dibuka SDK ini dari backend Anda.
Mobile Integration Guide
Lihat bagaimana ini terintegrasi ke dalam alur pembayaran seluler lengkap.
dodopayments_checkout membuka checkout hosted Dodo di
SFSafariViewController di iOS dan Chrome Custom Tab di Android — core
native yang sama seperti yang digunakan oleh SDK mandiri iOS dan
Android. Semua logika checkout berada di
core native tersebut; layer Dart meneruskan pemanggilan melalui channel bertipe
Pigeon. Layer ini tidak menyimpan API key dan
tidak pernah memanggil Dodo Payments API.
Memerlukan Flutter 3.44+ / Dart 3.12+, iOS 16+, dan Android minSdk 23.
Instalasi
1
Add the Dependency
pubspec.yaml
2
Register a Callback URL Scheme
- iOS
- Android
Tambahkan tipe URL untuk skema Anda di Kemudian teruskan URL yang masuk (misalnya melalui
ios/Runner/Info.plist:ios/Runner/Info.plist
app_links) ke SDK, karena
SFSafariViewController tidak dapat menangkap URL pengembaliannya sendiri:Aman untuk meneruskan setiap URL di sini.
handleOpenURL hanya bertindak pada URL
yang cocok dengan returnUrl terdaftar Anda dan menyelesaikan false untuk URL
lainnya.Penggunaan
Arti Hasil
CheckoutStatus
wajib
Salah satu dari
succeeded, failed, cancelled, pending, expired.String?
Ditetapkan ketika URL pengembalian menyertakan salah satunya. Tampilkan di UI, jangan gunakan untuk memberikan akses. Lihat Verifikasi Pembayaran di bawah.
String?
Ditetapkan untuk checkout langganan.
List<String>?
Ditetapkan ketika checkout menyertakan produk dengan license key.
String?
Ditetapkan ketika checkout menangkap email.
Map<String, String>
Setiap parameter query dari URL pengembalian, apa adanya.
Verifikasi Pembayaran
Webhooks
Dodo Payments memanggil backend Anda ketika pembayaran berhasil atau langganan aktif.
Get Payment Detail
Cari
paymentId menggunakan secret key Anda untuk memeriksa statusnya secara langsung.result.status.
Error
start hanya melempar CheckoutException untuk penggunaan yang salah atau kegagalan platform.
Pembayaran yang dibatalkan atau ditolak selalu menjadi hasil, bukan exception.
invalidCheckoutUrl(INVALID_CHECKOUT_URL): bukan URL sesicheckout.dodopayments.com.invalidReturnUrl(INVALID_RETURN_URL): bukan URL absolut yang valid.alreadyInProgress(ALREADY_IN_PROGRESS): checkout sedang berjalan.platformError(PLATFORM_ERROR): kegagalan platform yang tidak terduga.
Sesi yang Ditinggalkan
Jika aplikasi dihentikan di tengah checkout, pulihkan sesi saat peluncuran berikutnya dan
rekonsiliasikan dengan backend Anda.
Terkait
Mobile Integration Guide
Kontrak yang sama untuk Android, iOS, dan React Native.
Community Projects
Paket Flutter terpisah yang dibuat oleh komunitas juga tersedia.