المقدمة
شغّل Windmill script أو flow في كل مرة يقع فيها حدث من Dodo Payments. استخدمه لتحديث قاعدة بيانات، أو مزامنة السجلات مع نظام آخر، أو إرسال الإشعارات، أو تشغيل منطق الأعمال الخاص بك في التعليمات البرمجية.يرسل موصل Windmill كل حدث إلى عنوان webhook الخاص بـ Windmill script أو flow. تحتاج إلى script أو flow منشور، وWindmill token يمكنه تشغيله، وإمكانية الوصول إلى Developer → Webhooks في لوحة تحكم Dodo Payments.
البدء
1
Open the Webhook Section
في لوحة تحكم Dodo Payments، انتقل إلى Developer → Webhooks وانقر على Add endpoint.

2
Select Windmill
ضمن Integration، اختر Windmill. تحمّل لوحة التحكم تعليمات التحويل البرمجية الخاصة بـ Windmill وتعرض خطوات الإعداد في لوحة How to connect Windmill.
3
Copy the Windmill Webhook URL
في Windmill، افتح script أو flow الذي ينبغي أن يتعامل مع الأحداث. في علامة التبويب Triggers، افتح Webhooks وانسخ عنوان webhook غير المتزامن (UUID/Async). بعد ذلك أنشئ token مخصصًا لـ webhook للـscript أو الـflow وانسخه. لا يمكن لهذا token تشغيل سوى ذلك الـscript أو الـflow.
4
Paste Webhook URL
الصق عنوان webhook الخاص بـ Windmill في Endpoint URL. يجب أن يستخدم العنوان HTTPS، ولذلك تحتاج نسخة Windmill المستضافة ذاتيًا إلى عنوان HTTPS عامًا. لا يحتوي موصل Windmill على حقل API key، لذا أضف token بعد إنشاء نقطة النهاية.
5
Select Events
تعرض Subscribed events الأحداث التي يدعمها موصل Windmill. احتفظ فقط بالأحداث التي يتعامل معها script أو flow الخاص بك.
6
Configure Transformation
ضمن Transformation code، عدّل المعالج بحيث تتطابق المفاتيح ذات المستوى الأعلى في الحمولة مع مدخلات script أو flow الخاص بك. ابدأ من الأمثلة.
7
Test & Create
ضمن Test this code، اختر نوع حدث وانقر على Simulate لمعاينة الحمولة. ثم انقر على Create endpoint.
8
Add the Windmill Token
بعد إنشاء نقطة النهاية مباشرة، افتح علامة التبويب Advanced الخاصة بها. ضمن Custom headers، انقر على Add header. أدخل
Authorization باعتباره الاسم، وأدخل Bearer، ثم مسافة، ثم token الخاص بك باعتبارها القيمة. بعد ذلك انقر على Save. إلى أن تحفظ الترويسة، يرفض Windmill عمليات التسليم، ويعيد Dodo Payments محاولة إرسالها وفق جدول إعادة المحاولة.يقبل Windmill أيضًا token في معلمة استعلام token في نهاية العنوان. يوصي Windmill باستخدام الترويسة، لأن أي شخص يمكنه رؤية عنوان يحتوي على token يستطيع استخدامه.9
Done
تبدأ الأحداث المشترك فيها الآن عمليات تشغيل script أو flow الخاص بك. لإرسال حدث اختباري، افتح علامة التبويب Testing لنقطة النهاية، واختر نوع حدث، وانقر على Send example. في Windmill، تظهر العملية في صفحة Runs مع المشغّل
Webhook.أمثلة على Transformation Code
يستبدل كل معالجwebhook.payload بكائن مسطّح ويحافظ على webhook.url، وهو عنوان webhook الخاص بـ Windmill. يمرّر Windmill كل مفتاح من المستوى الأعلى إلى إدخال script أو flow الذي يحمل الاسم نفسه، ولذلك يعرّف script الخاص بالمثال الأول مدخلات مثل event_type وpayment_id وamount. تكون مبالغ Dodo Payments بوحدة العملة الأصغر، ولذلك تقسم الأمثلة على 100 وترسل الناتج كسلسلة نصية، مثل "25.00". بالنسبة إلى العملات التي لا تستخدم الكسور العشرية مثل JPY وKRW، استخدم المبلغ كما هو.
حمولة سير العمل الأساسية
أرسل تفاصيل عملية دفع ناجحة:basic_workflow.js
معالج سير عمل الاشتراك
أرسل حدثsubscription_started أو subscription_cancelled عندما يصبح الاشتراك نشطًا أو يُلغى:
subscription_workflow.js
معالج سير عمل النزاع
أرسل كل حدث من أحداث النزاع، مع تعيينurgent إلى true عند فتح نزاع:
dispute_workflow.js
حالات استخدام Windmill الشائعة
Database Operations
Database Operations
- تحديث سجلات العملاء في PostgreSQL أو MySQL
- تسجيل أحداث الدفع في مستودع بيانات
- مزامنة البيانات مع الأنظمة الخارجية
- تحديث مستويات المخزون
- تتبع مقاييس التحليلات
Business Logic
Business Logic
- حساب مقاييس الإيرادات
- معالجة عمليات رد الأموال والتسويات
- التعامل مع تغييرات دورة حياة الاشتراك
- إنشاء التقارير وعمليات التصدير
- التحقق من بيانات الدفع
External Integrations
External Integrations
- إرسال البيانات إلى منصات التحليلات
- تحديث أنظمة CRM
- بدء حملات البريد الإلكتروني
- إنشاء أحداث التقويم
- إرسال إشعارات SMS
نصائح
- سمِّ مفاتيح الحمولة وفقًا لمدخلات script أو flow الخاص بك، لأن Windmill يربط كل مفتاح من المستوى الأعلى بالإدخال الذي يحمل الاسم نفسه.
- استخدم أسماء الحقول نفسها عبر الأحداث، بحيث يتمكن script واحد من التعامل مع عدة أنواع من الأحداث.
- أدرج نوع الحدث و
timestamp. يمكن أن تصل الأحداث بترتيب غير صحيح، ويتيحtimestampلـscript الخاص بك ترتيبها. - استخدم عنوان webhook غير المتزامن. ينتظر العنوان المتزامن انتهاء العملية، وتُعد العملية التي تتجاوز مهلة التسليم عملية تسليم فاشلة، ويعيد Dodo Payments محاولة إرسالها.
- اجعل script الخاص بك آمنًا عند تشغيله مرتين للحدث نفسه، لأن عمليات إعادة المحاولة قد تؤدي إلى تسليم الحدث أكثر من مرة.
- لتخطي حدث في التعليمات البرمجية، عيّن
webhook.cancel = trueقبل إرجاع webhook. تسجل السجلات عملية التسليم التي تم تخطيها على أنها ناجحة. - استخدم معالجات الأخطاء في Windmill لتلقي إشعار عند فشل عملية تشغيل.
استكشاف الأخطاء وإصلاحها
Workflows Not Triggering
Workflows Not Triggering
- تحقق من أن Endpoint URL هو عنوان webhook الخاص بـscript أو flow، وأن نقطة النهاية مفعّلة.
- تحقق من أن ترويسة
Authorizationتحتوي علىBearerوtoken صالح. لا يشغّل token المخصص لـwebhook سوى script أو flow الخاص به. - تحقق من نشر script أو flow. يشغّل webhook أحدث إصدار منشور، وليس المسودة.
- افتح علامة التبويب Logs ضمن Developer → Webhooks للاطلاع على استجابة Windmill لكل عملية تسليم.
Data Processing Issues
Data Processing Issues
- تحقق من أن المفاتيح ذات المستوى الأعلى في الحمولة تتطابق مع مدخلات script أو flow حسب الاسم.
- تحقق من أن كل قيمة تطابق نوع الإدخال الخاص بها. ترسل الأمثلة المبالغ كسلاسل نصية.
- تحقق من العملية في صفحة Runs في Windmill، بعد تصفيتها حسب المشغّل
Webhook. يستجيب العنوان غير المتزامن فور وضع Windmill العملية في قائمة الانتظار، ولذلك تعرض سجلات Dodo Payments عملية تسليم ناجحة حتى عند فشل العملية. - شغّل script أو flow في Windmill باستخدام حمولة من Simulate.