Files
Siro/loction_server/test_order.php
2026-06-29 23:09:43 +03:00

87 lines
4.6 KiB
PHP

<?php
//test_order.php
// إعدادات الاتصال
$socketUrl = 'http://127.0.0.1:2021';
$INTERNAL_KEY = trim(file_get_contents('/home/location/.internal_socket_key'));
// 🔴 هام: ضع آيدي السائق الفعلي هنا
$targetDriverId = '34feffd3fa72d6bee56b';
// إحداثيات وهمية (عمان)
$pickupLat = 32.07374322273893;
$pickupLng = 36.09692047770945;
$dropLat = 31.963158; // العبدلي
$dropLng = 35.930359;
// =================================================================================
// بناء المصفوفة (Payload) بنفس ترتيب الفهارس (Indexes) في تطبيق Flutter
// =================================================================================
$fakeOrderList = [];
$fakeOrderList[0] = (string)$pickupLat; // myList[0]: Passenger Lat
$fakeOrderList[1] = (string)$pickupLng; // myList[1]: Passenger Lng
$fakeOrderList[2] = "53.50"; // myList[2]: Payment Amount (Total)
$fakeOrderList[3] = (string)$dropLat; // myList[3]: Destination Lat
$fakeOrderList[4] = (string)$dropLng; // myList[4]: Destination Lng (Also used as Price in some views, but mostly coords)
$fakeOrderList[5] = "8.9 km"; // myList[5]: Distance Text
$fakeOrderList[6] = $targetDriverId; // myList[6]: Driver ID
$fakeOrderList[7] = "55"; // myList[7]: Passenger ID
$fakeOrderList[8] = "Hamza Passenger"; // myList[8]: Passenger Name
$fakeOrderList[9] = "PASSENGER_FCM_TOKEN_XYZ"; // myList[9]: Passenger Token
$fakeOrderList[10] = "0791234567"; // myList[10]: Passenger Phone
$fakeOrderList[11] = "8800"; // myList[11]: Distance in Meters (used for calc)
$fakeOrderList[12] = "500"; // myList[12]: Duration in Seconds (used for calc)
$fakeOrderList[13] = "false"; // myList[13]: Payment Method ('true'=Visa, 'false'=Cash)
$fakeOrderList[14] = "8500"; // myList[14]: Distance (Integer/String for View)
$fakeOrderList[15] = "5 min"; // myList[15]: Duration to Passenger
$fakeOrderList[16] = "9999"; // myList[16]: Ride ID (Order ID)
$fakeOrderList[17] = ""; // myList[17]: (Empty/Unused)
$fakeOrderList[18] = $targetDriverId; // myList[18]: Driver ID (Repeated)
$fakeOrderList[19] = "18 min"; // myList[19]: Ride Duration Text
$fakeOrderList[20] = "false"; // myList[20]: Is Have Steps?
$fakeOrderList[21] = ""; // myList[21]: Step 0
$fakeOrderList[22] = ""; // myList[22]: Step 1
$fakeOrderList[23] = ""; // myList[23]: Step 2
$fakeOrderList[24] = ""; // myList[24]: Step 3
$fakeOrderList[25] = ""; // myList[25]: Step 4
$fakeOrderList[26] = "3.50"; // myList[26]: Wallet/Total Cost
$fakeOrderList[27] = ""; // myList[27]: (Empty)
$fakeOrderList[28] = "client@email.com"; // myList[28]: Email
$fakeOrderList[29] = "الجامعة الأردنية - البوابة الرئيسية"; // myList[29]: Pickup Address Name
$fakeOrderList[30] = "العبدلي مول - البوليفارد"; // myList[30]: Dropoff Address Name
$fakeOrderList[31] = "speed"; // myList[31]: Car Type
$fakeOrderList[32] = "2.75"; // myList[32]: Kazan (Earnings)
$fakeOrderList[33] = "4.8"; // myList[33]: Rating
// تحويل المصفوفة إلى قائمة مرتبة (Indexed Array) لضمان وصولها كـ List في فلاتر
// ksort يضمن الترتيب، و array_values يعيد فهرسة المفاتيح لتبدأ من 0
ksort($fakeOrderList);
$finalPayload = array_values($fakeOrderList);
// تجهيز البيانات للإرسال
$postData = [
'action' => 'dispatch_order',
'drivers_ids' => json_encode([$targetDriverId]),
'payload' => $finalPayload // 🔥 هنا نرسل المصفوفة وليس كائناً
];
// إرسال الطلب
$ch = curl_init($socketUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($postData));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"x-internal-key: $INTERNAL_KEY"
]);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo "Response Code: $httpCode\n";
if ($response == 'Dispatched') {
echo "✅ Success! Order List sent to driver.\n";
} else {
echo "❌ Failed: $response\n";
}
?>