Webhooks

تلقَّ إشعارات في الوقت الفعلي عند حدوث أحداث في نشاطك التجاري.

مقدمة

تتيح لك webhooks تلقي إشعارات HTTP على خادمك عند حدوث أحداث مهمة، مثل:

  • إنشاء حجز جديد
  • إلغاء حجز
  • اكتمال دفع
  • تسجيل عميل جديد

بدلاً من الاستعلام الدوري للواجهة (polling)، يتلقى خادمك البيانات تلقائياً عند حدوث الأحداث.

1

يحدث حدث

عميل يقوم بحجز

2

SalonBookIt يُبلغ

نرسل POST إلى عنوانك

3

خادمك يعالج

تحديث نظامك

الإعدادات

كوّن webhooks من لوحة التحكم:

  1. اذهب إلى الإعدادات → التكاملات
  2. في قسم Webhooks, انقر على إضافة Webhook
  3. أدخل عنوان URL لنقطة النهاية (يجب أن يكون HTTPS)
  4. اختر الأحداث التي تريد تلقيها
  5. احفظ وانسخ Secret للتحقق من التوقيعات
متطلبات العنوان
  • يجب استخدام HTTPS (ليس HTTP)
  • يجب أن يكون متاحاً للعامة
  • يجب أن يستجيب في أقل من 10 ثوانٍ

تنسيق البيانات

يتضمن كل webhook البنية التالية:

JSON
{
    "id": "evt_abc123xyz789",
    "type": "booking.created",
    "created": "2024-01-20T10:30:00Z",
    "tenant_id": "uuid-del-tenant",
    "data": {
        // بيانات الحدث (تختلف حسب النوع)
    }
}

حقول webhook

الحقل النوع الوصف
id string معرف فريد للحدث (للعدمية)
type string نوع الحدث (مثال: booking.created)
created string الطابع الزمني ISO 8601 للحدث
tenant_id string UUID للنشاط التجاري
data object بيانات محددة للحدث

رؤوس الطلب

يتضمن كل webhook هذه الرؤوس:

Header الوصف
Content-Type application/json
X-SalonBookIt-Signature توقيع HMAC للتحقق من الأصالة
X-SalonBookIt-Event نوع الحدث
X-SalonBookIt-Delivery معرف التسليم (للتصحيح)
X-SalonBookIt-Timestamp الطابع الزمني لوقت الإرسال

الاستجابة المتوقعة

يجب أن يستجيب خادمك برمز 2xx (200، 201، 202، 204) للإشارة إلى أن webhook تم استلامه بشكل صحيح.

HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json

{"received": true}
استجب بسرعة

استجب قبل 10 ثوانٍ. إذا كنت بحاجة لمعالجة بيانات ثقيلة، احفظ الحدث وعالجه بشكل غير متزامن.

سياسة إعادة المحاولة

إذا لم يستجب خادمك أو أعاد خطأ (4xx أو 5xx)، نعيد المحاولة تلقائياً:

المحاولة الانتظار
1 فوري
2 5 دقائق
3 30 دقيقة
4 ساعتان
5 24 ساعة (نهائي)

بعد 5 محاولات فاشلة، يتم تعليم webhook كفاشل ولا تتم إعادة المحاولة. يمكنك رؤية webhooks الفاشلة في لوحة التحكم.

الخطوات التالية