Skip to main content
Inline checkoutは、安全な決済フォームをページレイアウトに直接埋め込みます。モーダルとして開くoverlay checkoutとは異なり、inline checkoutはページの一部になります。レイアウトを自由に制御でき、checkoutフォームの横に独自の注文概要を表示できます。
注文概要付きの商品ページに埋め込まれたInline checkoutフォーム

仕組み

Inline checkoutは、ページ上のコンテナに安全なDodo Payments frameをレンダリングします。frameは顧客情報と決済情報の収集を処理します。ページには商品、合計金額、その他の情報を表示します。SDKを使用すると、ページとcheckout frameが相互に通信できます。 checkoutが完了すると、Dodo Paymentsは決済、またはサブスクリプション商品の場合はサブスクリプションを作成し、アクセスをプロビジョニングできるようwebhookを送信します。
Inline checkout frameは、すべての機密性の高い決済情報を安全に処理します。これにより、追加の認証を取得しなくてもPCI complianceを確保できます。

優れたInline Checkoutの条件

顧客は、誰から購入するのか、何を購入するのか、いくら支払うのかを把握できる必要があります。実装には次の要素を含める必要があります。
必須要素がラベル付けされたInline checkoutの例

Example inline checkout layout showing required elements

  1. Recurring information: 継続課金の場合は、請求頻度と更新時の支払総額を表示します。trialの場合は、trial期間を表示します。
  2. Item descriptions: 購入内容の説明。
  3. Transaction totals: 通貨を含む小計、税額合計、総合計。
  4. Dodo Payments footer: Dodo Paymentsの情報、販売条件、privacy policyを含む、完全なinline checkout frame。
  5. Refund policy: Dodo Paymentsの標準refund policyと異なる場合は、自社のrefund policyへのリンク。
footerを含む完全なinline checkout frameを常に表示してください。法的情報を削除または非表示にすると、compliance要件に違反します。

Customer Journey

checkout flowはcheckout sessionの設定によって異なります。sessionの設定によっては、顧客にすべての情報を1ページで表示することも、複数のステップに分けて表示することもできます。
1

Customer opens checkout

checkout URLを渡してinline checkoutを開きます。checkout.breakdownなどのSDK eventsを使用して、ページ上の情報を表示・更新します。商品一覧と決済フォームが表示された初期checkoutページ
2

Customer enters their details

Inline checkoutでは、まず顧客にメールアドレスの入力、国の選択、必要に応じたZIPまたは郵便番号の入力を求めます。このステップで、税額と利用可能な決済方法の判定に必要な情報をすべて収集します。顧客情報を事前入力し、保存済みの住所を表示することで、操作を簡略化できます。
3

Customer selects payment method

情報の入力後、利用可能な決済方法と決済フォームが表示されます。顧客の所在地に応じて、クレジットカードまたはデビットカード、PayPal、Apple Pay、Google Pay、その他の現地の決済方法などが表示されます。利用可能な場合は保存済みの決済方法を表示して、checkoutを迅速化します。利用可能な決済方法とカード情報フォーム
4

Checkout completed

Dodo Paymentsは、成功する可能性を最大限に高めるため、各決済をその取引に最適なacquirerへルーティングします。顧客には、構築したsuccess workflowが表示されます。確認のチェックマークが表示された成功画面
5

Dodo Payments creates the payment or subscription

Dodo Paymentsは決済、またはサブスクリプション商品の場合はサブスクリプションを作成し、アクセスをプロビジョニングできるようwebhookを送信します。顧客が使用した決済方法は、更新またはサブスクリプションの変更に備えてfileに保存されます。webhook通知とともに作成されたサブスクリプション

クイックスタート

SDKをインストールし、inline mode用に初期化して、コンテナ要素でcheckoutを開きます。
ページに対応するidを持つコンテナ要素があることを確認してください: <div id="dodo-inline-checkout"></div>。

ステップごとのIntegration

1

Install the SDK

npm、yarn、またはpnpmでインストールします。
2

Initialize the SDK for Inline Display

SDKを初期化し、displayType: 'inline'を指定します。checkout.breakdown eventをリッスンして、リアルタイムの税額と合計金額でUIを更新します。
3

Create a Container Element

checkout frameを挿入するHTML要素を追加します。
4

Open the Checkout

DodoPayments.Checkout.open()を呼び出し、コンテナのcheckoutUrlとelementIdを渡します。
5

