Skip to content

الإشعارات والدفع

إشعارات داخل التطبيق

البادئة: /v1/notifications. المصادقة: عميل (Authorization: Bearer).

الطريقةالمسارالغرض
GET/v1/notificationsصندوق الوارد بصفحات
GET/v1/notifications/sseبث مباشر (text/event-stream)
PATCH/v1/notifications/read-allتعليم الكل مقروءاً
PATCH/v1/notifications/:notificationId/readتعليم واحد مقروءاً

القائمة

الاستعلام: page، limit، واختياري status = unread | read.

results:

الحقلالمعنى
data[]الإشعارات
pagination{ total, page, limit, hasMore }
unreadCountرقم الشارة

كل إشعار:

الحقلالمعنى
_idلتعليم القراءة
typeمفتاح ثابت (انظر أدناه)
statusunread | read
title، body{ "en", "ar" } — اختر حسب Accept-Language
dataحمولة رابط اختياري (orderId، orderNumber، ticketNumber، url، …)
createdAtطابع ISO

قيم type (العميل)

typeمتى
order.placedأُنشئ الطلب
order.confirmedقبله المتجر
order.preparingبدأ الالتقاط
order.out_for_deliveryالسائق في الطريق
order.deliveredتم التوصيل
order.delivery_failedفشلت الزيارة
order.cancelledأُلغي
order.refundedاسترداد
points.earned / points.redeemed / points.expiringالولاء
wallet.credited / wallet.debitedالمحفظة
coupon.receivedمُنح كوبون
offer.expiringعرض ينتهي
review.requestedطلب تقييم
subscription.activated / expiring / expiredبرو
account.welcome / account.password_changedالحساب
campaign.messageحملة تسويقية
support.ticket_created / support.replied / support.resolvedالدعم

SSE

http
GET /v1/notifications/sse
Authorization: Bearer <accessToken>
Accept: text/event-stream

هذا ليس غلاف JSON. الإطارات:

event: notification
data: { ...كائن الإشعار... }

data بنفس شكل صف الصندوق. أبقِ الاتصال مفتوحاً. أعد الاتصال بتراجع عند الانقطاع.

لا يوجد SSE لإشعارات الملتقط/السائق. تطبيقات التجهيز تستطلع طوابيرها.

رموز الدفع

الطريقةالمسارالمصادقةالجسم
POST/v1/push/registerعميل{ "token": "...", "platform": "ios" | "android" }

token من 10 إلى 256 حرفاً.

إرسال FCM غير مكتمل الإعداد. تسجيل الرمز آمن؛ لا تفترض وصول دفع الحملات حتى يفعّل التشغيل FCM.