💳 دمج بوابة Paysky (Multi-App System)

الهدف من هذه الخطة هو تفعيل بوابة الدفع Paysky في مشروع meg-dash ليعمل بشكل مستقل تماماً عن kayan-api مع الاستمرار في استخدام نفس حساب التاجر (Merchant ID).

الهندسة البرمجية المقترحة:

  • عزل تام لقواعد البيانات والسيرفرات بين التطبيقين.
  • استخدام "نظام البادئات" (Prefix System) للتمييز بين العمليات في لوحة تحكم Paysky.
  • توجيه الـ Webhooks بناءً على البادئة (Prefix).

1. نظام البادئات (The Prefix System)

لمنع تداخل العمليات المالية وضمان توجيه كل عملية للتطبيق الصحيح، نعتمد البادئات التالية في حقل MerchantReference:

مشروع Kayan-API

يستخدم البادئة: KAYAN-

مثال: KAYAN-U10-O5

مشروع Meg-Dash

يستخدم البادئة: MEGA-

مثال: MEGA-U10-O5

2. إعدادات البيئة (Environment Config)

يجب إضافة مفاتيح الربط الخاصة بـ Paysky في ملف .env الخاص بمشروع Meg-Dash:

PAYSKY_MERCHANT_ID=10218642388
PAYSKY_TERMINAL_ID=50560894
PAYSKY_SECRET_KEY=36373762633331622D663333332D343663652D396434332D613532663131363765363230

3. المسارات (API Routes)

تتم إضافة المسارات التالية في ملف routes/api.php بمشروع Meg-Dash:

POST /api/v1/paysky/initiate

هذا المسار مخصص لاستخراج الهاش (Secure Hash) وبدء العملية. يجب أن يكون محمياً بـ auth:api.

POST /api/external/paysky/check-status

هذا المسار خارجي (Public) لاستقبال ردود بوابة Paysky والتحقق من حالة العملية.

4. معالجة العمليات (Controllers Logic)

يتم تعديل الـ Controllers لضمان التعامل مع البادئة الجديدة:

أ- إنشاء المرجع (Initiate Order):

$merchantReference = "MEGA-U{$user->id}-" . $currencyOffer->amount . "Diamonds-O{$currencyOffer->id}";

ب- التحقق من الحالة (Check Status):

يجب استخدام Regex للتحقق من أن العملية تخص Meg-Dash:

if (!preg_match('/^MEGA-U(\d+)-.*-O(\d+)$/', $merchantReference, $matches)) {
    return response()->json(['status' => 'error', 'message' => 'Invalid Prefix']);
}

5. خطوات الموبايل والفرونت إند

  • صفحة الدفع: تأكد من استخدام صفحة HTML5 المخصصة لـ Meg-Dash والتي تحتوي على مكتبة Paysky.
  • رابط التحقق: يجب تعديل الـ Listener في صفحة الدفع ليقوم بإرسال نتيجة العملية إلى السيرفر الجديد:
    https://mega-dash.com/api/external/paysky/check-status
  • تحديث الواجهة: بمجرد استلام رد "Success" من السيرفر، يتم تحديث رصيد المستخدم وإبلاغه بنجاح العملية.

6. الفوائد والمميزات

📊 فصل مالي

تظهر إحصائيات كل تطبيق منفصلة في لوحة تحكم Paysky عند البحث بالبادئة.

🔒 أمان عالي

لا يمكن تكرار أو سرقة أرقام العمليات بين التطبيقين بفضل اختلاف البادئات والتحقق منها برمجياً.

⚡ استقلالية

أي تعطل في سيرفر Kayan لن يؤثر إطلاقاً على سير عمليات الدفع في سيرفر Dash.