Skip to main content

はじめに

GoHighLevel(GHL)に Dodo Payments を接続すると、GHL のファネル、Webサイト、メール、SMS から販売し、GHL の自動化で注文を処理できます。GHL は、ファネル、Webサイト、メールと SMS、および自動化(Workflows)を備えた CRM/マーケティングプラットフォームです。GHL では Dodo Payments が組み込みの決済プロセッサとして掲載されていないため、3つの方法のいずれかで接続します。チェックアウトをどの程度埋め込みたいか、またどの程度コードを書けるかに応じて選択してください。 どの方法でもフルフィルメントの流れは同じです。Dodo Payments が webhook events を GHL の Inbound Webhook ワークフローに送信し、コンタクトへのタグ付け、アクセス権の付与、確認通知の送信を行います。

方法を選択する

3つの方法は、必要なコードと顧客が支払う場所が異なります。
Dodo Payments を初めて利用する場合は、方法 A(Payment Links) から始めてください。コード不要で、すべての GHL ユーザーが利用できます。方法 B と C では checkout sessions を作成するバックエンドが必要なため、コードに慣れているチームに適しています。

前提条件

開始する前に、以下が必要です。
  • 少なくとも1つの product がある Dodo Payments アカウント。
  • ファネル、Webサイト、またはワークフローがある GoHighLevel アカウント。
  • Dodo Payments ダッシュボードの Developer → Webhooks へのアクセス。API key が必要な場合は Developer → API Keys へのアクセスも必要です。
  • 方法 B と C の場合:checkout sessions を作成する小規模な backend または serverless endpoint。
GHL でファネルを 公開 するには connected domain が必要です。構築中は、ファネルの Preview を使用してテストしてください。カスタム JavaScript(方法 B と C)は通常、Preview ではなく、実際のドメイン上の公開ページでのみ実行されます。

Webhooks によるフルフィルメント(すべての方法)

Webhook ワークフローが自動化レイヤーとなります。一度設定すれば、すべてのチェックアウト方法で利用できます。
1

Create the Workflow

GHL の sub-account で、左側のメニューから Automation を開きます。Workflows タブが開きます。Create workflow をクリックし、Start from Scratch を選択します。
2

Add the Inbound Webhook Trigger

ビルダーで Add new trigger をクリックします。Add trigger パネルで webhook を検索し、Triggers → Events の下にある Inbound webhook を選択します。生成された Webhook URL をコピーします。
3

Register the Webhook in Dodo Payments

Dodo Payments ダッシュボードで Developer → Webhooks に移動し、Add endpoint をクリックします。GHL Inbound Webhook URL を Endpoint URL に貼り付け、Create endpoint をクリックします。次に、顧客のメールアドレス、product、金額、status など、フィールドのマッピングに使用するサンプル payload を GHL に渡します。テスト購入を行うか、endpoint の Testing タブを開き、イベントタイプを選択して Send example をクリックします。
4

Add Fulfillment Actions

GHL ワークフローで、イベントに対するアクションを追加します。たとえば、find/create contact by email、add a tag、grant course/membership access、send a confirmation email などです。その後、ワークフローを Publish します。
Dodo Payments が決済を処理するため、決済は GHL の Payments タブには表示されません。上記の webhook ワークフローを使って GHL に記録してください。アクセス権はブラウザーのリダイレクトではなく webhook から付与してください。顧客がリダイレクト完了前にタブを閉じる可能性があるためです。

方法 A:Payment Links(ノーコード)

Dodo Payments の payment link を、GHL のボタン、ファネルの CTA、注文ページのボタン、メール、SMS のいずれかに追加します。顧客は Dodo Payments のホスト型チェックアウトで支払います。チェックアウトで利用できる機能については、Checkout Features を参照してください。
1

Create a Product and Copy Its Payment Link

Dodo Payments ダッシュボードで Products に移動し、Add Product をクリックします。name と price を設定し、one-time または subscription を選択して、product を保存します。product の行で Share をクリックし、次に Copy payment link をクリックします。リンクの形式は https://checkout.dodopayments.com/buy/{product_id} です。
2

