Skip to main content

مقدمة

اربط Dodo Payments بـ GoHighLevel (GHL) للبيع من خلال مسارات GHL ومواقع الويب ورسائل البريد الإلكتروني وSMS، وتنفيذ الطلبات باستخدام أتمتة GHL. GHL هو نظام CRM ومنصة تسويق تتضمن المسارات ومواقع الويب والبريد الإلكتروني وSMS والأتمتة (Workflows). لا يدرج GHL ‏Dodo Payments كمعالج دفع مدمج، لذلك يمكنك ربط النظامين بإحدى ثلاث طرق. اختر الطريقة بناءً على مدى رغبتك في دمج صفحة الدفع ومقدار التعليمات البرمجية التي يمكنك كتابتها. تتعامل كل طريقة مع تنفيذ الطلبات بالطريقة نفسها: يرسل Dodo Payments أحداث webhook إلى سير عمل Inbound Webhook في GHL، والذي يضيف وسمًا إلى جهة الاتصال، ويمنح الوصول، ويرسل التأكيدات.

اختر طريقتك

تختلف الطرق الثلاث في التعليمات البرمجية التي تحتاج إليها وفي المكان الذي يدفع فيه العميل:
إذا كنت جديدًا على Dodo Payments، فابدأ بـ Approach A (Payment Links). لا تتطلب أي تعليمات برمجية وتعمل مع كل مستخدمي GHL. تتطلب الطريقتان B وC ‏backend ينشئ جلسات checkout، ولذلك تناسبان الفرق المتمرسة في كتابة التعليمات البرمجية.

المتطلبات الأساسية

قبل البدء، تحتاج إلى:
  • حساب Dodo Payments يتضمن منتجًا واحدًا على الأقل.
  • حساب GoHighLevel يتضمن مسارًا أو موقع ويب أو سير عمل.
  • الوصول إلى Developer → Webhooks في لوحة تحكم Dodo Payments، وإلى Developer → API Keys إذا كنت تحتاج إلى API key.
  • للطريقتين B وC: نقطة نهاية صغيرة backend أو serverless تنشئ جلسات checkout.
يتطلب GHL نطاقًا متصلًا من أجل نشر مسار. أثناء الإنشاء، استخدم Preview الخاص بالمسار للاختبار. تعمل JavaScript المخصصة عادةً على الصفحة المنشورة على نطاق حقيقي فقط، وليس في Preview.

تنفيذ الطلبات باستخدام Webhooks (جميع الطرق)

يُعد سير عمل webhook طبقة الأتمتة. أعد إعداده مرة واحدة، وسيعمل مع كل طرق الدفع.
1

Create the Workflow

في sub-account في GHL، افتح Automation من القائمة اليمنى. ستفتح علامة التبويب Workflows. انقر على Create workflow، ثم اختر Start from Scratch.
2

Add the Inbound Webhook Trigger

في أداة الإنشاء، انقر على Add new trigger. في لوحة Add trigger، ابحث عن webhook وحدد Inbound webhook، المدرج ضمن Triggers → Events. انسخ Webhook URL الذي يتم إنشاؤه.
3

Register the Webhook in Dodo Payments

في لوحة تحكم Dodo Payments، انتقل إلى Developer → Webhooks وانقر على Add endpoint. ألصق عنوان GHL Inbound Webhook URL في Endpoint URL وانقر على Create endpoint. ثم زوّد GHL بعينة payload لربط الحقول، مثل بريد العميل الإلكتروني والمنتج والمبلغ والحالة. نفّذ عملية شراء اختبارية، أو افتح علامة التبويب 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 عمليات الدفع، ولذلك لا تظهر في علامة تبويب Payments في GHL. سجّلها في GHL باستخدام سير عمل webhook أعلاه. امنح الوصول من خلال webhook، وليس من خلال إعادة توجيه المتصفح، لأن العميل قد يغلق علامة التبويب قبل اكتمال إعادة التوجيه.
أضف رابط دفع Dodo Payments إلى أي زر في GHL أو دعوة لاتخاذ إجراء في مسار أو زر في صفحة الطلب أو بريد إلكتروني أو رسالة SMS. يدفع العملاء في صفحة الدفع المستضافة لدى Dodo Payments. لمعرفة ما يدعمه الدفع، راجع Checkout Features.
1

Create a Product and Copy Its Payment Link

في لوحة تحكم Dodo Payments، انتقل إلى Products وانقر على Add Product. عيّن name وprice، واختر one-time أو subscription، ثم احفظ المنتج. في صف المنتج، انقر على Share، ثم انقر على Copy payment link. يكون الرابط بالتنسيق https://checkout.dodopayments.com/buy/{product_id}.
2

Add the Link to Your GHL Button

حرّر صفحة المسار أو موقع الويب وحدد Buy / Checkout button. عيّن الإجراء إلى Open URL / Website وألصق رابط الدفع.
3