Test Your Integration

  1. 開発serverを起動します。
  1. checkout flowをテストします。
    • inline frameにメールアドレスと住所情報を入力する
    • カスタム注文概要がリアルタイムで更新されることを確認する
    • test credentialsを使用して決済flowをテストする
    • redirectが正しく動作することを確認する
onEvent callbackにconsole logを追加した場合、ブラウザのconsoleにcheckout.breakdown eventsが記録されます。
6

Go Live

productionの準備ができたら、次の操作を行います。
  1. modeを'live'に変更します。
  1. checkout URLをbackendのlive checkout sessionを使用するよう更新する
  2. productionで完全なflowをテストする

完全なReactの例

この例では、inline checkoutの横にカスタム注文概要を実装し、checkout.breakdown eventを使用して両者を同期する方法を示します。

API Reference

Initialize

Initializeを1回呼び出してSDKを設定します。

Open Checkout

コンテナでcheckout frameを開きます。

Close Checkout

checkout frameをプログラムで削除し、event listenersをクリーンアップします。

Check Status

checkout frameが現在挿入されているか確認します。

Events

SDKはonEvent callbackを通じてリアルタイムeventsを提供します。inline checkoutでは、checkout.breakdownがUIの同期に特に役立ちます。

Checkout Breakdown Data

checkout.breakdown eventは、価格と税額の情報を提供します。
eventはcheckout frameの読み込み時、および価格が再計算されるたびに発生します。たとえば、顧客が国を選択した場合や、税額が変わる郵便番号を入力した場合などです。 Field Details: Integration Tips:
  1. Currency Formatting: 価格は最小通貨単位のintegerです。たとえばUSDではcentです。小数点以下2桁の通貨では、Intl.NumberFormatでformatする前に100で割ります。JPYなどの小数点以下0桁の通貨には小さい単位がないため、割らないでください。
  2. Handling Initial States: checkoutの初回読み込み時、ユーザーがbilling informationを入力するかcodeを適用するまで、taxとdiscountは0またはnullになる場合があります。これらのstateを適切に処理してください(例: dash —を表示する、またはrowを非表示にする)。
  3. The “Final Total” vs “Total”: totalは標準的な価格計算を提供しますが、取引のsource of truthはfinalTotalです。finalTotalが存在する場合、顧客のcardに実際に請求される金額を正確に反映します。
  4. Real-time Feedback: tax fieldを使用して、税額がリアルタイムで計算されていることをユーザーに表示します。これによりcheckout pageに「live」感が生まれ、住所入力時の操作負担を軽減できます。

CDN Implementation

build stepなしで素早くintegrationするには、CDNからSDKを読み込みます。

Update Payment Method

Inline checkoutは、サブスクリプションの決済方法更新をサポートしています。顧客がactive subscriptionの決済方法を更新する必要がある場合や、on-hold subscriptionを再有効化する場合、ページレイアウト内にupdate flowを直接レンダリングできます。

仕組み

  1. Update Payment Method APIを呼び出してpayment_linkを取得します。
  1. 返されたpayment_linkをcheckoutUrlとして渡し、inline checkoutを開きます。
inline frameには、決済方法の収集formのみがレンダリングされます。顧客はページを離れずに、新しいカード情報を入力するか、保存済みの決済方法を選択できます。

On-Hold Subscriptionの場合

on_hold statusのサブスクリプションで決済方法を更新すると、Dodo Paymentsは残りの未払い金額に対するchargeを自動的に作成します。再有効化を確認するには、payment.succeededとsubscription.active webhooksを監視します。
新しい情報を収集する代わりに既存の保存済み決済方法を使用するには、type: 'existing'とpayment_method_idをUpdate Payment Method APIに渡します。

Error Handling

onEvent callbackには必ずerror handlingを実装してください。
error発生時に優れたuser experienceを提供するため、checkout.error eventを必ず処理してください。

Best Practices

  1. Responsive Design: コンテナ要素に十分なwidthとheightがあることを確認します。通常、iframeはコンテナいっぱいに広がります。
  2. Synchronization: checkout.breakdown eventを使用して、カスタム注文概要やpricing tableをcheckout frameに表示される内容と同期します。
  3. Skeleton States: checkout.opened eventが発生するまで、コンテナにloading indicatorを表示します。
  4. Cleanup: componentのunmount時にDodoPayments.Checkout.close()を呼び出し、iframeとevent listenersをクリーンアップします。
dark modeを実装する場合は、inline checkout frameと最適に統合できるよう、背景色に#0d0d0dを使用します。

Payment Status Validation

