概要
インラインチェックアウトを使用すると、ウェブサイトやアプリケーションにシームレスに統合されたチェックアウト体験を作成できます。オーバーレイチェックアウトとは異なり、インラインチェックアウトは支払いフォームをページレイアウトに直接埋め込みます。 インラインチェックアウトを使用すると、次のことができます:- アプリやウェブサイトと完全に統合されたチェックアウト体験を作成する
- Dodo Paymentsが顧客と支払い情報を安全にキャプチャする最適化されたチェックアウトフレームを提供する
- Dodo Paymentsからのアイテム、合計、その他の情報をページに表示する
- SDKメソッドとイベントを使用して高度なチェックアウト体験を構築する

仕組み
インラインチェックアウトは、ウェブサイトやアプリに安全なDodo Paymentsフレームを埋め込むことで機能します。 チェックアウトフレームは、顧客情報の収集と支払い詳細のキャプチャを処理します。あなたのページには、アイテムリスト、合計、チェックアウトの内容を変更するためのオプションが表示されます。SDKを使用すると、ページとチェックアウトフレームが相互にやり取りできます。 Dodo Paymentsは、チェックアウトが完了すると自動的にサブスクリプションを作成し、あなたがプロビジョニングできるようにします。インラインチェックアウトフレームは、すべての機密支払い情報を安全に処理し、追加の認証なしでPCI準拠を確保します。
良いインラインチェックアウトとは?
顧客が誰から購入しているのか、何を購入しているのか、いくら支払っているのかを知ることが重要です。 コンプライアンスがあり、コンバージョンに最適化されたインラインチェックアウトを構築するには、実装に次の要素を含める必要があります:
- 定期情報:定期的な場合、どのくらいの頻度で繰り返されるかと更新時の合計金額。トライアルの場合、トライアルの期間。
- アイテムの説明:購入されるものの説明。
- 取引合計:小計、総税、合計金額を含む取引合計。通貨も含めることを忘れないでください。
- Dodo Paymentsのフッター:Dodo Paymentsに関する情報、販売条件、プライバシーポリシーを含む完全なインラインチェックアウトフレーム。
- 返金ポリシー:Dodo Paymentsの標準返金ポリシーと異なる場合は、返金ポリシーへのリンク。
顧客の旅
チェックアウトフローは、チェックアウトセッションの設定によって決まります。チェックアウトセッションをどのように設定するかによって、顧客はすべての情報が1ページに表示されるか、複数のステップに分かれるチェックアウトを体験します。Customer opens checkout
アイテムまたは既存のトランザクションを渡すことでインラインチェックアウトを開くことができます。SDKを使用してページ上の情報を表示および更新し、顧客のインタラクションに基づいてアイテムを更新するためのSDKメソッドを使用します。

Customer enters their details
インラインチェックアウトは、最初に顧客にメールアドレスを入力し、国を選択し、(必要に応じて)郵便番号を入力するように求めます。このステップでは、税金と利用可能な支払いオプションを決定するために必要なすべての情報を収集します。顧客の詳細を事前に入力し、保存された住所を提示して体験をスムーズにすることができます。
Customer selects payment method
詳細を入力した後、顧客には利用可能な支払い方法と支払いフォームが表示されます。オプションには、クレジットカードまたはデビットカード、PayPal、Apple Pay、Google Pay、そして顧客の所在地に基づくその他のローカル支払い方法が含まれる場合があります。利用可能な場合は、保存された支払い方法を表示してチェックアウトを迅速化します。

Checkout completed
Dodo Paymentsは、すべての支払いをその販売に最適なアクワイアラーにルーティングし、成功の可能性を最大限に高めます。顧客は、あなたが構築できる成功ワークフローに入ります。

