تخطَّ إلى المحتوى
شركاء زد
برامج المطوريننظرة عامة على كل مسارات البناء على زدشركاء التطبيقاتانشر تطبيقك في سوق التطبيقاتشركاء الثيماتأطلق ثيمك في سوق الثيمات
سوق التطبيقاتالتطبيقات المتاحة لتجار زدسوق الثيماتثيمات جاهزة للتثبيت
الدعم
مركز مساعدة الشركاءأدلة الاستخدام وحل المشاكلالتوثيق التقنيالواجهات والـSDK وأدلة التكاملاحجز اجتماعًااجتماع تجاري أو دعم تقني
ما الجديد؟
المدونةأدلة وتحديثات للمطورينسجل التحديثاتآخر تحديثات منصة الشركاءاقترح ميزةبوابة الملاحظات والأفكار
تمكين الشريك
إعلانات الشركاءباقات ظهور في قنوات زدالثيمات المخصصةثيمات تبنيها لتاجر بعينهمجتمع الشركاءتواصل مع مطوّرين يبنون على زد
مكتبة زد
تقارير زدكل ما تحتاج معرفته عن السوقأدلة المطورينمراجع رسمية تبني عليها
ENتسجيل الدخولانضم كشريك الآن
برامج الشركاء
برامج المطورينشركاء التطبيقاتشركاء الثيمات
تصفّح السوق
سوق التطبيقاتسوق الثيمات
الدعم والتمكين
مركز مساعدة الشركاءالتوثيق التقنياحجز اجتماعًاالمدونةسجل التحديثاتاقترح ميزةإعلانات الشركاءالثيمات المخصصةمجتمع الشركاءتقارير زدأدلة المطورين
اللغة
English
تسجيل الدخولانضم كشريك الآن
الرئيسية/المدونة/الواجهات والتكامل
الواجهات والتكامل

الـ Webhooks في زد: الاشتراك، ومتابعة الصحة، واستعادة الروابط المعطّلة

اشترك في أحداث المتجر، وحافظ على سلامة روابطك، وأعِد أي webhook معطّل إلى العمل باستخدام أدوات تتبّع الصحة والاستعادة في زد.

21 سبتمبر 20264 دقائق

لماذا الـ Webhooks؟

تتيح الـ Webhooks لزد أن تُبلغ تطبيقك فور وقوع حدث في المتجر، مثل طلب جديد أو تحديث منتج أو تسجيل دخول عميل، فلا تحتاج إلى سؤال الـ API مرة بعد مرة. وهذا مهم لأن زد تسمح بـ 60 طلبًا في الدقيقة لكل تطبيق في كل متجر، وتطلب صراحة ألا تستعلم باستمرار عن حالة الطلبات أو الدفع.

الأحداث نوعان:

  • أحداث المتجر (الطلبات، المنتجات، السلال المتروكة، العملاء، التصنيفات): تشترك فيها لكل متجر عبر Merchant API.
  • أحداث اشتراك التطبيق، مثل app.market.application.install وapp.market.subscription.active وapp.market.application.uninstall: تضبطها من قسم Webhooks في صفحة تطبيقك بلوحة الشركاء، مع رابط الاستقبال و Headers إضافية إن احتجت.
في تطبيقات الشحن، يوضح مركز المساعدة أن زد تنشئ الـ Webhooks بنفسها، وكل ما عليك هو الاشتراك في الأحداث من حساب الشريك وإدخال رابط الاستقبال والـ Header.

أحداث المتجر المتاحة

  • الطلبات: order.create وorder.status.update وorder.payment_status.update
  • المنتجات: product.create وproduct.update وproduct.publish وproduct.delete
  • السلال المتروكة: abandoned_cart.created وabandoned_cart.completed
  • العملاء: customer.create وcustomer.update وcustomer.merchant.update وcustomer.login
  • التصنيفات: category.create وcategory.update وcategory.delete

يقبل الحدثان order.create وorder.status.update شروطًا (conditions) تصفّي الأحداث فلا يصلك إلا ما يهمك. المفاتيح المدعومة هي delivery_option_id وstatus وpayment_method:

{
  "conditions": {
    "delivery_option_id": "55",
    "payment_method": "Cash On Delivery"
  }
}

تحتاج حدثًا أو شرطًا غير متوفر بعد؟ ترحّب زد باقتراحاتك عبر دعم سوق التطبيقات.

إنشاء الاشتراكات وعرضها وحذفها

كل نقاط الـ Webhooks تتطلب الـ Headers Authorization وX-Manager-Token. الإنشاء والحذف يحتاجان الصلاحية third_webhook_write، والعرض يحتاج third_webhook_read.