Set a Success Page (Optional)

لإعادة العملاء إلى مسارك بعد الدفع، أدخل صفحة الشكر في GHL في Redirect URL ضمن ورقة Share الخاصة بالمنتج قبل نسخ الرابط. يحمل الرابط بعد ذلك هذه القيمة باعتبارها المعامل redirect_url.
يمكن لمعاملات query في روابط الدفع تعبئة بيانات العميل وتثبيتها مسبقًا، أو إضافة التتبع. على سبيل المثال، مرّر معرّف مسار أو عرض باعتباره معامل metadata_* واسترجعه من webhook. راجع Static Payment Links للاطلاع على جميع المعاملات.

الطريقة B: Overlay Checkout (تعليمات برمجية مخصصة)

تفتح الطريقة B صفحة checkout في Dodo Payments باعتبارها modal overlay فوق صفحة GHL، باستخدام Checkout SDK من CDN. وتحتاج إلى backend ينشئ جلسة checkout ويعيد checkoutUrl.
1

Create a Backend Endpoint That Calls the Checkout Sessions API

هذه الخطوة مطلوبة. يحتاج SDK إلى عنوان URL لجلسة checkout، ويتطلب إنشاء الجلسة secret API key. يستضيف GHL الصفحات فقط ولا يمكنه إجراء استدعاء من جهة الخادم نيابةً عنك. لا تستدعِ Create Checkout Session API من المتصفح مطلقًا، لأن ذلك يكشف مفتاحك السري في مصدر الصفحة. لذلك لا يمكن أن يعمل Overlay وinline checkout باستخدام GHL وحده: تحتاج إلى backend تتحكم فيه وينشئ الجلسة ويعيد عنوان URL فقط.يعمل أي backend صغير: دالة serverless (مثل Cloudflare Workers وVercel Functions وAWS Lambda وSupabase Edge Functions وما شابهها)، أو نقطة نهاية على خادم تديره بالفعل. المنطق واحد على كل الأنظمة الأساسية: استقبل الطلب، واستدعِ Dodo Payments API باستخدام مفتاحك السري، وأعد checkout_url.مثال على منطق المعالج، يمكنك تكييفه مع نظامك الأساسي:
خزّن API key باعتباره secret في متغير البيئة DODO_PAYMENTS_API_KEY على النظام الأساسي الذي تنشر عليه، ولا تضعه في code مطلقًا. اسمح بالطلبات من نطاق GHL لديك (CORS)، وقدّم نقطة النهاية من نطاق تتحكم فيه، مثل https://api.example.com/create-checkout. عند الانتقال إلى الوضع المباشر، بدّل عنوان URL إلى https://live.dodopayments.com/checkouts.
2

Add a Custom Code Element in the GHL Page Builder

افتح خطوة المسار أو صفحة موقع الويب في أداة إنشاء صفحات GHL، ثم:
  1. انقر على أيقونة + في أعلى يسار أداة الإنشاء لفتح Quick Add.
  2. حدد Elements من قائمة الفئات على اليسار.
  3. ابحث عن Custom Code (يظهر أيضًا باسم HTML) واسحبه إلى الصفحة.
  4. ألصق التعليمات البرمجية أدناه في محرر code الخاص بالعنصر، ثم احفظه.
3

Publish and Test on Your Domain

تعمل JavaScript المخصصة على الصفحة المنشورة في نطاقك المتصل، وقد لا تعمل في Preview. انشر الصفحة، ثم انقر على Pay Now للتأكد من فتح overlay.

الطريقة C: Inline (مضمّن) Checkout

تضمّن الطريقة C نموذج checkout داخل صفحة GHL، دون إعادة توجيه أو نافذة منبثقة. وتستخدم SDK نفسه مع عنصر حاوية ليتم تركيبه بداخله. وكما في الطريقة B، تحتاج إلى backend لإنشاء الجلسة.
1

Create a Backend Endpoint That Calls the Checkout Sessions API

هذه الخطوة مطلوبة، كما هو الحال في overlay checkout. يتطلب إنشاء جلسة secret API key، ولذلك يجب أن يحدث على خادم، ولا يستطيع GHL تنفيذ ذلك بمفرده. أعد استخدام نقطة نهاية backend من قسم Overlay Checkout أعلاه: أي دالة serverless صغيرة أو خادم تتحكم فيه ويستدعي Create Checkout Session API ويعيد { checkoutUrl }.
2

Add a Container and SDK via Custom Code

في أداة إنشاء صفحات GHL:
  1. انقر على أيقونة + في أعلى يسار أداة الإنشاء لفتح Quick Add.
  2. حدد Elements من قائمة الفئات على اليسار.
  3. ابحث عن Custom Code (يظهر أيضًا باسم HTML) واسحبه إلى الصفحة حيث تريد ظهور نموذج checkout.
  4. ألصق التعليمات البرمجية أدناه في محرر code الخاص بالعنصر، ثم احفظه.
