Skip to main content
これは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/Runner/Info.plistにスキーム用のURL型を追加します。
ios/Runner/Info.plist
次に、受信したURLを(例: app_links経由で)SDKに転送します。 SFSafariViewControllerは自身の戻りURLを捕捉できないためです。
ここではすべてのURLを安全に転送できます。handleOpenURLは、登録済みのreturnUrlに一致するURLに対してのみ動作し、それ以外の場合はfalseを解決します。

使用方法

結果の意味

result.statusはUI上のヒントであり、支払いの証明ではありません。すべての支払いを、payment.succeeded / subscription.active webhookを介してバックエンドから確認してください。
CheckoutStatus
必須
succeededfailedcancelledpendingexpiredのいずれかです。
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だけを根拠にしてはいけません。

エラー

startCheckoutExceptionをスローするのは、誤った使用またはプラットフォーム障害の場合のみです。 キャンセルまたは拒否された支払いは、常に結果として返され、例外にはなりません。
  • invalidCheckoutUrlINVALID_CHECKOUT_URL):checkout.dodopayments.comのセッションURLではありません。
  • invalidReturnUrlINVALID_RETURN_URL):有効なabsolute URLではありません。
  • alreadyInProgressALREADY_IN_PROGRESS):チェックアウトがすでに実行中です。
  • platformErrorPLATFORM_ERROR):予期しないプラットフォーム障害です。

放棄されたセッション

アプリがチェックアウトの途中で終了した場合は、次回起動時にセッションを復元し、バックエンドと照合してください。

関連情報

Mobile Integration Guide

Android、iOS、React Nativeで共通する同じ仕様です。

Community Projects

コミュニティが開発した別のFlutterパッケージもあります。
最終更新日 2026年7月31日