Đây là React Native checkout SDK chính thức của Dodo Payments,
@dodopayments/react-native-checkout. SDK mở hosted checkout của Dodo trong một chế độ xem trình duyệt native và trả về một kết quả có kiểu. Lưu ý: có một package cũ, không liên quan tên là dodopayments-react-native-sdk (không có scope) với API hoàn toàn khác. Trang này chỉ mô tả package chính thức hiện tại có scope.Checkout Sessions API
Tạo checkout_url mà SDK này sẽ mở từ backend của bạn.
Mobile Integration Guide
Xem cách tích hợp bước này vào toàn bộ quy trình thanh toán trên thiết bị di động.
SFSafariViewController trên iOS và Chrome Custom Tab trên Android, không chứa API key và không bao giờ gọi trực tiếp Dodo API. Toàn bộ logic checkout chạy trong trình duyệt; SDK chỉ quản lý vòng đời của view và lấy return URL.
Cài đặt
1
Install the Package
- Android
- iOS
- Expo
Package được autolink và kéo Không cần thiết lập bổ sung; dependency native được tự động phân giải.
com.dodopayments.api:checkout-android từ Maven.2
Register a Callback URL Scheme
Ứng dụng của bạn phải đăng ký một URL scheme để nhận return URL từ checkout.
- Android (Gradle)
- iOS (Info.plist)
- Expo (both platforms)
Trong Thay
android/app/build.gradle:android/app/build.gradle
"myapp" bằng scheme của ứng dụng.Cách sử dụng
Chuyển tiếp Return URL
ListenerLinking là bắt buộc để xử lý return URL trên iOS. Trên Android, handleOpenURL không thực hiện thao tác nào và resolve false vì Android core xử lý redirect một cách native. Bạn có thể đăng ký listener này vô điều kiện trên cả hai nền tảng.
Ý nghĩa của Result
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 Xác minh Payment bên dưới.
string
Được đặt cho subscription checkout.
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.
Record<string, string>
Mọi query parameter từ return URL, giữ nguyên văn.
Xác minh Payment
Webhooks
Dodo Payments gọi backend của bạn khi payment thành công hoặc subscription được kích hoạt.
Get Payment Detail
Tra cứu
paymentId bằng secret key của bạn để kiểm tra trực tiếp trạng thái.result.status.
Lỗi
start từ chối với một CheckoutError chỉ khi sử dụng sai hoặc nền tảng gặp lỗi. Payment bị hủy hoặc bị từ chối luôn được trả về dưới dạng result, không phải exception.
INVALID_CHECKOUT_URL: không phải session URL củacheckout.dodopayments.com.INVALID_RETURN_URL: không phải absolute URL hợp lệ.ALREADY_IN_PROGRESS: checkout đang chạy.PLATFORM_ERROR: lỗi nền tảng không mong đợi.
Session bị bỏ dở
Nếu ứng dụng hoặc JS bundle bị dừng giữa chừng trong quá trình checkout, promise sẽ bị mất nhưng native layer vẫn giữ session. Khôi phục session ở lần mount tiếp theo và đối soát với backend của bạn.Liên quan
Mobile Integration Guide
Cùng một contract cho Android, iOS và Flutter.
Expo Boilerplate
Ví dụ Expo hoàn chỉnh với tích hợp checkout.