'error', 'message' => 'Unauthorized Access']); exit(); } // --- 2. قراءة البيانات المرسلة --- $json_data = file_get_contents('php://input'); $data = json_decode($json_data, true); if ($data === null || !isset($data['sender']) || !isset($data['message'])) { http_response_code(400); echo json_encode(['status' => 'error', 'message' => 'Invalid data received']); exit(); } // --- 3. استخراج البيانات والتحضير للمعالجة --- $sender = $data['sender']; $message_body = $data['message']; $received_at = date('Y-m-d H:i:s'); $log_entry = "[$received_at] From: $sender | Message: $message_body"; // --- 4. تحليل الرسالة (يركز على Orange Money فقط حالياً) --- // تعريف المتغيرات التي سنستخرجها $amount = 0; $payer_phone = null; $currency = null; // النمط الوحيد الفعّال حالياً: لرسائل Orange Money الأردنية $pattern_orangemoney_jo = '/تم استقبال حوالة مالية من (\d+)\s+من مزود الخدمة:\s+Orange Money إلى محفظتك بمبلغ ([\d,.]+)\s+دينار/'; /* // أنماط أخرى يمكن تفعيلها لاحقاً // $pattern_chambank = '/حوالة واردة خارجية بمبلغ\s+([\d,.]+)\s+ليرة سورية/'; // $pattern_wallet_syr = '/تم استلام مبلغ ([\d,.]+) ل\.س من الرقم (09\d{8})/'; */ if (preg_match($pattern_orangemoney_jo, $message_body, $matches)) { // --- تطابق نمط Orange Money الأردني --- $payer_phone = $matches[1]; $amount_str = $matches[2]; $amount = (float) str_replace(',', '', $amount_str); $currency = 'JOD'; // دينار أردني $log_entry .= " | MATCH: Orange Money JO | SUCCESS: Parsed Amount = $amount, Payer Phone = $payer_phone, Currency = $currency" . PHP_EOL; // TODO: اكتب منطق قاعدة البيانات هنا /* - ابحث عن معاملة "pending" تطابق المبلغ $amount ورقم الهاتف $payer_phone. - $sql = "UPDATE transactions SET status = 'completed' WHERE amount = ? AND phone_number = ? AND currency = 'JOD' AND status = 'pending' LIMIT 1"; */ } else { // إذا لم تتطابق الرسالة مع نمط Orange Money $log_entry .= " | INFO: Message did not match the Orange Money pattern. Ignored." . PHP_EOL; } // كتابة كل شيء في ملف السجل (بالمسار المطلق) $logDir = __DIR__ . '/../../logs'; if (!is_dir($logDir)) @mkdir($logDir, 0777, true); file_put_contents($logDir . '/sms_webhook_log.txt', $log_entry, FILE_APPEND); // --- 5. إرسال رد إلى تطبيق الأندرويد --- http_response_code(200); echo json_encode(['status' => 'success', 'message' => 'Data received and processed.']); ?>