概要
Inline checkout を使用すると、ウェブサイトやアプリケーションとシームレスに統合された、完全なチェックアウト体験を作成できます。ページ上にモーダルとして開く overlay checkout とは異なり、inline checkout は決済フォームをページレイアウトに直接埋め込みます。 Inline checkout を使用すると、次のことができます。- アプリやウェブサイトに完全に統合されたチェックアウト体験を作成する
- Dodo Payments が最適化されたチェックアウトフレーム内で顧客情報と決済情報を安全に取得できるようにする
- ページ上に Dodo Payments の商品、合計金額、その他の情報を表示する
- SDK のメソッドとイベントを使用して高度なチェックアウト体験を構築する

仕組み
Inline checkout は、安全な Dodo Payments フレームをウェブサイトやアプリに埋め込むことで機能します。 チェックアウトフレームは、顧客情報の収集と決済情報の取得を処理します。ページには商品一覧、合計金額、チェックアウト内容を変更するためのオプションが表示されます。SDK により、ページとチェックアウトフレームが相互に連携できます。 Dodo Payments は、チェックアウト完了時にサブスクリプションを自動作成します。作成後はプロビジョニングできます。優れた Inline Checkout とは
顧客が、誰から何を購入し、いくら支払うのかを把握できることが重要です。 コンプライアンスに準拠し、コンバージョンに最適化された inline checkout を構築するには、実装に次の要素を含める必要があります。
Example inline checkout layout showing required elements
- 継続課金情報: 継続課金の場合は、請求頻度と更新時の支払総額。トライアルの場合は、トライアル期間。
- 商品の説明: 購入内容の説明。
- 取引合計: 小計、税額、総合計を含む取引合計。通貨も必ず表示してください。
- Dodo Payments フッター: Dodo Payments、販売規約、プライバシーポリシーの情報を含む、フッターまで完全な inline checkout フレーム。
- 返金ポリシー: Dodo Payments の標準返金ポリシーと異なる場合は、お客様の返金ポリシーへのリンク。
顧客の利用フロー
チェックアウトフローは、checkout session の設定によって決まります。設定によっては、すべての情報が1ページに表示される場合と、複数のステップに分かれて表示される場合があります。Customer opens checkout

Customer enters their details
Customer selects payment method

Checkout completed

Dodo Payments creates subscription