Add the Link to Your GHL Button

ファネルまたは Webサイトのページを編集し、Buy / Checkout button を選択します。アクションを Open URL / Website に設定し、payment link を貼り付けます。
3

Set a Success Page (Optional)

支払い後に顧客をファネルへ戻すには、リンクをコピーする前に、product の Share シートにある Redirect URL に GHL のサンクスページを入力します。リンクには redirect_url パラメータとしてその URL が含まれます。
Payment link の query parameters を使用すると、顧客情報を事前入力して編集不可にしたり、トラッキングを追加したりできます。たとえば、ファネルまたはオファー ID を metadata_* パラメータとして渡し、webhook から読み取れます。すべてのパラメータについては、Static Payment Links を参照してください。

方法 B:Overlay Checkout(カスタムコード)

方法 B では、CDN の Checkout SDK を使用して、GHL ページ上に Dodo Payments のチェックアウトを modal overlay として開きます。checkoutUrl を返す checkout session を作成するバックエンドが必要です。
1

Create a Backend Endpoint That Calls the Checkout Sessions API

この手順は 必須 です。SDK には checkout session URL が必要で、session の作成には secret API key が必要です。GHL はページをホストするだけで、この server-side call を代わりに実行することはできません。ページソースに secret key が露出するため、ブラウザーから Create Checkout Session API を呼び出してはいけません。そのため、Overlay と inline checkout は GHL だけでは動作しません。session を作成し、URL のみを返す、管理下のバックエンドが必要です。小規模なバックエンドであればどれでも利用できます。serverless function(Cloudflare Workers、Vercel Functions、AWS Lambda、Supabase Edge Functions など)、または既に運用しているサーバー上の endpoint が該当します。どのプラットフォームでもロジックは同じです。リクエストを受信し、secret key を使って Dodo Payments API を呼び出し、checkout_url を返します。使用するプラットフォームに合わせて変更する handler logic の例:
デプロイ先のプラットフォームで、API key を DODO_PAYMENTS_API_KEY environment variable の secret として保存し、コードに commit しないでください。GHL ドメインからのリクエストを許可し(CORS)、endpoint は管理下のドメインから提供します。たとえば https://api.example.com/create-checkout です。live mode に移行するときは、URL を https://live.dodopayments.com/checkouts に切り替えます。
2

Add a Custom Code Element in the GHL Page Builder

GHL のページビルダーでファネルのステップまたは Webサイトのページを開き、次の操作を行います。
  1. ビルダー左上の + アイコンをクリックして Quick Add を開きます。
  2. 左側のカテゴリー一覧から Elements を選択します。
  3. Custom Code(HTML と表示される場合もあります)を見つけ、ページにドラッグします。
  4. 以下のコードを要素のコードエディターに貼り付け、保存します。
3

Publish and Test on Your Domain

カスタム JavaScript は 公開済み のページ上、かつ connected domain 上で実行され、Preview では実行されない場合があります。ページを公開し、Pay Now をクリックして overlay が開くことを確認します。

方法 C:Inline(埋め込み)Checkout

方法 C では、リダイレクトもポップアップも使用せず、チェックアウトフォームを GHL ページの 内部 に埋め込みます。マウント先の container element と同じ SDK を使用します。方法 B と同様に、session を作成するバックエンドが必要です。
1

Create a Backend Endpoint That Calls the Checkout Sessions API

この手順は、overlay checkout と同様に 必須 です。session の作成には secret API key が必要なため、サーバー上で実行する必要があり、GHL 単独では対応できません。上記の Overlay Checkout セクションにあるバックエンド endpoint を再利用してください。Create Checkout Session API を呼び出し、{ checkoutUrl } を返す、管理下の小規模な serverless function またはサーバーであれば利用できます。
2

Add a Container and SDK via Custom Code

