⚡

نظام الربط والتكامل

Dispatch ↔ Accurate Middleware

👤
🔒
⚡

منصة الربط والتكامل

Dispatch ↔ Accurate
جاري الفحص...
Admin
🔄

عملية نقل البيانات نشطة ومباشرة

يتم فحص ونقل الشحنات تلقائياً كل 60 ثانية.

إجمالي الشحنات 📦
0
مسجلة في قاعدة البيانات
تم النقل بنجاح (Sent) ✅
0
تم إنشاؤها على نظام أكيوريت
في الانتظار (Pending) ⏳
0
جاهزة للنقل في الدورة القادمة
فشل النقل (Failed) ❌
0
تحت محاولات الإعادة التلقائية
خطأ في البيانات ⚠️
0
Validation Failed (بيانات ناقصة)
الهوك المستلم (Webhooks) ⚡
0
تحديثات واردة من أكيوريت

سجل محاولات الربط والتكامل (Logs History)

يعرض هذا الجدول أرشيف المحاولات السابقة. الأخطاء القديمة التي تم إصلاحها وإعادة إرسالها بنجاح يظهر عليها "تم حلها وإرسالها ✅".
الاتجاه العميل العملية رقم الشحنة AWB الحالة التاريخ والوقت
جاري تحميل البيانات...
🔍

نتائج البحث (0 شحنة)

صفحة 1 من 1
رقم الشحنة (Dispatch AWB) رقم الشحنة عند أكيوريت اسم المرسل إليه ورقم التليفون حالة النقل المحاولات تاريخ الإنشـاء إجراءات
قم بإجراء بحث لعرض الشحنات
الصفحة 1 من 1
⚡

نقطة استقبال الهوك من أكيوريت (Accurate Webhook Endpoint)

يستقبل هذا الروابط التحديثات الفورية لحالات الشحنات من أكيوريت ليتم تحديثها مباشرة في نظام الديسباتش.

https://your-domain.com/api/webhooks/accurate

آخر الريكويستات الواردة على الهوك

# ID اسم العميل معرف الحدث (Event Key) رقم AWB بالديسباتش كود أكيوريت الحالة المعالجة تاريخ الاستلام تفاصيل Payload
جاري تحميل سجلات الهوك...

معلومات وتفاصيل الخادم

بيئة التشغيل (Environment) development
منفذ الخادم (Port) 6501
إصدار Node.js v18.0.0
مدة التشغيل المستمر (Uptime) 0 ثانية
وضع التجربة (Dry-Run Mode) معطل
اتصال قاعدة البيانات SQL Server متصل ✅

🔑 تغيير كلمة مرور المشرف (Admin Password)

خريطة ربط الحالات (Status Mappings)

كود أكيوريت معرف حالة الديسباتش معرف السبب (Reason ID) الحالة التشغيلية
جاري تحميل خريطة الحالات...

إدارة العملاء والشركات المتعددة (Multi-Client Management)

كود العميل اسم العميل / الشركة حالة الحساب إجمالي الشحنات تم النقل (Sent) رابط الهوك المستقل إجراءات الإدارة
جاري تحميل قائمة العملاء...
دليل المواصفات الفنية v1.0

⚡ دليل استخدام واستقبال الويب هوك (Accurate Webhook Endpoint)

المواصفات الفنية الكاملة والتعليمات لاستقبال إشعارات وتحديثات حالات الشحنات تلقائياً في نظام Dispatch من نظام Accurate.

📥 تحميل كراسة التوثيق الرسمية (PDF)
كود العميل: {CLIENT_CODE}
البروتوكول: HTTP POST
تنسيق المحتوى: application/json
التوجيه: Accurate ➔ Integration Middleware ➔ Dispatch

1. تفاصيل الاتصال (Endpoint Connection Details)

يستقبل هذا الرابط طلبات الـ Webhook القادمة من نظام Accurate لتحديث حالة الشحنات تلقائياً في نظام Dispatch:

