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

Tambahkan tipe URL untuk skema Anda di ios/Runner/Info.plist:
ios/Runner/Info.plist
Kemudian teruskan URL yang masuk (misalnya melalui 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

result.status adalah petunjuk UI, bukan bukti pembayaran. Konfirmasikan setiap pembayaran dari backend Anda melalui webhook payment.succeeded / subscription.active.
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.
Berikan akses setelah salah satu hal ini mengonfirmasi pembayaran, jangan pernah hanya berdasarkan 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 sesi checkout.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.
Terakhir diubah pada 31 Juli 2026