Skip to main content
これは、Dodoのホスト型チェックアウトを開くための公式AndroidチェックアウトSDK(com.dodopayments.api:checkout-android)です。 サーバーからDodo Payments APIを呼び出すbackend Kotlin SDKとは異なります。

Checkout Sessions API

このSDKが開くcheckout_urlを作成する

Mobile Integration Guide

モバイルチェックアウトフローのベストプラクティス
Android SDKは、androidx.browser.customtabsを使用して、Dodoのホスト型チェックアウトをChrome Custom Tabで開きます。ネットワークコードは一切含まず、API keyも保持しません。バックエンドのcheckout sessionからcheckoutUrlを渡すと、ユーザーがフローを完了または中止したときに、SDKは型付きのCheckoutResultを返します。 要件: minSdk 23、Kotlin、Java 17。

インストール

1

Add the Dependency

build.gradle.kts
2

Register a Callback URL Scheme

コールバックスキームをGradle manifest placeholderとして設定します。ライブラリ独自の manifestでは、すでにリダイレクトアクティビティのintent filterが ${dodoCallbackScheme}トークンを使って宣言されています。そのため、この1つのプロパティだけで設定は完了します。 manifest XMLを追加する必要はありません。
build.gradle.kts
値はCheckoutParams.returnUrl内のスキーム(例: myapp://checkout/return)と一致する必要があります。
placeholderを完全に省略すると、チェックアウト時に何も起こらず失敗するのではなく、 unresolved-placeholderエラーですぐにビルドが失敗します。設定した値がreturnUrlのスキームと一致しない場合、DodoCheckout.startは何も表示する前にPLATFORM_ERRORをスローします。

使用方法

SDKは2種類の呼び出し方法に対応しています。

結果の意味

statusフィールドはUI上のヒントであり、支払いの証明ではありません。アクセスを許可する前に、必ずwebhooksまたはGet Payment Detail endpointを使用してバックエンドで支払いを検証してください。
CheckoutStatus
必須
SUCCEEDEDFAILEDCANCELLEDPENDINGEXPIREDのいずれか1つ。
String?
return URLに含まれている場合に設定されます。UIに表示しますが、アクセスの許可には使用しないでください。下記の「支払いの検証」を参照してください。
String?
subscription checkoutの場合に設定されます。
List<String>?
チェックアウトにlicense key productsが含まれている場合に設定されます。
String?
チェックアウトでemailを取得した場合に設定されます。
Map<String, String>
return URLのすべてのquery parameterを、そのまま保持します。

支払いの検証

Webhooks

支払いイベントをリアルタイムでリッスンする

Get Payment Detail

必要に応じて支払いステータスをクエリする
これらのいずれかによって支払いが確認された後にのみ、ユーザーにアクセスを許可してください。CheckoutResult.statusだけに依存しないでください。

外観のカスタマイズ

CheckoutParams 上で customization を使用して、Custom Tab のツールバー、ボタン、配色をカスタマイズできます。すべてのフィールドは任意です。customization を省略すると、Android のデフォルトの Custom Tab 外観が使用されます。
Int?
ツールバーの背景色を ARGB Color int として指定します。
Int?
ナビゲーションバーの色です。
Int?
ナビゲーションバーの上に表示する区切り線の色です。
CloseButtonStyle
DEFAULT はシステムの「X」アイコンを表示し、BACK は代わりに戻る矢印を描画します。
CloseButtonPosition
ツールバーの閉じるボタンを表示する側を指定します。START または END です。
Boolean
ツールバーの共有アイコンを表示します。
Boolean
ツールバーで URL の下にページタイトルを表示します。
Boolean
ページのスクロールに合わせてツールバーを自動的に非表示にします。
Boolean
オーバーフローメニューに「このページをブックマーク」を表示します。
Boolean
オーバーフローメニューに「ページをダウンロード」を表示します。
ColorScheme
デバイスのシステム設定に関係なく、明るい外観または暗い外観を強制します。指定できる値は SYSTEMLIGHT、または DARK です。

エラー

DodoCheckout.start は、誤った使用またはプラットフォームの障害が発生した場合にのみ CheckoutError をスローします。CheckoutError.code からコードを読み取ります。
  • INVALID_CHECKOUT_URL: checkout.dodopayments.com セッション URL ではありません。
  • INVALID_RETURN_URL: 有効な絶対 URL ではありません。
  • ALREADY_IN_PROGRESS: checkout はすでに実行中です。
  • PLATFORM_ERROR: dodoCallbackScheme プレースホルダーとスキームが一致しない returnUrl など、予期しないプラットフォーム障害です。
ユーザーによるキャンセルや支払いの拒否は、常に結果(CANCELLED または FAILED)として返され、スローされるエラーにはなりません。launcher スタイルでは、検証エラーは launcher.launch(...) の外部にスローされます。

放棄されたセッション

checkout 中にアプリが終了したり、ユーザーがアプリを強制停止したりすると、SDK はセッションをローカルに保存します。次回アプリを起動したときに、放棄されたセッションがないか確認し、バックエンドと照合してください。
abandoned.createdAt は、ミリ秒単位のエポックタイムスタンプです。

関連情報

Mobile Integration Guide

モバイル checkout フローのベストプラクティス

Kotlin SDK

サーバー側の操作に使用する Backend SDK
最終更新日 2026年8月17日