💳 دمج بوابة 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:
/api/v1/paysky/initiate
هذا المسار مخصص لاستخراج الهاش (Secure Hash) وبدء العملية. يجب أن يكون محمياً بـ auth:api.
/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.