POST https://accurateintegration.com-eg.net/api/webhooks/accurate?client={CLIENT_CODE}
عنصر الاتصال القيمة / التنسيق ملاحظات واشتراطات
HTTP Method POST يجب إرسال الطلب عبر بروتوكول POST حصراً
Content-Type application/json يجب أن يكون محتوى الطلب بتنسيق JSON
Query Parameter client={CLIENT_CODE} يحدد كود العميل المتلقي للإشعار في النظام
Header (اختياري/أمني) X-Webhook-Secret مفتاح السر الخاص بالعميل للتحقق من المصدر (في حال تفعيله في حسابك)

2. هيكل البيانات المتوقع (JSON Payload Schema)

{
  "eventKey": "evt_20260915_987654321",
  "refNumber": "SHP-2026-001234",
  "shipmentId": "ACC-884920",
  "statusCode": "OTD",
  "status": "Out for Delivery",
  "timestamp": "2026-09-15T00:37:59Z",
  "notes": "الشحنة مع المندوب وفي الطريق للعميل",
  "driver": {
    "name": "أحمد محمود",
    "phone": "+201012345678"
  }
}

3. جدول تفاصيل الحقول والبدائل المقبولة

الحقل الرئيسي البدائل المقبولة النوع الحالة الوصف والتفاصيل
refNumber ref_number, awb, AWB, RefNumber String إجباري رقم البوليصة / التتبع الخاص بالشحنة في النظام
statusCode status_code, status, Status, StatusCode String إجباري كود الحالة الصادر من Accurate (مثل OTD, PKD, RTRN)
shipmentId id, shipment_id, ShipmentId String/Number اختياري معرف الشحنة الداخلي لدى نظام Accurate
eventKey event_key String اختياري معرف فريد للحدث لمنع التكرار (Idempotency Key)
timestamp updatedAt, eventDate String اختياري تاريخ ووقت تحديث الحالة بتنسيق ISO-8601
notes reason, comment String اختياري ملاحظات المندوب أو سبب الاستثناء / عدم التسليم

4. جدول تحويل أكواد الحالات (Accurate ➔ Dispatch Mapping)

كود Accurate الوصف باللغة العربية حالة Dispatch المقابلة تأثير الحالة على الشحنة
PKD / PKH / PKM تم الاستلام من الراسل / المستودع / المندوب Picked Up (Status 12) تحديث الشحنة كـ مستلمة جاري معالجتها
OTD خرج للتسليم مع المندوب Out For Delivery (Status 4) تحديث الشحنة أنها في الطريق مع مندوب التسليم
RCV / HTR / STD وصل المركز الرئيسي / تحويل بين الفروع / مخزنة Received at hub (Status 3) دخول الشحنة لمقر الفرز والتوزيع الرئيسي
PRP / PRPD تم تجهيز الشحنة / انطلاق للمركز Departed (Status 2) جاهزية الشحنة والانطلاق في خط السير
DEX / RJCT استثناء تسليم / رفض الاستلام Not Delivered (Status 6) تسجيل محاولة تسليم غير ناجحة أو رفض الاستلام
OTR / RITS / PKR راجع في الطريق / مرتجع ترانزيت To Be Returned (Status 7) الشحنة في رحلة العودة إلى مقر الراسل
RTRN / RTS مرتجع نهائي / تسليم للمرسل Returned To Shipper (Status 8) إعادة الشحنة نهائياً وتسليمها للراسل
BMR / BMT مفقود ترانزيت / مفقود مرجع Lost (Status 9) تسجيل الشحنة كمفقودة أثناء الترانزيت أو الراجع

5. أمثلة الاستدعاء البرمجية (Code Snippets)

أمر cURL لإرسال الطلب من السطر الأوامر (Terminal / Bash)
curl -X POST "https://accurateintegration.com-eg.net/api/webhooks/accurate?client={CLIENT_CODE}" \
  -H "Content-Type: application/json" \
  -H "X-Webhook-Secret: YOUR_SECRET_HERE" \
  -d '{
    "eventKey": "evt_1001",
    "refNumber": "AWB123456789",
    "shipmentId": "SHP98765",
    "statusCode": "OTD",
    "notes": "خرج للتسليم مع المندوب"
  }'
كود Node.js باستعمال مكتبة Axios
const axios = require('axios');

