Đây là Android checkout SDK chính thức (
com.dodopayments.api:checkout-android),
dùng để mở checkout được lưu trữ của Dodo. SDK này khác với
backend Kotlin SDK, vốn gọi Dodo
Payments API từ máy chủ của bạn.Checkout Sessions API
Tạo
checkout_url mà SDK này mởMobile Integration Guide
Các phương pháp tốt nhất cho quy trình checkout trên thiết bị di động
androidx.browser.customtabs. SDK không chứa mã networking nào và không lưu API key. Bạn truyền một checkoutUrl từ checkout session ở backend, sau đó SDK trả về một CheckoutResult có kiểu khi người dùng hoàn tất hoặc rời bỏ quy trình.
Yêu cầu: minSdk 23, Kotlin, Java 17.
Cài đặt
1
Add the Dependency
build.gradle.kts
2
Register a Callback URL Scheme
Đặt callback scheme của bạn làm Gradle manifest placeholder. Manifest riêng của thư viện
đã khai báo intent filter của redirect activity bằng token
Giá trị này phải khớp với scheme trong
${dodoCallbackScheme}, vì vậy thuộc tính này là toàn bộ phần thiết lập —
bạn không cần thêm manifest XML nào:build.gradle.kts
CheckoutParams.returnUrl (ví dụ:
myapp://checkout/return).Nếu hoàn toàn bỏ qua placeholder, quá trình build sẽ ngay lập tức thất bại với lỗi
unresolved-placeholder thay vì âm thầm thất bại tại thời điểm checkout. Nếu bạn đặt giá trị nhưng không khớp với scheme của
returnUrl, DodoCheckout.start
sẽ ném PLATFORM_ERROR trước khi hiển thị bất kỳ nội dung nào.Cách sử dụng
SDK hỗ trợ hai kiểu gọi.- Launcher (Recommended)
- Suspend Function
Đăng ký contract bằng
registerForActivityResult, sau đó khởi chạy contract:Ý nghĩa của kết quả
CheckoutStatus
bắt buộc
Một trong các giá trị
SUCCEEDED, FAILED, CANCELLED, PENDING, EXPIRED.String?
Được đặt khi return URL có chứa giá trị này. Hiển thị giá trị trong UI, không dùng giá trị này để
cấp quyền truy cập. Xem phần Verify the Payment bên dưới.
String?
Được đặt cho subscription checkout.
List<String>?
Được đặt khi checkout bao gồm các sản phẩm license key.
String?
Được đặt khi checkout thu thập email.
Map<String, String>
Mọi query parameter từ return URL, giữ nguyên văn.
Xác minh khoản thanh toán
Webhooks
Lắng nghe các sự kiện thanh toán theo thời gian thực
Get Payment Detail
Truy vấn trạng thái thanh toán theo yêu cầu
CheckoutResult.status.
Lỗi
DodoCheckout.start chỉ ném CheckoutError khi sử dụng sai hoặc nền tảng gặp sự cố. Đọc mã lỗi từ CheckoutError.code:
INVALID_CHECKOUT_URL: không phải là URL sessioncheckout.dodopayments.com.INVALID_RETURN_URL: không phải là URL tuyệt đối hợp lệ.ALREADY_IN_PROGRESS: một checkout đang chạy.PLATFORM_ERROR: nền tảng gặp sự cố không mong đợi, bao gồmreturnUrlcó scheme không khớp với placeholderdodoCallbackSchemecủa bạn.
CANCELLED hoặc
FAILED), không bao giờ là lỗi được ném ra. Với kiểu launcher, lỗi xác thực
sẽ được ném ra từ launcher.launch(...).
Session bị bỏ dở
Nếu ứng dụng bị tắt hoặc người dùng buộc dừng ứng dụng trong lúc checkout, SDK sẽ lưu session cục bộ. Trong lần khởi chạy ứng dụng tiếp theo, hãy kiểm tra session bị bỏ dở và đối soát session đó với backend của bạn:abandoned.createdAt là timestamp epoch tính bằng mili giây.
Liên quan
Mobile Integration Guide
Các phương pháp tốt nhất cho quy trình checkout trên thiết bị di động
Kotlin SDK
Backend SDK cho các thao tác phía máy chủ