クイックスタート
数行のコードで Dodo Payments Inline Checkout を始められます。ステップごとの統合ガイド
Install the SDK
Initialize the SDK for Inline Display
displayType: 'inline' を指定します。また、checkout.breakdown イベントをリッスンして、リアルタイムの税額と合計金額で UI を更新してください。Create a Container Element
Open the Checkout
checkoutUrl と elementId を指定して DodoPayments.Checkout.open() を呼び出します。Test Your Integration
- 開発サーバーを起動します。
- チェックアウトフローをテストします。
- inline frame にメールアドレスと住所を入力します。
- カスタム注文概要がリアルタイムで更新されることを確認します。
- テスト用の認証情報で決済フローをテストします。
- リダイレクトが正しく機能することを確認します。
onEvent コールバックに console log を追加している場合、ブラウザのコンソールに checkout.breakdown イベントが記録されます。Go Live
- モードを
'live'に変更します。
- checkout URL をバックエンドの本番 checkout session に更新します。
- 本番環境で完全なフローをテストします。
完全な React の例
この例では、inline checkout とともにカスタム注文概要を実装し、checkout.breakdown イベントを使用して両者を同期する方法を示します。
API リファレンス
設定
初期化オプション
Checkout オプション
メソッド
Checkout を開く
指定したコンテナに checkout frame を開きます。Checkout を閉じる
checkout frame をプログラムで削除し、event listener をクリーンアップします。ステータスを確認する
checkout frame が現在挿入されているかどうかを返します。Events
SDK はonEvent callback を通じてリアルタイムイベントを提供します。Inline checkout では、checkout.breakdown が UI の同期に特に役立ちます。
Checkout Breakdown Data
checkout.breakdown event は次のデータを提供します。
Breakdown Event の理解
checkout.breakdown event は、アプリケーションの UI を Dodo Payments checkout state と同期する主な方法です。
発生するタイミング:
- 初期化時: checkout frame が読み込まれ、準備が完了した直後。
- 住所変更時: 顧客が国を選択したとき、または税額の再計算につながる郵便番号を入力したとき。
- 通貨のフォーマット: 価格は常に最小通貨単位の整数で返されます(例: USD のセント、JPY の円)。表示するには 100(または適切な 10 の累乗)で割るか、
Intl.NumberFormatのような formatting library を使用してください。 - 初期状態の処理: checkout の初回読み込み時、ユーザーが請求先情報を入力するかコードを適用するまで、
taxとdiscountは0またはnullになる場合があります。UI でこれらの状態を適切に処理してください(例: ダッシュ—を表示する、または行を非表示にする)。 - 「Final Total」と「Total」:
totalは標準価格の計算結果ですが、取引の信頼できる値はfinalTotalです。finalTotalが存在する場合、動的な調整を含め、顧客のカードに実際に請求される金額を正確に反映します。 - リアルタイムのフィードバック:
taxfield を使用して、税がリアルタイムで計算されていることをユーザーに示します。これにより checkout page に「ライブ感」が生まれ、住所入力時の離脱を減らせます。
実装オプション
Package Manager によるインストール
Step-by-Step Integration Guide に従い、npm、yarn、または pnpm でインストールします。CDN による実装
ビルド手順なしですばやく統合するには、次の CDN を使用できます。決済方法の更新
Inline checkout は、サブスクリプションの 決済方法の更新 に対応しています。アクティブなサブスクリプションの更新や保留中のサブスクリプションの再有効化など、顧客が決済方法を更新する必要がある場合、ページレイアウト内に更新フローを直接表示できます。仕組み
- Update Payment Method API を呼び出して
payment_linkを取得します。
- 返された
payment_linkをcheckoutUrlとして渡し、inline checkout を開きます。
保留中のサブスクリプションの場合
on_hold status のサブスクリプションで決済方法を更新すると、Dodo Payments は未払い残高に対する請求を自動的に作成します。再有効化を確認するには、payment.succeeded と subscription.active webhooks を監視してください。
エラー処理
SDK は event system を通じて詳細なエラー情報を提供します。onEvent callback では、必ず適切なエラー処理を実装してください。
ベストプラクティス
- レスポンシブデザイン: コンテナ要素に十分な幅と高さを確保してください。iframe は通常、コンテナいっぱいに広がります。
- 同期:
checkout.breakdownevent を使用して、カスタム注文概要や価格表を checkout frame の表示内容と同期させます。 - スケルトン状態:
checkout.openedevent が発生するまで、コンテナにローディングインジケーターを表示します。 - クリーンアップ: コンポーネントのアンマウント時に
DodoPayments.Checkout.close()を呼び出し、iframe と event listener をクリーンアップします。
#0d0d0d を使用することをおすすめします。決済ステータスの検証
サーバー側の検証が不可欠な理由
inline checkout events はリアルタイムのフィードバックを提供しますが、決済ステータスの唯一の信頼できる情報源にしてはいけません。ネットワーク障害、ブラウザのクラッシュ、ユーザーによるページ終了などにより、イベントが失われる可能性があります。信頼性の高い決済検証を行うには、次のことを実施してください。- サーバーで webhook events をリッスンする - Dodo Payments は決済ステータスの変更時に webhooks を送信します
- polling mechanism を実装する - フロントエンドからサーバーにステータス更新を問い合わせます
- 両方の方法を組み合わせる - webhook を主な情報源とし、polling をフォールバックとして使用します
推奨アーキテクチャ
実装手順
1. checkout events をリッスンする - ユーザーが pay をクリックしたら、ステータス検証の準備を開始します。payment.succeeded または payment.failed webhooks を送信したら、データベースを更新します。詳細は Webhooks documentation を参照してください。
トラブルシューティング
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.breakdownevent をリッスンしていることを確認します。- 税額は、ユーザーが checkout frame に有効な国と郵便番号を入力した後にのみ計算されます。
Digital Wallets の有効化
Apple Pay、Google Pay、その他の digital wallets の設定について詳しくは、Digital Wallets ページを参照してください。Apple Pay のクイックセットアップ
Open Wallet domains

Open Wallet domains from the Apple Pay row
Download the domain association file

Download the Apple Pay domain association file
Register your domain
shop.example.com)を入力してから、Continue をクリックします。
Register the domain where you embed inline checkout
Host the file on your domain
Content-Type: application/octet-stream または text/plain を付けて提供してください。Verify the domain

Verify the hosted association file
Confirm it's active

Verified domains show an Active status
Test the integration
- Apple デバイスで checkout を開く
- Apple Pay ボタンが表示されることを確認する
- テスト取引を完了する
ブラウザのサポート
Dodo Payments Checkout SDK は、次のブラウザをサポートしています:- Chrome (latest)
- Firefox (latest)
- Safari (latest)
- Edge (latest)
- IE11+