決済の成功または失敗を判断する際、inline checkout eventsだけに依存しないでください。webhooksやpollingを使用したserver-side validationを必ず実装してください。

Server-Side Validationが不可欠な理由

inline checkout eventsはリアルタイムのfeedbackを提供しますが、決済statusの唯一のsource of truthにしてはいけません。ネットワーク問題、ブラウザのクラッシュ、ユーザーによるページの終了などにより、eventsを受信できない場合があります。信頼性の高い決済validationを実現するには、次の操作を行います。
  1. webhook eventsをリッスンする - Dodo Paymentsは決済statusの変更時にwebhooksを送信します
  2. polling mechanismを実装する - frontendからserverをpollしてstatusの更新を確認します
  3. 両方の方法を組み合わせる - webhookをprimary source、pollingをfallbackとして使用します

推奨Architecture

Implementation Steps

1. checkout eventsをリッスンする - ユーザーがpayをクリックしたら、statusのverification準備を開始します。
2. serverをpollする - webhookによって更新された決済statusをdatabaseで確認するendpointを作成します。
3. server-sideでwebhooksを処理する - Dodoがpayment.succeededまたはpayment.failed webhooksを送信したら、databaseを更新します。詳細はWebhooks documentationを参照してください。

Troubleshooting

  • elementIdが、DOMに実際に存在するdivのidと一致することを確認する
  • displayType: 'inline'がInitializeに渡されていることを確認する
  • checkoutUrlが有効であることを確認する
  • checkout.breakdown eventをリッスンしていることを確認する
  • 税額は、ユーザーがcheckout frameで有効な国と郵便番号を入力した後にのみ計算されます

Digital Wallets

Apple Pay、Google Pay、その他のdigital walletsの設定について詳しくは、Digital Walletsページを参照してください。

Apple Payのクイック設定

Domain verificationが必要なのはinline(embedded)checkoutのみです。hosted checkoutでは必要ありません。
Apple Payはoverlay checkoutでは利用できません。
Apple Payはdashboardからdomainごとにverificationします。
1

Open Wallet domains

Settings → Payment Methodsに移動し、Apple Payの行でManage domainsをクリックします。
Payment Methods設定のApple Pay行にあるManage domainsボタン

Open Wallet domains from the Apple Pay row

2

Download the domain association file

Wallet domains panelからassociation fileをダウンロードします。
Download fileボタンが表示されたWallet domains panel

Download the Apple Pay domain association file

3

Register your domain

Register domainをクリックし、inline checkoutを埋め込むdomain(例: shop.example.com)を入力してから、Continueをクリックします。
domainが入力されたRegister a domainフォーム

Register the domain where you embed inline checkout

4

Host the file on your domain

次の場所でhostします。
HTTPS経由で配信し、redirectなしで到達でき、Content-Type: application/octet-streamまたはtext/plainで配信する必要があります。
5

Verify the domain

Verify domainをクリックします。Dodo Paymentsがfileがliveであることを確認し、domainをAppleに送信します。
association fileのhost pathとVerify domainボタンが表示されたVerify your domain画面

Verify the hosted association file

6

Confirm it's active

statusがActiveになると、そのdomainでApple Payが有効になります。Enabled toggleを使用して、domainごとに有効または無効にします。
ActiveのApple Pay statusとEnabled toggleが表示されたWallet domains一覧

Verified domains show an Active status

7

Test the integration

  1. Apple deviceでcheckoutを開く
  2. Apple Pay buttonが表示されることを確認する
  3. test transactionを完了する

Browser Support

Dodo Payments Checkout SDKは次をサポートしています。
  • Chrome(latest)
  • Firefox(latest)
  • Safari(latest)
  • Edge(latest)
  • IE11+

InlineとOverlayのCheckout

用途に合ったcheckout typeを選択してください。
checkout experienceを最大限に制御し、一貫したbrandingを実現したい場合はinline checkoutを使用します。既存pageへの変更を最小限に抑えて素早くintegrationしたい場合はoverlay checkoutを使用します。

関連リソース

Overlay Checkout

素早いmodalベースのintegrationにはoverlay checkoutを使用します。

Checkout Sessions API

checkout experienceを提供するcheckout sessionを作成します。

Webhooks

webhooksを使用してserver-sideで決済eventsを処理します。

Integration Guide

Dodo Paymentsのintegrationに関する完全なguideです。
さらにサポートが必要な場合は、Discord communityにアクセスするか、developer support teamにお問い合わせください。
最終更新日 2026年9月26日