はじめに
GoHighLevel(GHL)は、ファネル、Webサイト、メール/SMS、オートメーション(「Workflows」)をカバーするオールインワンの CRM およびマーケティングプラットフォームです。GHL では Dodo Payments が組み込みプロセッサとして掲載されていないため、チェックアウトをどの程度ページに組み込みたいか、またどの程度コードを使用できるかに応じて、3つの方法のいずれかで2つを接続します。 どの方法でも、フルフィルメントの処理は同じです。Dodo は webhook events を GHL の Inbound Webhook Workflow に送信し、コンタクトへのタグ付け、アクセス権の付与、確認メッセージの送信を行います。方法を選択する
前提条件
- 少なくとも1つの product を作成済みの Dodo Payments アカウント。
- ファネル、Webサイト、またはワークフローを備えた GoHighLevel アカウント。
- Dodo ダッシュボードの Settings → Webhooks(API key には Settings → Developer)へのアクセス権。
- 方法 B と C の場合:checkout sessions を作成するための小規模な backend または serverless endpoint。
webhook を使用したフルフィルメント(すべての方法)
これがオートメーション層です。一度設定すれば、どのチェックアウト方法を選択しても機能します。Create the workflow
Add the Inbound Webhook trigger
Register the webhook in Dodo
Add fulfillment actions
方法 A:Payment Links(ノーコード)
GHL のボタン、ファネル CTA、注文ページのボタン、メール、SMS のいずれにも Dodo payment link を設定できます。Create a product and copy its payment link
https://checkout.dodopayments.com/buy/{product_id})をコピーします。Add the link to your GHL button
Set a success page (optional)
方法 B:Overlay Checkout(カスタムコード)
Checkout SDK を CDN 経由で使用し、GHL ページ上に modal overlay として Dodo checkout を開きます。checkout session を作成してcheckoutUrl を返すバックエンドが必要です。
Create a backend endpoint that calls the Checkout Sessions API
checkoutUrl が必要で、作成には secret API key が必要です。GHL は静的ページのみをホストするため、このサーバーサイド呼び出しを代わりに実行することはできません。また、Create Checkout Session API をブラウザから直接呼び出してはいけません。ページのソースに secret key が露出してしまうためです。そのため、overlay checkout と inline checkout は GHL だけでは動作しません。セッションを作成し、URL だけを返す、管理下のバックエンドが必要です。小規模なバックエンドであればどのようなものでも使用できます。serverless function(Cloudflare Workers、Vercel Functions、AWS Lambda、Supabase Edge Functions など)や、既に運用しているサーバー上の endpoint が利用できます。ロジックはどの環境でも同じです。リクエストを受け取り、secret key を使用して Dodo の API を呼び出し、checkout_url を返します。ハンドラーのロジック例(使用するプラットフォームに合わせて調整してください):https://api.example.com/create-checkout)。live mode に移行したら https://live.dodopayments.com/checkouts に切り替えます。Add a Custom Code element in the GHL page builder
- ビルダーの左上にある + アイコンをクリックして Quick Add を開きます。
- 左側のカテゴリ一覧から Elements を選択します。
- Custom Code(HTML と表示される場合もあります)を見つけて、ページにドラッグします。
- 以下のコードを要素のコードエディターに貼り付け、保存します。
Publish and test on your domain
方法 C:Inline(埋め込み)Checkout
同じ SDK と mount container を使用して、チェックアウトフォームを GHL ページの 内部に 埋め込みます(リダイレクトなし、ポップアップなし)。方法 B と同様に、セッションを作成するバックエンドが必要です。Create a backend endpoint that calls the Checkout Sessions API
{ checkoutUrl } を返します。Add a container and SDK via Custom Code
- ビルダーの左上にある + アイコンをクリックして Quick Add を開きます。
- 左側のカテゴリ一覧から Elements を選択します。
- Custom Code(HTML と表示される場合もあります)を見つけ、チェックアウトフォームを表示したい場所にドラッグします。
- 以下のコードを要素のコードエディターに貼り付け、保存します。
Verify your domain for wallets (Apple Pay)
処理する Events
テストと本番稼働
Test in test mode
4242 4242 4242 4242(有効期限は将来の日付、CVC は任意)を使用して購入を完了し、GHL ワークフローが実行されてタグまたはアクセス権が適用されることを確認します。Go live
- Payment Links(A): product の live payment link に差し替えます。
- Overlay checkout(B): バックエンドの接続先を
https://live.dodopayments.com/checkoutsに変更し、live API key を使用します。また、Initialize呼び出しで SDK のmodeを"live"に設定します。 - Inline checkout(C): 同じバックエンド endpoint と SDK 初期化を使用するため、overlay と同じです。
Tips
トラブルシューティング
Payment succeeded but nothing happened in GHL
Payment succeeded but nothing happened in GHL
Contact not created or not matched
Contact not created or not matched
Payment isn't showing in GHL's Payments tab
Payment isn't showing in GHL's Payments tab