Đâ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.
Tùy chỉnh giao diện
Tùy chỉnh thanh công cụ, các nút và bảng màu của Custom Tab thông quacustomization trên CheckoutParams. Tất cả các trường đều không bắt buộc; nếu bỏ qua
customization, giao diện Custom Tab mặc định của Android sẽ được sử dụng.
Int?
Màu nền của thanh công cụ, dưới dạng số nguyên ARGB
Color.Màu thanh điều hướng.
Màu đường phân cách phía trên thanh điều hướng.
CloseButtonStyle
DEFAULT hiển thị biểu tượng hệ thống “X”; BACK thay vào đó sẽ vẽ một mũi tên quay lại.CloseButtonPosition
Vị trí xuất hiện của nút đóng trên thanh công cụ:
START hoặc END.Hiển thị biểu tượng chia sẻ của thanh công cụ.
Boolean
Hiển thị tiêu đề trang bên dưới URL trong thanh công cụ.
Boolean
Cho phép thanh công cụ tự động ẩn khi cuộn trang.
Boolean
Hiển thị “Đánh dấu trang này” trong menu tràn.
Boolean
Hiển thị “Tải trang xuống” trong menu tràn.
ColorScheme
Buộc giao diện sáng hoặc tối bất kể cài đặt hệ thống của thiết bị:
SYSTEM, LIGHT hoặc DARK.Lỗi
DodoCheckout.start chỉ ném CheckoutError khi sử dụng sai hoặc xảy ra
lỗi nền tảng. Đọc mã từ CheckoutError.code:
INVALID_CHECKOUT_URL: không phải là URL phiêncheckout.dodopayments.com.INVALID_RETURN_URL: không phải là URL tuyệt đối hợp lệ.ALREADY_IN_PROGRESS: một phiên thanh toán đã đang chạy.PLATFORM_ERROR: lỗi nền tảng 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 bị ném. Với kiểu launcher, các lỗi xác thực
sẽ được ném ra khỏi launcher.launch(...).
Phiên 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 quá trình thanh toán, SDK sẽ lưu phiên cục bộ. Ở lần khởi chạy ứng dụng tiếp theo, hãy kiểm tra phiên bị bỏ dở và đối soát phiên đó với backend của bạn:abandoned.createdAt là dấu thời gian epoch tính bằng mili giây.
Liên quan
Mobile Integration Guide
Các phương pháp hay nhất cho quy trình thanh toán trên thiết bị di động
Kotlin SDK
SDK backend cho các thao tác phía máy chủ