3

Verify Your Domain for Wallets (Apple Pay)

لتقديم Apple Pay في الدفع المضمّن، تحقّق من نطاقك. في لوحة تحكم Dodo Payments، انتقل إلى Settings → Payment Methods وانقر على Manage domains في صف Apple Pay. نزّل ملف ارتباط النطاق، واستضفه على نطاقك، ثم سجّل النطاق. لا يتوفر Apple Pay في الدفع عبر النافذة المنبثقة (Approach B).لا يمكن لنطاق مستضاف بواسطة GHL استضافة ملف ارتباط النطاق. يحتاج Apple Pay في الدفع المضمّن إلى نطاق تتحكم فيه ويمكنه تقديم /.well-known/apple-developer-merchantid-domain-association. في الصفحات المستضافة بواسطة GHL، استخدم الدفع المستضاف من Payment Links (Approach A) أو تخطَّ Apple Pay.
الدفع المضمّن هو الخيار الأكثر تعقيدًا في GHL. فهو يحتاج إلى custom code وbackend وصفحة منشورة على نطاق حقيقي، وإلى التحقّق من النطاق بالنسبة إلى Apple Pay. إذا لم تكن بحاجة إلى نموذج مضمّن بالكامل، فاستخدم Approach A أو B بدلًا من ذلك.

الأحداث التي يجب التعامل معها

اشترك في الأحداث التي يعتمد عليها سير عملك من خلال GHL endpoint. يقترح الجدول إجراءً في GHL لكل حدث: تتضمن أحداث الدفع والاشتراك customer email في data.customer.email. استخدم إجراء GHL find/create contact by email لمطابقة عملية الدفع مع جهة الاتصال الصحيحة. للاطلاع على كل حدث، راجع Webhook Event Guide.

الاختبار والانتقال إلى الوضع المباشر

1

Test in Test Mode

أبقِ مفتاح Live Mode في الشريط الجانبي لـ Dodo Payments متوقفًا، حتى تعمل في وضع الاختبار. أكمِل عملية شراء باستخدام بطاقة الاختبار 4242 4242 4242 4242 (تاريخ الانتهاء 06/32، وCVV ‏123)، وتحقّق من تشغيل سير عمل GHL وتطبيق الوسم أو منح الوصول.
2

Go Live

فعّل مفتاح Live Mode وأضف GHL Inbound Webhook URL كنقطة نهاية في الوضع المباشر. تعتمد التغييرات الأخرى على النهج الذي تستخدمه:
  • Payment Links (A): استبدل الرابط برابط الدفع live للمنتج.
  • Overlay checkout (B): وجّه backend إلى https://live.dodopayments.com/checkouts باستخدام مفتاح API live، واضبط mode على "live" في استدعاء Initialize الخاص بـ SDK.
  • Inline checkout (C): أجرِ التغييرات نفسها الخاصة بـ overlay checkout، لأنه يستخدم نقطة نهاية backend وتهيئة SDK نفسيهما.
بعد ذلك، أجرِ عملية شراء حقيقية واحدة من البداية إلى النهاية للتأكد من صحة الإعداد.

نصائح

اعتبر webhook مصدر الحقيقة عند منح الوصول. نفّذ الإجراء استنادًا إلى payment.succeeded أو subscription.active، وليس إلى إعادة التوجيه في المتصفح.
لا يستطيع GHL Inbound Webhook التحقّق من ترويسة webhook-signature. لضمان أن أحداث Dodo Payments الأصلية فقط هي التي تؤدي إلى تنفيذ الإجراءات في GHL، وجّه نقطة نهاية webhook الخاصة بـ Dodo Payments إلى backend الخاص بك، وتحقّق من كل حدث هناك (Webhooks)، ثم أعد توجيهه إلى GHL Inbound Webhook URL.

استكشاف الأخطاء وإصلاحها

تحقّق من أن نقطة نهاية webhook في Dodo Payments تشير إلى GHL Inbound Webhook URL الصحيح، وأن سير العمل منشور، وأن المشغّل التقط عينة من payload، حتى تكون مطابقة الحقول موجودة.
عادةً لا يعمل custom JavaScript إلا على الصفحة المنشورة على نطاق حقيقي، وليس في Preview. تأكّد من نشر الصفحة، ومن تحميل SDK <script>، ومن أن checkoutUrl هو session URL صالح من backend الخاص بك.
تحقّق من أن سير العمل يستخدم find/create contact by email وأن حقل البريد الإلكتروني مرتبط من webhook payload.
هذا متوقع. يتولى Dodo Payments معالجة عمليات الدفع، لذا سجّلها في GHL باستخدام سير عمل webhook.
آخر تعديل في ٢٨ سبتمبر ٢٠٢٦