Ini adalah iOS checkout SDK resmi Dodo Payments untuk Swift. SDK ini membuka hosted checkout Dodo di tampilan browser native dan mengembalikan hasil bertipe.
Checkout Sessions API
Buat checkout_url yang akan dibuka SDK ini dari backend Anda.
Mobile Integration Guide
Lihat bagaimana proses ini terintegrasi dengan alur pembayaran mobile secara lengkap.
SFSafariViewController, tidak menyimpan API key, dan tidak pernah memanggil Dodo API secara langsung. Semua logika checkout berjalan di browser; SDK hanya mengelola siklus hidup tampilan dan menangkap return URL.
Memerlukan iOS 16+, Swift 6.
Instalasi
1
Add the Package
Di Xcode, buka File → Add Package Dependencies lalu masukkan:Pilih versi 1.0.0 atau yang lebih baru.Atau, tambahkan ke
Package.swift Anda:Package.swift
2
Register a Callback URL Scheme
Aplikasi Anda harus mendaftarkan URL scheme untuk menerima return URL dari checkout. Tambahkan ini ke Anda juga dapat menambahkannya melalui UI Info → URL Types di Xcode.
Info.plist Anda:Info.plist
Penggunaan
Meneruskan Return URL
SFSafariViewController tidak memiliki cara dalam proses untuk menangkap return URL-nya sendiri. Aplikasi Anda harus meneruskan URL yang masuk ke SDK.
- SwiftUI
- SceneDelegate
Aman untuk meneruskan setiap URL di sini.
handleOpenURL hanya bertindak pada URL yang cocok dengan returnUrl yang Anda daftarkan dan mengembalikan false untuk URL lainnya.Arti Result
CheckoutStatus
wajib
Salah satu dari
succeeded, failed, cancelled, pending, expired.String?
Diatur ketika return URL menyertakan salah satunya. Tampilkan di UI, jangan gunakan untuk memberikan akses. Lihat Verifikasi Pembayaran di bawah.
String?
Diatur untuk checkout subscription.
[String]?
Diatur ketika checkout menyertakan produk license key.
String?
Diatur ketika checkout menangkap email.
[String: String]
Setiap query parameter dari return URL, secara verbatim.
Verifikasi Pembayaran
Webhooks
Dodo Payments memanggil backend Anda ketika pembayaran berhasil atau subscription diaktifkan.
Get Payment Detail
Cari
paymentId menggunakan secret key Anda untuk memeriksa statusnya secara langsung.result.status.
Kustomisasi Tampilan
Sesuaikan tombol tutup sheet, gaya presentasi, dan skema warna melaluicustomization pada start(...). Semua bidang bersifat opsional; jika
customization tidak disertakan, tampilan default iOS akan digunakan melalui SFSafariViewController.
DismissButtonStyle
Label atau ikon untuk tombol tutup:
done, close, atau cancel.PresentationStyle
pageSheet ditampilkan sebagai kartu dengan swipe-to-dismiss; fullScreen mencakup seluruh layar.Bool
Memungkinkan toolbar diciutkan saat scroll. Hanya terlihat ketika
presentationStyle adalah fullScreen — pageSheet membuat bar tetap tersemat terlepas dari pengaturan ini.ColorScheme
Memaksa tampilan terang atau gelap terlepas dari pengaturan sistem perangkat:
system, light, atau dark.Error
start melempar CheckoutError hanya jika terjadi kesalahan penggunaan atau kegagalan platform. Pembayaran yang dibatalkan atau ditolak selalu menjadi hasil, bukan exception.
invalidCheckoutUrl(INVALID_CHECKOUT_URL): bukan URL sesicheckout.dodopayments.comyang valid.invalidReturnUrl(INVALID_RETURN_URL): bukan URL absolut yang valid.alreadyInProgress(ALREADY_IN_PROGRESS): checkout sudah 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, React Native, dan Flutter.
React Native SDK
Membungkus inti Swift yang sama ini di iOS.