这是官方的 Dodo Payments React Native 结账 SDK,
@dodopayments/react-native-checkout。它会在原生浏览器视图中打开 Dodo 的托管结账页面,并返回类型化结果。注意:还有一个名为 dodopayments-react-native-sdk(未使用 scope)的旧版无关 package,其 API 完全不同。本页面仅介绍当前官方的 scoped package。Checkout Sessions API
从您的 backend 创建此 SDK 要打开的 checkout_url。
Mobile Integration Guide
了解它如何融入完整的移动支付流程。
SFSafariViewController,在 Android 上打开 Chrome Custom Tab,不持有 API key,也不会直接调用 Dodo API。所有结账逻辑都在浏览器中运行;SDK 只负责管理视图生命周期并捕获 return URL。
安装
1
Install the Package
- Android
- iOS
- Expo
package 会自动链接,并从 Maven 拉取 无需其他设置;原生依赖会自动解析。
com.dodopayments.api:checkout-android。2
Register a Callback URL Scheme
您的应用必须注册 URL scheme,才能接收结账页面返回的 return URL。
- Android (Gradle)
- iOS (Info.plist)
- Expo (both platforms)
在 将
android/app/build.gradle 中:android/app/build.gradle
"myapp" 替换为您应用的 scheme。用法
转发 Return URL
Linking listener 是 iOS 处理 return URL 所必需的。在 Android 上,handleOpenURL 是一个 no-op,它会解析 false,因为 Android core 会原生处理其 redirect。在两个平台上无条件注册该 listener 是安全的。
结果含义
CheckoutStatus
必填
succeeded、failed、cancelled、pending、expired 中的一个。string
当 return URL 包含其中一项时设置。将其显示在 UI 中,不要使用它来授予访问权限。请参阅下方的“验证付款”。
string
用于 subscription checkout 时设置。
string[]
checkout 包含 license key products 时设置。
string
checkout 捕获 email 时设置。
Record<string, string>
return URL 中的每个 query parameter,均按原样保留。
验证付款
Webhooks
付款成功或 subscription 激活时,Dodo Payments 会调用你的 backend。
Get Payment Detail
使用你的 secret key 查询
paymentId,直接检查其状态。result.status。
外观自定义
通过customization 在 start(...) 上自定义结账浏览器的工具栏、按钮和配色方案。选项按平台分组,因为
Android 的 Custom Tab 和 iOS 的 SFSafariViewController 提供了不同的
原生控件。所有字段均为可选;省略 customization 将使用各
平台的默认外观。
Android — Custom Tab
Android — Custom Tab
错误
start 仅在误用或平台故障时以 CheckoutError 拒绝。已取消或被拒绝的支付始终是结果,而不是异常。
INVALID_CHECKOUT_URL:不是checkout.dodopayments.com会话 URL。INVALID_RETURN_URL:不是有效的绝对 URL。ALREADY_IN_PROGRESS:结账已在运行。PLATFORM_ERROR:意外的平台故障。
已放弃的会话
如果应用或 JS bundle 在结账过程中被终止,promise 会丢失,但原生层仍会保留会话。在下次挂载时恢复该会话,并将其与后端进行协调。相关内容
Mobile Integration Guide
适用于 Android、iOS 和 Flutter 的相同契约。
Expo Boilerplate
包含结账集成的完整 Expo 示例。