Webhooks
تلقَّ إشعارات في الوقت الفعلي عند حدوث أحداث في نشاطك التجاري.
مقدمة
تتيح لك webhooks تلقي إشعارات HTTP على خادمك عند حدوث أحداث مهمة، مثل:
- إنشاء حجز جديد
- إلغاء حجز
- اكتمال دفع
- تسجيل عميل جديد
بدلاً من الاستعلام الدوري للواجهة (polling)، يتلقى خادمك البيانات تلقائياً عند حدوث الأحداث.
يحدث حدث
عميل يقوم بحجز
→
SalonBookIt يُبلغ
نرسل POST إلى عنوانك
→
خادمك يعالج
تحديث نظامك
الإعدادات
كوّن webhooks من لوحة التحكم:
- اذهب إلى الإعدادات → التكاملات
- في قسم Webhooks, انقر على إضافة Webhook
- أدخل عنوان URL لنقطة النهاية (يجب أن يكون HTTPS)
- اختر الأحداث التي تريد تلقيها
- احفظ وانسخ 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 الفاشلة في لوحة التحكم.