const url = 'https://accurateintegration.com-eg.net/api/webhooks/accurate?client={CLIENT_CODE}';
const data = {
  eventKey: `evt_${Date.now()}`,
  refNumber: 'AWB123456789',
  statusCode: 'PKD',
  notes: 'تم استلام الشحنة بنجاح'
};

axios.post(url, data, {
  headers: {
    'Content-Type': 'application/json',
    'X-Webhook-Secret': 'YOUR_SECRET_HERE'
  }
})
.then(res => console.log('Response:', res.data))
.catch(err => console.error('Error:', err.response?.data || err.message));
كود Python باستعمال مكتبة Requests
import requests

url = "https://accurateintegration.com-eg.net/api/webhooks/accurate?client={CLIENT_CODE}"
payload = {
    "eventKey": "evt_998877",
    "refNumber": "AWB123456789",
    "statusCode": "RTRN",
    "notes": "العميل رفض الاستلام"
}
headers = {
    "Content-Type": "application/json",
    "X-Webhook-Secret": "YOUR_SECRET_HERE"
}

response = requests.post(url, json=payload, headers=headers)
print(response.status_code, response.json())
كود PHP باستعمال cURL Native
<?php
$url = "https://accurateintegration.com-eg.net/api/webhooks/accurate?client={CLIENT_CODE}";
$data = array(
    "eventKey" => "evt_" . time(),
    "refNumber" => "AWB123456789",
    "statusCode" => "OTD",
    "notes" => "خرج للتسليم مع المندوب"
);

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json',
    'X-Webhook-Secret: YOUR_SECRET_HERE'
));

$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

echo "HTTP Code: " . $httpCode . "\n";
echo "Response: " . $response;
?>

6. استجابات السيرفر ومعالجة الأخطاء (Server Responses)

💡
ملاحظة هامة جداً لمنع دحرجة المحاولات (Retry Storm Prevention):
يقوم السيرفر بحفظ كافة البيانات الخام المستلمة فور وصولها في قاعدة البيانات أولاً، ثم يعيد استجابة HTTP 200 دائماً لمنع دحرجة الطلبات وإعادتها المتكررة من السيرفر الراسل (Retry Storm).
حالة الاستجابة (Status Code) محتوى الاستجابة (JSON Body) الشرح والتفسير التشغيلي
HTTP 200 OK {"received": true, "processed": true} تم استلام الحدث ومعالجته وتحديث نظام Dispatch بنجاح.
HTTP 200 OK {"received": true, "duplicate": true} حدث مكرر (تم استلامه وحفظه سابقاً)، تم تجاهل المعالجة المكررة لمنع تكرار الأحداث.
HTTP 200 OK {"received": true, "warning": "Missing AWB"} البيانات مستلمة ومحفوظة لكن ينقصها رقم الشحنة AWB المطلوب لمعالجتها.
HTTP 401 Unauthorized {"error": "Invalid webhook secret"} فشل التحقق من مفتاح الأمان السري الخاص بالعميل عند تفعيل خيار المصادقة.
🧪

7. محاكي ومختبر إرسال الويب هوك التفاعلي (Live Webhook Tester)

اختبار مباشر على السيرفر

يمكنك استخدام هذا المحاكي لااختبار إرسال إشعار Webhook تجريبي اختباري مباشرة إلى السيرفر ومشاهدة الاستجابة الفعلية وسجل المعالجة في الوقت الحقيقي.

نتيجة الاستجابة الحية من السيرفر: HTTP 200 OK

تفاصيل الشحنة

إضافة عميل جديد

1️⃣ البيانات الأساسية للعميل

2️⃣ إعدادات الربط بنظام الديسباتش (Dispatch API)

3️⃣ إعدادات الربط بنظام أكيوريت (Accurate API)

4️⃣ إعدادات حماية الهوك (Webhook Security)

إذا تم تحديده، سيشترط السيرفر إرسال هذا المفتاح في الهيدر x-webhook-secret للتحقق من طلبات الهوك الخاصة بهذا العميل.

إدارة مستخدمي العميل:

إضافة حساب مستخدم جديد للعميل

الحسابات المسجلة للعميل:

# ID اسم المستخدم الدور الحالة تاريخ الإنشاء
جاري تحميل مستخدمي العميل...