POST   /v1/managers/webhooks
GET    /v1/managers/webhooks
DELETE /v1/managers/webhooks?original_id=2404
  • الإنشاء يتطلب event وtarget_url وoriginal_id، أما conditions وusername وpassword فاختيارية.
  • العرض يعيد الـ Webhooks التي اشترك فيها تطبيقك لذلك المتجر.
  • الحذف يزيل الـ webhook عبر original_id. أما نقطة الحذف القديمة حسب المشترك (subscriber) فمعلَّمة كمتوقفة (deprecated).

إذا حدّدت username وpassword، ترسل زد كل إشعار مع Header Authorization: Basic تحمل username:password مرمّزة بـ Base64. تحقق منها في الـ Server الخاص بك لتتأكد أن الطلب قادم من زد فعلًا.

لا تستطيع إنشاء order.status.update؟ يوضح مركز المساعدة أنك إن كنت اشتركت فيه من قسم Webhooks في صفحة تطبيقك بلوحة الشركاء، فلا حاجة للاشتراك مرة أخرى.

كيف يعمل تتبّع الصحة

تراقب زد كل رابط استقبال بنمط circuit breaker، ولكل webhook حقل health_status:

  • healthy: الإرسال يتم كالمعتاد.
  • degraded: 10 إخفاقات أو أكثر خلال الساعة الماضية. تستمر زد في المحاولة، لكن عليك أن تبحث في السبب.
  • broken: 30 إخفاقًا أو أكثر خلال الساعة الماضية. يتوقف الإرسال حتى تستعيد الـ webhook.

تُحسب الإخفاقات في نافذة متحركة مدتها ساعة. الاستجابة بغير 2xx، أو انتهاء مهلة الاتصال، أو أي خطأ مشابه يُعدّ إخفاقًا، وأي إرسال ناجح واحد يصفّر العدّاد ويعيد الحالة إلى healthy. أما الاستجابة 429 فلا تُحتسب إخفاقًا، لأنها تعني أن رابطك يعمل لكنه يحدّ من الطلبات.

وقبل تسجيل أي إخفاق، تعيد زد محاولة الإرسال حتى 3 مرات: بعد دقيقة، ثم بعد 5 دقائق، ثم بعد 15 دقيقة. ولا يُحتسب الإخفاق ضمن الحدود إلا إذا فشلت المحاولات كلها.

الـ Webhooks المعطّلة واستعادتها

حين يتعطّل webhook، تتوقف زد عن إرسال أي أحداث جديدة إليه، وتتخلص من الأحداث المعلّقة التي لم تُسلَّم بعد. ويصلك كل ساعة بريد مجمّع بعنوان "Action Required: Your webhook endpoints are failing" ومعه ملف broken_webhooks.csv يسرد كل webhook معطّل ومتجره وحدثه ورابطه وتوقيتات إخفاقه.

يبقى الـ webhook معطّلًا حتى تستعيده عبر الـ API. استخدم GET /v1/managers/webhooks/health-summary لترى عدد الـ Webhooks في كل حالة بسرعة، وGET /v1/managers/webhooks/broken للقائمة الكاملة، ثم نفّذ الاستعادة:

POST /v1/managers/webhooks/broken/recover

{
  "webhooks": [
    {
      "broken_webhook_id": "{{webhook_uuid}}",
      "target_url": "https://your-new-endpoint.example.com/hook"
    }
  ]
}
  • يجب أن تقدّم target_url جديدًا. إعادة استخدام الرابط القديم مرفوضة، لأن زد تريد ما يؤكد أنك عالجت المشكلة.
  • تحذف زد الـ webhook المعطّل حذفًا ناعمًا (soft-delete)، وتنشئ webhook جديدًا للحدث نفسه يبدأ بعدّاد إخفاقات نظيف.
  • النجاح الجزئي مدعوم، فتعثّر عنصر واحد لا يوقف بقية الدفعة.

