مرجع الويب هوكس

ترسل صلة الويب هوكس من الخادم إلى الخادم مع تواقيع HMAC وترويسة زمنية وإعادة محاولات تلقائية.

الترويسات

text
X-Sela-Event: conversation.created
X-Sela-Delivery: whd_...
X-Sela-Timestamp: 1712345678901
X-Sela-Signature-Version: v1
X-Sela-Signature: <hex hmac sha256>

طريقة التوقيع

احسب HMAC-SHA256 باستخدام السر المخزّن لديك وعلى النص التالي: timestamp + '.' + rawBody

javascript
import crypto from "node:crypto";

const signedPayload = `${req.headers["x-sela-timestamp"]}.${rawBody}`;
const expected = crypto
  .createHmac("sha256", process.env.SELA_WEBHOOK_SECRET!)
  .update(signedPayload)
  .digest("hex");

أحداث الطلبات

اشترك في order.* لاستقبال كل أحداث طلبات المطاعم. تحتوي البيانات على معرف الطلب، الحالة، بيانات العميل، تفاصيل التسليم، ملخص الطلب، ومعرف الطلب الخارجي عند توفره.

text
order.created
order.approved
order.rejected
order.arrived
json
{
  "event": "order.created",
  "timestamp": 1712345678901,
  "data": {
    "id": "toolExecutions:...",
    "status": "pending",
    "conversationId": "conversations:...",
    "customer": {
      "name": "Ali",
      "phone": "+964..."
    },
    "fulfillment": {
      "type": "delivery",
      "address": "Al Mansour"
    },
    "orderSummary": "2 burgers, fries, delivery fee included",
    "specialInstructions": null,
    "externalOrderId": null
  }
}

إعادة المحاولات

إذا أعادت نقطتك حالة غير ناجحة أو انتهت المهلة، تعيد صلة المحاولة حتى 5 مرات بتراجع تصاعدي. يجب التعامل مع X-Sela-Delivery كمفتاح إزالة التكرار.