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だけを根拠にしてはいけません。

外観のカスタマイズ

customization を使用して、CheckoutParams 上で checkout ブラウザのツールバー、ボタン、配色をカスタマイズできます。オプションはプラットフォームごとにグループ化されています。これは、Android の Custom Tab と iOS の SFSafariViewController で利用できるネイティブコントロールが異なるためです。すべてのフィールドはオプションです。customization を省略すると、各プラットフォームのデフォルトの外観が使用されます。
Color?
ツールバーの背景色。
Color?
ナビゲーションバーの色。
Color?
ナビゲーションバーの上に表示される区切り線の色。
CloseButtonStyle
standard はシステムの「X」アイコンを表示し、back は代わりに戻る矢印を描画します。
CloseButtonPosition
ツールバーの閉じるボタンを表示する側。
bool
ツールバーの共有アイコンを表示します。
bool
ツールバーで URL の下にページタイトルを表示します。
bool
ページのスクロールに合わせてツールバーを自動的に非表示にできます。
bool
オーバーフローメニューに「このページをブックマーク」を表示します。
bool
オーバーフローメニューに「ページをダウンロード」を表示します。
BrowserColorScheme
デバイスのシステム設定にかかわらず、ライトまたはダークの外観を強制します。
DismissButtonStyle
閉じるボタンのラベルまたはアイコン。
PresentationStyle
pageSheet はスワイプして閉じるカードとして表示され、fullScreen は画面全体を覆います。
bool
スクロール時にツールバーを折りたためるようにします。presentationStylefullScreen の場合にのみ表示されます。pageSheet では、この設定にかかわらずバーが固定されたままになります。
BrowserColorScheme
デバイスのシステム設定にかかわらず、ライトまたはダークの外観を強制します。

エラー

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

放棄されたセッション

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

関連項目

Mobile Integration Guide

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

Community Projects

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