소개
Dodo Payments를 GoHighLevel (GHL)에 연결하면 GHL 퍼널, 웹사이트, 이메일, SMS에서 판매하고 GHL 자동화로 주문을 처리할 수 있습니다. GHL은 퍼널, 웹사이트, 이메일과 SMS, 자동화(Workflows)를 제공하는 CRM 및 마케팅 플랫폼입니다. GHL에는 Dodo Payments가 기본 결제 처리자로 등록되어 있지 않으므로 세 가지 방법 중 하나로 두 서비스를 연결해야 합니다. Checkout을 얼마나 긴밀하게 통합할지와 작성할 수 있는 코드의 양에 따라 방법을 선택하세요. 모든 방법에서 주문 처리는 동일하게 진행됩니다. Dodo Payments가 webhook events를 GHL Inbound Webhook workflow로 전송하면, workflow가 contact에 tag를 추가하고 access를 부여한 뒤 확인 메시지를 보냅니다.방법 선택
세 가지 방법은 필요한 코드와 고객이 결제하는 위치가 서로 다릅니다.사전 요구 사항
시작하기 전에 다음이 필요합니다.- 하나 이상의 product가 있는 Dodo Payments account
- funnel, website 또는 workflow가 있는 GoHighLevel account
- Dodo Payments dashboard의 Developer → Webhooks에 대한 access 및 API key가 필요한 경우 Developer → API Keys에 대한 access
- 방법 B와 C의 경우: checkout sessions을 생성하는 소규모 backend 또는 serverless endpoint
Webhook을 사용한 주문 처리(모든 방법)
Webhook workflow는 자동화 계층입니다. 한 번 설정하면 모든 checkout 방법에서 사용할 수 있습니다.Create the Workflow
Add the Inbound Webhook Trigger
Register the Webhook in Dodo Payments
Add Fulfillment Actions
방법 A: Payment Links(No-Code)
Dodo Payments payment link를 GHL button, funnel call to action, order page button, email 또는 SMS에 추가합니다. 고객은 Dodo Payments hosted checkout에서 결제합니다. Checkout에서 지원하는 기능은 Checkout Features를 참조하세요.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)
redirect_url parameter가 포함됩니다.방법 B: Overlay Checkout(Custom Code)
방법 B는 CDN의 Checkout SDK를 사용해 GHL page에서 Dodo Payments checkout을 modal overlay로 엽니다. checkout session을 생성하고checkoutUrl을 반환하는 backend가 필요합니다.
Create a Backend Endpoint That Calls the Checkout Sessions API
checkout_url을 반환합니다.사용 중인 platform에 맞게 조정할 수 있는 예시 handler logic:DODO_PAYMENTS_API_KEY environment variable의 secret으로 저장하고, 절대 code에 commit하지 마세요. GHL domain에서 오는 request를 허용하고(CORS), endpoint는 직접 제어하는 domain에서 제공하세요. 예: https://api.example.com/create-checkout. Live mode로 전환할 때는 URL을 https://live.dodopayments.com/checkouts로 변경합니다.Add a Custom Code Element in the GHL Page Builder
- Builder의 왼쪽 상단에서 + icon을 클릭해 Quick Add를 엽니다.
- 왼쪽 category list에서 Elements를 선택합니다.
- Custom Code(HTML로도 표시됨)를 찾아 page로 드래그합니다.
- 아래 code를 element의 code editor에 붙여 넣고 저장합니다.
Publish and Test on Your Domain
방법 C: Inline(Embedded) Checkout
방법 C는 redirect나 popup 없이 checkout form을 GHL page 내부에 embed합니다. 동일한 SDK를 사용하며, SDK를 mount할 container element가 필요합니다. 방법 B와 마찬가지로 session을 생성할 backend가 필요합니다.Create a Backend Endpoint That Calls the Checkout Sessions API
{ checkoutUrl }을 반환하는, 직접 제어하는 소규모 serverless function 또는 server라면 무엇이든 됩니다.Add a Container and SDK via Custom Code
- Builder의 왼쪽 상단에서 + icon을 클릭해 Quick Add를 엽니다.
- 왼쪽 category list에서 Elements를 선택합니다.
- Custom Code(HTML로도 표시됨)를 찾아 checkout form을 표시할 page 위치로 드래그합니다.
- 아래 code를 element의 code editor에 붙여 넣고 저장합니다.
Verify Your Domain for Wallets (Apple Pay)
/.well-known/apple-developer-merchantid-domain-association를 제공할 수 있는, 직접 관리하는 도메인이 필요합니다. GHL에서 호스팅하는 페이지에서는 Payment Links의 hosted checkout(Approach A)을 사용하거나 Apple Pay를 사용하지 마세요.처리할 Events
워크플로가 처리하는 events를 GHL endpoint에 subscribe하세요. 다음 표에서는 각 event에 권장되는 GHL action을 제안합니다:data.customer.email에 customer email이 포함됩니다. GHL의 find/create contact by email action을 사용하여 결제를 올바른 contact와 매칭하세요. 각 event에 대한 자세한 내용은 Webhook Event Guide를 참조하세요.
Testing 및 Going Live
Test in Test Mode
4242 4242 4242 4242(만료일 06/32, CVV 123)로 구매를 완료하고, GHL workflow가 실행되어 tag 또는 access를 적용하는지 확인하세요.Go Live
- Payment Links (A): link를 product의 live payment link로 교체하세요.
- Overlay checkout (B): backend가
https://live.dodopayments.com/checkouts를 live API key와 함께 사용하도록 지정하고, SDK의Initialize호출에서mode를"live"로 설정하세요. - Inline checkout (C): 동일한 backend endpoint와 SDK initialization을 사용하므로 overlay checkout과 동일한 변경 사항을 적용하세요.
Tips
Troubleshooting
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