用途:指导在原生与跨平台移动应用中集成 Dodo Payments 托管结账,通过安全系统浏览器上下文完成支付。
核心原则:后端创建、移动端打开。后端用 client.checkoutSessions.create(...) 创建会话并返回 checkout_url;移动端用平台 SDK 打开该 URL;API 密钥绝不能写入应用二进制。移动 SDK 返回结果仅供参考,必须通过 webhook 或 API 在服务端确认支付后再授予权限。
主要能力:React Native 使用 @dodopayments/react-native-checkout(Turbo Module),Expo 需在 app.json 注册 scheme 插件,启动时用 Linking.addEventListener 转发 URL,Android 要求 minSdk 24;Flutter 使用 dodopayments_checkout,通过 DodoCheckout.instance 启动,iOS 需转发深链,Android 在 build.gradle.kts 设置 dodoCallbackScheme;iOS 原生用 SFSafariViewController,Android 原生用 Chrome Custom Tabs,并各自注册自定义 URL scheme 与 intent filter。
结果状态需处理五种:succeeded、failed、cancelled、pending、expired。React Native 可用 DodoCheckout.getAbandonedSession() 恢复被中断的会话。
限制:iOS 上销售数字内容、订阅等类别须遵循 App Store 指南使用应用内购买,可能需配合 StoreKit 2;未注册 URL scheme 会导致回调收不到、结账看似卡住。具体收费与价格资料未提供。