GHL ページビルダーで次の操作を行います。
  1. ビルダー左上の + アイコンをクリックして Quick Add を開きます。
  2. 左側のカテゴリー一覧から Elements を選択します。
  3. Custom Code(HTML と表示される場合もあります)を見つけ、チェックアウトフォームを表示するページ上の場所にドラッグします。
  4. 以下のコードを要素のコードエディターに貼り付け、保存します。
3

Verify Your Domain for Wallets (Apple Pay)

inline checkoutでApple Payを提供するには、ドメインを確認してください。Dodo Paymentsダッシュボードで Settings → Payment Methods に移動し、Apple Pay 行の Manage domains をクリックします。ドメイン関連付けファイルをダウンロードしてドメイン上でホストし、ドメインを登録します。Apple Payはoverlay checkout(Approach B)では利用できません。GHLがホストするドメインでは、ドメイン関連付けファイルをホストできません。inline checkoutでApple Payを使用するには、/.well-known/apple-developer-merchantid-domain-associationを提供できる、管理下にあるドメインが必要です。GHLがホストするページでは、Payment Linksのhosted checkout(Approach A)を使用するか、Apple Payを利用しないでください。
inline checkoutはGHLで最も複雑な選択肢です。カスタムコード、backend、実際のドメイン上で公開されたページ、そしてApple Payを使用する場合はドメイン確認が必要です。完全に埋め込まれたフォームが不要な場合は、Approach AまたはBを使用してください。

処理するEvents

GHL endpointを、workflowが処理するeventsにSubscribeします。以下の表では、それぞれに推奨されるGHL actionを示しています。 Paymentおよびsubscription eventsには、data.customer.emailに customer email が含まれます。GHLの find/create contact by email actionを使用して、Paymentを正しいcontactに紐付けます。各eventについては、Webhook Event Guideを参照してください。

TestingとGoing Live

1

Test in Test Mode

Dodo Payments sidebarの Live Mode switchはoffのままにして、test modeで作業します。テストカード4242 4242 4242 4242(有効期限 06/32、CVV 123)で購入を完了し、GHL workflowが実行されてtagまたはaccessが適用されることを確認します。
2

Go Live

Live Mode switchをonにし、GHL Inbound Webhook URLをlive modeのendpointとして追加します。それ以外に変更する内容は、選択したapproachによって異なります。
  • Payment Links (A): リンクを商品の live payment linkに置き換えます。
  • Overlay checkout (B): backendを live API keyでhttps://live.dodopayments.com/checkoutsに接続し、SDKのInitialize callでmodeを"live"に設定します。
  • Inline checkout (C): overlay checkoutと同じbackend endpointおよびSDK initializationを使用するため、同じ変更を行います。
その後、設定を最初から最後まで確認するため、実際の購入を1件行います。

Tips

Accessの付与では、webhookをsource of truthとして扱うようにしてください。ブラウザーのredirectではなく、payment.succeededまたはsubscription.activeに基づいて処理します。
GHL Inbound Webhookではwebhook-signature headerを検証できません。そのため、本物のDodo Payments eventsだけがGHLでfulfillmentをtriggerするようにするには、Dodo Payments webhook endpointを独自のbackendに向け、各eventをそこで検証し(Webhooks)、その後GHL Inbound Webhook URLにforwardします。

Troubleshooting

Dodo Payments webhook endpointが正しいGHL Inbound Webhook URLを指していること、workflowが published であること、そしてfield mappingが存在するようにtriggerがsample payloadを取得していることを確認してください。
Custom JavaScriptは通常、Previewではなく、実際のドメイン上で公開されたページでのみ実行されます。ページが公開されていること、SDK <script>がloadされていること、そしてcheckoutUrlがbackendから取得した有効なsession URLであることを確認してください。
workflowが find/create contact by email を使用し、email fieldがwebhook payloadからmappingされていることを確認してください。
これは想定される動作です。Paymentを処理するのはDodo Paymentsであるため、webhook workflowを使用してGHLに記録してください。
最終更新日 2026年9月28日