クイックスタート
Dodo Paymentsのインラインチェックアウトを数行のコードで始めましょう:ステップバイステップの統合ガイド
Initialize the SDK for Inline Display
SDK を初期化し、
displayType: 'inline' を指定します。また、checkout.breakdown イベントを監視して、リアルタイムの税金および合計計算で UI を更新してください。Test Your Integration
- 開発サーバーを起動します:
- チェックアウトフローをテストします:
- インラインフレームにメールアドレスと住所の詳細を入力します。
- カスタム注文概要がリアルタイムで更新されることを確認します。
- テスト資格情報を使用して支払いフローをテストします。
- リダイレクトが正しく機能することを確認します。
checkout.breakdown イベントが onEvent コールバック内に console log を追加していればブラウザのコンソールに記録されるのが確認できます。完全なReactの例
この例では、checkout.breakdown イベントを使用してインラインチェックアウトと連携しながら、カスタム注文概要を同期させる方法を示しています。
APIリファレンス
設定
初期化オプション
| オプション | タイプ | 必須 | 説明 |
|---|---|---|---|
mode | "test" | "live" | Yes | 環境モード。 |
displayType | "inline" | "overlay" | Yes | チェックアウトを埋め込むには "inline" に設定する必要があります。 |
onEvent | function | Yes | チェックアウトイベントを処理するコールバック関数。 |
チェックアウトオプション
| オプション | タイプ | 必須 | 説明 |
|---|---|---|---|
checkoutUrl | string | はい | チェックアウトセッションの URL。 |
elementId | string | はい | チェックアウトを表示する DOM 要素の id。 |
options.showTimer | boolean | いいえ | チェックアウトタイマーを表示または非表示にします。デフォルトは true です。無効にするとセッションの有効期限切れを告げる checkout.link_expired イベントを受信します。 |
options.showSecurityBadge | boolean | いいえ | セキュリティバッジを表示または非表示にします。デフォルトは true です。 |
options.manualRedirect | boolean | いいえ | 有効にすると、完了後にチェックアウトが自動的にリダイレクトされません。代わりに checkout.status と checkout.redirect_requested イベントを受信して、自分でリダイレクトを処理できます。 |
options.payButtonText | string | いいえ | 支払いボタンに表示するカスタムテキスト。 |
options.fontSize | FontSize | いいえ | チェックアウトのグローバルフォントサイズ。 |
options.fontWeight | FontWeight | いいえ | チェックアウトのグローバルフォントウェイト。 |
メソッド
チェックアウトを開く
指定されたコンテナにチェックアウトフレームを開きます。manualRedirect を使用する場合は onEvent コールバック内でチェックアウト完了を処理してください:
チェックアウトを閉じる
プログラムでチェックアウトフレームを削除し、イベントリスナーをクリーンアップします。ステータスを確認
チェックアウトフレームが現在注入されているかどうかを返します。イベント
SDK はonEvent コールバックを通じてリアルタイムイベントを提供します。インラインチェックアウトでは、checkout.breakdown が UI を同期させる上で特に役立ちます。
| イベントタイプ | 説明 |
|---|---|
checkout.opened | チェックアウトフレームが読み込まれました。 |
checkout.form_ready | チェックアウトフォームがユーザー入力に対応する準備完了。読み込み状態を隠してチェックアウト UI を表示するのに便利です。 |
checkout.breakdown | 価格、税金、割引が更新されたときに発火します。 |
checkout.customer_details_submitted | 顧客情報が送信されました。 |
checkout.pay_button_clicked | 顧客が支払ボタンをクリックしたときに発火。分析やコンバージョンファネルの追跡に便利です。 |
checkout.redirect | チェックアウトがリダイレクトを行います(例:銀行ページ)。 |
checkout.error | チェックアウト中にエラーが発生しました。 |
checkout.link_expired | チェックアウトセッションが期限切れになったときに発火。showTimer を false に設定した場合のみ受信します。 |
checkout.status | manualRedirect が有効なときに発火。チェックアウトのステータス(succeeded、failed、または processing)を含みます。 |
checkout.redirect_requested | manualRedirect が有効なときに発火。顧客をリダイレクトする URL を含みます。 |
チェックアウトの内訳データ
checkout.breakdown イベントは以下のデータを提供します:
チェックアウトステータスイベントデータ
manualRedirect が有効な場合、次のデータを伴う checkout.status イベントを受け取ります:
チェックアウトリダイレクト要求イベントデータ
manualRedirect が有効な場合、次のデータを伴う checkout.redirect_requested イベントを受け取ります:
checkout.breakdown イベントは、アプリケーションの UI を Dodo Payments のチェックアウト状態と同期させる主要な方法です。
内訳イベントの理解
Thecheckout.breakdown event is the primary way to keep your application’s UI in sync with the Dodo Payments checkout state.
発火するタイミング:
- 初期化時: チェックアウトフレームが読み込まれ、準備が整った直後。
- 住所変更時: 顧客が国を選択したり、税金の再計算を引き起こす郵便番号を入力したとき。
| フィールド | 説明 |
|---|---|
subTotal | 割引や税金を適用する前のすべての行項目の合計金額。 |
discount | 適用されたすべての割引の合計金額。 |
tax | 計算された税額。inline モードでは、ユーザーが住所フィールドと対話するたびに動的に更新されます。 |
total | セッションの基準通貨での subTotal - discount + tax の計算結果。 |
currency | 標準の小計、割引、税額に使用される ISO 通貨コード(例: "USD")。 |
finalTotal | 顧客に請求される実際の金額。基本価格内訳に含まれない為替調整やローカル決済手数料が含まれる場合があります。 |
finalTotalCurrency | 顧客が実際に支払う通貨。購買力平価やローカル通貨換算が有効な場合、currency と異なることがあります。 |
- 通貨フォーマット: 価格は常に最小通貨単位(例: USD はセント、JPY は円)で整数として返されます。表示するには100(または適切な10の累乗)で割るか、
Intl.NumberFormatのようなフォーマットライブラリを使用してください。 - 初期状態の処理: チェックアウト最初の読み込み時、
taxおよびdiscountは、ユーザーが請求情報を入力するかコードを適用するまで0またはnullになる可能性があります。UI ではこれらの状態を適切に処理してください(例: ダッシュ—を表示するか行を非表示にするなど)。 - 「Final Total」と「Total」:
totalは標準的な価格計算を示しますが、finalTotalが取引の真実のソースです。finalTotalが存在する場合、動的調整を含めて顧客のカードに請求される金額を正確に反映します。 - リアルタイムフィードバック:
taxフィールドを使用して税金がリアルタイムで計算されていることをユーザーに示してください。これによりチェックアウトページに「ライブ」感が生まれ、住所入力時の摩擦が軽減されます。
実装オプション
パッケージマネージャーのインストール
npm、yarn、またはpnpmを使用して、ステップバイステップの統合ガイドに示されているようにインストールします。CDN実装
ビルドステップなしで迅速に統合するには、CDNを使用できます:支払い方法の更新
インラインチェックアウトでは、サブスクリプションの支払い方法更新に対応しています。顧客がアクティブなサブスクリプションの支払い情報を更新する場合や保留中のサブスクリプションを再開する場合でも、ページレイアウト内に更新フローを直接表示できます。仕組み
- 支払い方法更新 API を呼び出して
payment_linkを取得します:
- 返却された
payment_linkをcheckoutUrlとして渡し、インラインチェックアウトを開きます:
保留中サブスクリプションの場合
on_hold 状態のサブスクリプションの支払い方法を更新する際、Dodo Payments は残りの未払い分に対して自動的に課金を行います。再開を確認するには payment.succeeded および subscription.active のウェブフックを監視してください。
エラー処理
SDK はイベントシステムを通じて詳細なエラー情報を提供します。常にonEvent コールバックで適切なエラー処理を実装してください:
ベストプラクティス
- レスポンシブデザイン: コンテナ要素に十分な幅と高さがあることを確認してください。iframe は通常、コンテナ全体を占めるように拡張されます。
- 同期:
checkout.breakdownイベントを使用して、独自の注文概要や価格表をチェックアウトフレーム内の表示と同期させます。 - スケルトン状態:
checkout.openedイベントが発火するまで、コンテナ内に読み込みインジケーターを表示してください。 - クリーンアップ: コンポーネントがアンマウントされるときに
DodoPayments.Checkout.close()を呼び出し、iframe とイベントリスナーを整理してください。
ダークモード実装では、
#0d0d0d を背景色として使用すると、インラインチェックアウトフレームと視覚的に統合しやすくなります。支払いステータスの検証
なぜサーバー側の検証が不可欠なのか
checkout.status のようなインラインチェックアウトイベントはリアルタイムのフィードバックを提供しますが、支払いステータスの唯一の情報源にすべきではありません。ネットワーク障害、ブラウザのクラッシュ、ユーザーがページを閉じるなどの理由でイベントが失われることがあります。信頼性の高い支払い検証を確実に行うには次のことを行ってください:
- サーバーはウェブフックイベントをリッスンするべきです - Dodo Payments は支払いステータスの変化に関するウェブフックを送信します
- ポーリング機構を実装する - フロントエンドはステータス更新のためにサーバーをポーリングするべきです
- 両方のアプローチを組み合わせる - ウェブフックを主な情報源とし、ポーリングをフォールバックとして使用します
推奨アーキテクチャ
実装ステップ
1. チェックアウトイベントをリッスンする - ユーザーが支払いをクリックしたら、ステータスを検証する準備を開始します:payment.succeeded または payment.failed のウェブフックを送信したときにデータベースを更新します。詳細は Webhooks documentation を参照してください。
リダイレクトの処理(3DS、Google Pay、UPI)
manualRedirect: true を使用している場合、特定の支払い方法では認証のためにユーザーをページからリダイレクトする必要があります:
- 3Dセキュア(3DS) - カード認証
- Google Pay - 一部のフローでウォレット認証
- UPI - インドの支払い方法リダイレクト
checkout.redirect_requested イベントを受信します。提供された URL にユーザーをリダイレクトしてください:
- ユーザーがリダイレクトから戻ってきたか(例:
sessionStorageを介して)確認する - サーバーに対して支払いステータスを確認するポーリングを開始する
- ポーリング中に「支払いを検証中…」状態を表示する
- サーバーで確認されたステータスに基づいて成功/失敗の UI を表示する
トラブルシューティング
Checkout frame is not appearing
Checkout frame is not appearing
elementIdが実際に DOM に存在するdivのidと一致していることを確認してください。displayType: 'inline'がInitializeに渡されていることを確認してください。checkoutUrlが有効であることを確認してください。
Taxes are not updating in my UI
Taxes are not updating in my UI
checkout.breakdownイベントをリッスンしていることを確認してください。- 税金は、ユーザーがチェックアウトフレーム内で有効な国と郵便番号を入力した後にのみ計算されます。
デジタルウォレットの有効化
Apple Pay、Google Pay、その他のデジタルウォレットの設定方法の詳細については、「Digital Wallets」 ページをご覧ください。Apple Pay のクイックセットアップ
Download domain association file
Apple Pay ドメイン連携ファイル をダウンロードしてください。
Request activation
本番ドメインの URL を明記し、Apple Pay の有効化を依頼するメールを support@dodopayments.com に送信してください。
ブラウザサポート
Dodo Payments Checkout SDK は以下のブラウザをサポートしています:- Chrome(最新)
- Firefox(最新)
- Safari(最新)
- Edge(最新)
- IE11+
インラインとオーバーレイのチェックアウト
ユースケースに応じて適切なチェックアウトタイプを選択してください:| 機能 | インラインチェックアウト | オーバーレイチェックアウト |
|---|---|---|
| 統合の深さ | ページに完全に埋め込まれる | ページ上に表示されるモーダル |
| レイアウト制御 | 完全に制御可能 | 制限あり |
| ブランディング | シームレス | ページと分離 |
| 実装の手間 | 高い | 低い |
| 適した用途 | カスタムチェックアウトページやコンバージョン重視のフロー | 既存ページへの迅速な統合 |
関連資料
Overlay Checkout
オーバーレイチェックアウトを使用して、モーダルベースの統合を迅速に行います。
Checkout Sessions API
チェックアウトセッションを作成してチェックアウト体験を実現します。
Webhooks
ウェブフックを使って支払いイベントをサーバー側で処理します。
Integration Guide
Dodo Payments の統合に関する完全ガイド。