ممارسات جيدة لرابط الاستقبال

  • استخدم HTTPS مع TLS حديث: تتحقق لوحة الشركاء من الروابط، وتتوقع TLS 1.2 أو 1.3، وشهادة صالحة، و Server متاحًا للعامة، ومصافحة TLS تكتمل خلال 5 ثوانٍ.
  • أكّد الاستلام بسرعة: أعِد استجابة 2xx فورًا، ونفّذ المعالجة الثقيلة في الخلفية، حتى لا يتحول البطء إلى إخفاقات محسوبة.
  • توقّع التكرار: بسبب إعادة المحاولات قد يصلك الحدث نفسه أكثر من مرة، فاجعل معالجتك آمنة عند التكرار.
  • استخدم 429 عند الضغط: إن امتلأت طاقتك فاستجابة 429 لا تدفعك نحو حالة broken.
  • راقب الصحة باستمرار: استعلم عن ملخص الصحة، وتابع رسائل الإخفاق، وراجع Webhook Logs في لوحة الشركاء، حيث تستطيع عرض عمليات الإرسال وإعادة محاولتها.
  • اختبر على متجر تطوير: نفّذ إجراءات حقيقية، وتأكد أن كل حدث مشترك فيه يصل قبل أن ترسل تطبيقك للمراجعة.
تنبّه زد إلى أن Logs الـ Webhooks قد لا تلتقط كل حدث عند وقوع أخطاء أو تعطّل النظام، فاحتفظ بالـ Logs الخاصة بك الخاصة أيضًا.

الخلاصة

  • اشترك في أحداث المتجر عبر POST /v1/managers/webhooks، وفي أحداث اشتراك التطبيق من لوحة الشركاء.
  • 10 إخفاقات أو أكثر في ساعة تعني degraded، و30 أو أكثر تعني broken ويتوقف الإرسال.
  • استعد الـ webhook المعطّل عبر الـ API برابط استقبال جديد.
  • استجب بـ 2xx سريعًا، وتعامل مع التكرار بأمان، وراقب الصحة باستمرار.

المصادر

  1. Webhooks Overview
  2. Webhook Health Tracking
  3. List Webhooks
  4. Create Webhook
  5. Delete Webhook
  6. Delete Webhook By subscriber
  7. Health Summary
  8. Broken Webhooks
  9. Recover Broken Webhooks
  10. App Management Events
  11. Rate Limiting
  12. How to create webhooks for my app ?
  13. Can't create webhook order.status.update
  14. Invalid "TLS URL Error" in the Partner Dashboard
  15. Explore Partner Dashboard

ابدأ البناء على زد

سجّل بنفسك في بوابة الشركاء، وطوّر واختبر على متجر تجريبي.

أنشئ حسابك ←

جدول المحتويات

  1. لماذا الـ Webhooks؟
  2. أحداث المتجر المتاحة
  3. إنشاء الاشتراكات وعرضها وحذفها
  4. كيف يعمل تتبّع الصحة
  5. الـ Webhooks المعطّلة واستعادتها
  6. ممارسات جيدة لرابط الاستقبال

شارك المقال

ابدأ البناء

مقالات ذات صلة

←
الواجهات والتكامل

التطبيقات المدمجة في زد: ابنِ تجربتك داخل لوحة تحكم التاجر

كيف يعمل تطبيقك داخل لوحة تحكم التاجر، وخطوات الـ Authentication الست، والأدوات التي تساعدك: Zid MUI وZid SDKs وأحداث واجهة المتجر.

6 دقائق
الواجهات والتكامل

الاتصال بزد عبر OAuth 2.0: الـ Tokens والـ Headers وسياسة التفعيل

كيف يعمل تدفق authorization code في زد، وأي Token يوضع في أي Header، ومتى تنتهي صلاحية الـ Tokens، وماذا تتوقع سياسة التفعيل من تطبيقك.

4 دقائق
تحديثات المطورين

واجهة Account API: كيف تنتقل من GET v1/managers/profile

توقف زد GET v1/managers/profile، وموعد الانتقال 30 سبتمبر 2026. تعرّف على نقاط Account API الجديدة ونطاقاتها وقائمة خطوات الانتقال.

5 دقائق
شركاء زد

برامج الشركاء

برامج المطورينشركاء التطبيقاتشركاء الثيماتأنشئ حسابك

الموارد

المدونةإعلانات الشركاءتقارير زدالتوثيق التقنيمركز مساعدة الشركاءسجل التحديثاتاقترح ميزة

تصفّح السوق

سوق التطبيقاتسوق الثيمات

الشروط والسياسات

شروط شركاء التطبيقاتشروط شركاء الثيماتسياسة الثيمات التجاريةسياسة الخصوصية

تواصل معنا

احجز اجتماعًا تجاريًااحجز اجتماع دعم تقنيمجتمع مصممي الثيمات
زد — القدرة التقنية للتقنية والاتصالاتEnglish
Al-Qudrah Al-Taqniyah for Technology and Communication Companyرقم السجل التجاري 1010365366رقم ضريبة القيمة المضافة 300827827900003