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.
Error
start memunculkan CheckoutError hanya jika terjadi kesalahan penggunaan atau kegagalan platform. Pembayaran yang dibatalkan atau ditolak selalu menjadi result, bukan exception.
invalidCheckoutUrl(INVALID_CHECKOUT_URL): bukan URL sessioncheckout.dodopayments.com.invalidReturnUrl(INVALID_RETURN_URL): bukan absolute URL yang valid.alreadyInProgress(ALREADY_IN_PROGRESS): checkout sedang berjalan.platformError(PLATFORM_ERROR): kegagalan platform yang tidak terduga.
Session yang Ditinggalkan
Jika aplikasi dihentikan di tengah checkout, pulihkan session 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 core Swift yang sama di iOS.