Webhooks
استقبل أحداث التفعيلات والإيجارات والمحفظة كاستدعاءات HTTPS مع توقيع HMAC.
لماذا Webhooks
الاستعلام مهدر: الاستعلام بأقل من ثانية محدود، والاستعلام كل عدة ثوانٍ يضيف زمن استجابة. Webhooks تدفع الأحداث لحظة وقوعها.
التسجيل
Account → Webhooks → New endpoint: عنوان HTTPS، أنواع الأحداث، استراتيجية إعادة المحاولة (exponential / linear / none). يُعرض سر التوقيع مرة واحدة.
الأحداث
activation.sms_received— تطابقت رسالة واردة مع تفعيلactivation.expired— أُغلقت النافذة بلا رمزactivation.finished— تم تأكيد التفعيلrent.sms_received— SMS وارد على إيجارwallet.credited/wallet.debited— حركة أموالsupport.message.received— رد وكيل في محادثة دعم
Payload
{
"event": "activation.sms_received",
"delivery_id": "b7e2c1a0-9f3d-4c5e-8a1b-2d3e4f5a6b7c",
"created_at": "2026-05-26T14:30:14Z",
"data": { "order_id": "9a1f2c3d-4e5b-6a7c-8d9e-0f1a2b3c4d5e", "phone": "+380635551822", "code": "123456", "service": "telegram" }
}
التحقق من التوقيع
الترويسة: X-Eveses-Signature: sha256=<hmac> (timestamp in X-Eveses-Timestamp). HMAC-SHA256 فوق <ts>.<raw-body> بسرّك.
$ts = $_SERVER['HTTP_X_EVESES_TIMESTAMP'] ?? '';
$sig = $_SERVER['HTTP_X_EVESES_SIGNATURE'] ?? '';
$expected = 'sha256=' . hash_hmac('sha256', $ts . '.' . file_get_contents('php://input'), $secret);
if (!hash_equals($expected, $sig) || abs(time() - (int) $ts) > 300) { http_response_code(401); exit; }
ارفض أي طلب أقدم من 5 دقائق (نافذة الإعادة).
إعادة المحاولة
التسليمات الفاشلة (non-2xx أو بلا رد خلال 10 ثوانٍ) تُعاد المحاولة وفق الاستراتيجية. Exponential: 30s، 2min، 10min، 1h، 6h، ثم dead. إعادة تشغيل يدوي من اللوحة.