これはpub.dev上の公式Dodo Payments Flutterパッケージです(
dodopayments_checkout)。別途、コミュニティが開発したパッケージもあります。詳しくは
Community Projectsをご覧ください。Checkout Sessions API
バックエンドから、このSDKが開くcheckout_urlを作成します。
Mobile Integration Guide
完全なモバイル決済フローにおける位置付けをご確認ください。
dodopayments_checkoutは、iOSでは
SFSafariViewController、AndroidではChrome Custom TabでDodoのホスト型チェックアウトを開きます。これは、スタンドアロンのiOSおよび
Android SDKで使用されるものと同じ
ネイティブコアです。すべてのチェックアウトロジックはこれらの
ネイティブコアにあり、Dartレイヤーは型付きの
Pigeonチャネルを介して呼び出しを転送します。APIキーは保持せず、Dodo Payments APIを呼び出すこともありません。
Flutter 3.44+ / Dart 3.12+、iOS 16+、およびAndroid minSdk 23が必要です。
インストール
1
Add the Dependency
pubspec.yaml
2
Register a Callback URL Scheme
- iOS
- Android
ios/Runner/Info.plistにスキーム用のURL型を追加します。ios/Runner/Info.plist
app_links経由で)SDKに転送します。
SFSafariViewControllerは自身の戻りURLを捕捉できないためです。ここではすべてのURLを安全に転送できます。
handleOpenURLは、登録済みのreturnUrlに一致するURLに対してのみ動作し、それ以外の場合はfalseを解決します。使用方法
結果の意味
CheckoutStatus
必須
succeeded、failed、cancelled、pending、expiredのいずれかです。String?
戻りURLに含まれている場合に設定されます。これをUIに表示しますが、アクセスの付与には使用しないでください。詳しくは以下の「支払いの検証」をご覧ください。
String?
サブスクリプションのチェックアウトで設定されます。
List<String>?
チェックアウトにlicense key商品が含まれている場合に設定されます。
String?
チェックアウトでメールアドレスを取得する場合に設定されます。
Map<String, String>
戻りURLに含まれるすべてのquery parameterを、そのまま保持します。
支払いの検証
Webhooks
支払いが成功したとき、またはサブスクリプションが有効化されたとき、Dodo Paymentsはバックエンドを呼び出します。
Get Payment Detail
paymentIdをsecret keyで検索し、ステータスを直接確認します。result.statusだけを根拠にしてはいけません。
エラー
startがCheckoutExceptionをスローするのは、誤った使用またはプラットフォーム障害の場合のみです。
キャンセルまたは拒否された支払いは、常に結果として返され、例外にはなりません。
invalidCheckoutUrl(INVALID_CHECKOUT_URL):checkout.dodopayments.comのセッションURLではありません。invalidReturnUrl(INVALID_RETURN_URL):有効なabsolute URLではありません。alreadyInProgress(ALREADY_IN_PROGRESS):チェックアウトがすでに実行中です。platformError(PLATFORM_ERROR):予期しないプラットフォーム障害です。
放棄されたセッション
アプリがチェックアウトの途中で終了した場合は、次回起動時にセッションを復元し、バックエンドと照合してください。
関連情報
Mobile Integration Guide
Android、iOS、React Nativeで共通する同じ仕様です。
Community Projects
コミュニティが開発した別のFlutterパッケージもあります。