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だけに依存しないでください。

エラー

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

放棄されたセッション

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

関連情報

Mobile Integration Guide

モバイルチェックアウトフローのベストプラクティス

Kotlin SDK

サーバーサイド操作用のBackend SDK
最終更新日 2026年7月31日