これは公式のDodo Payments React NativeチェックアウトSDKで、
@dodopayments/react-native-checkoutです。Dodoのホスト型チェックアウトをネイティブブラウザビューで開き、型付きの結果を返します。注: dodopayments-react-native-sdk(スコープなし)という、APIがまったく異なる古い無関係なパッケージが存在します。このページでは、現在の公式スコープ付きパッケージのみを説明します。Checkout Sessions API
バックエンドから、このSDKが開くcheckout_urlを作成します。
Mobile Integration Guide
モバイル決済フロー全体の中での位置付けを確認します。
SFSafariViewControllerを、AndroidではChrome Custom Tabを開き、API keyを保持せず、Dodo APIを直接呼び出すこともありません。すべてのチェックアウトロジックはブラウザー内で実行され、SDKはビューのライフサイクルを管理し、戻りURLを取得するだけです。
インストール
1
Install the Package
- Android
- iOS
- Expo
パッケージは自動リンクされ、Mavenから追加の設定は不要です。ネイティブ依存関係は自動的に解決されます。
com.dodopayments.api:checkout-androidを取得します。2
Register a Callback URL Scheme
アプリでチェックアウトからの戻りURLを受け取るには、URLスキームを登録する必要があります。
- Android (Gradle)
- iOS (Info.plist)
- Expo (both platforms)
android/app/build.gradleで:android/app/build.gradle
"myapp"をアプリのスキームに置き換えます。使用方法
戻りURLの転送
Linkingリスナーは、iOSでの戻りURL処理に必要です。Androidでは、handleOpenURLはfalseを解決するだけのno-opです。Androidコアがリダイレクトをネイティブに処理するためです。両プラットフォームでリスナーを無条件に登録しても安全です。
結果の意味
CheckoutStatus
必須
succeeded、failed、cancelled、pending、expiredのいずれか。string
戻りURLにその値が含まれていた場合に設定されます。UIに表示しますが、アクセス許可には使用しないでください。下記の「支払いの検証」を参照してください。
string
サブスクリプションのチェックアウトで設定されます。
string[]
チェックアウトにlicense key商品が含まれている場合に設定されます。
string
チェックアウトでメールアドレスを取得した場合に設定されます。
Record<string, string>
戻りURLに含まれるすべてのquery parameterを、そのまま保持します。
支払いの検証
Webhooks
支払いが成功したとき、またはサブスクリプションが有効化されたとき、Dodo Paymentsはバックエンドを呼び出します。
Get Payment Detail
secret keyを使用して
paymentIdを検索し、ステータスを直接確認します。result.statusだけを根拠にしてはいけません。
エラー
startは、誤用またはプラットフォーム障害の場合にのみCheckoutErrorでrejectします。キャンセルまたはdeclinedとなった支払いは常に結果として返され、例外にはなりません。
INVALID_CHECKOUT_URL:checkout.dodopayments.comのsession URLではありません。INVALID_RETURN_URL: 有効なabsolute URLではありません。ALREADY_IN_PROGRESS: チェックアウトはすでに実行中です。PLATFORM_ERROR: 予期しないプラットフォーム障害です。
放棄されたセッション
チェックアウトの途中でアプリまたはJS bundleが終了すると、promiseは失われますが、ネイティブ層はセッションを保持します。次回のmount時に復元し、バックエンドと照合してください。関連情報
Mobile Integration Guide
Android、iOS、Flutterで共通のコントラクトです。
Expo Boilerplate
チェックアウト統合を含む完全なExpoの例です。