prepare($sql); // تنفيذ الاستعلام مع تمرير البيانات $success = $stmt->execute([ $driver_id, $driver_name, $amount, $wallet_type, $wallet_number ]); if ($success) { // --- 4. الحصول على رقم الطلب وإرسال إشعار واتساب --- $transaction_id = $con->lastInsertId(); // الحصول على رقم التعريف الخاص بالطلب الجديد sendWhatsAppNotification($transaction_id, $driver_name, $amount, $wallet_type, $wallet_number); // إرسال استجابة نجاح إلى التطبيق printSuccess("Withdrawal request saved and notification sent."); } else { printFailure('Failed to save withdrawal request.'); } } catch (PDOException $e) { // التعامل مع أخطاء قاعدة البيانات error_log("Database Error in request_withdrawal.php: " . $e->getMessage()); printFailure('A database error occurred.'); } /** * دالة لإرسال إشعار إلى خدمة العملاء عبر RaseelPlus API */ function sendWhatsAppNotification($transaction_id, $driver_name, $amount, $wallet_type, $wallet_number) { // استخدام متغيرات البيئة (Environment Variables) هو الطريقة الأكثر أماناً لإدارة المعلومات الحساسة // بدلاً من كتابتها مباشرة في الكود. $customer_service_number = getenv('CUSTOMER_SERVICE_WHATSAPP'); // $customer_service_number = "9639XXXXXXXX"; // كرقم احتياطي مؤقت // نص الرسالة مع إضافة رقم الطلب $messageBody = "طلب سحب جديد (رقم الطلب: #$transaction_id):\n\n" . "اسم السائق: " . $driver_name . "\n" . "المبلغ: " . $amount . " ل.س\n" . "نوع المحفظة: " . $wallet_type . "\n" . "رقم المحفظة: " . $wallet_number; // بيانات الطلب (Payload) للـ API $payload = [ "number" => $customer_service_number, "type" => "text", "message" => $messageBody, "instance_id" => getenv('instance_idWhatsApp'); "access_token" => getenv('access_tokenWhatsApp'); ]; // استدعاء الـ API // ملاحظة: لا نتحقق من استجابة الـ API هنا لأن العملية الرئيسية (حفظ الطلب) قد نجحت بالفعل. // يمكن إضافة تسجيل للأخطاء إذا لزم الأمر. callAPI_Withdrawal("POST", "https://raseelplus.com/api/send", json_encode($payload)); } /** * دالة لإجراء استدعاءات API باستخدام cURL */ function callAPI_Withdrawal($method, $url, $data) { $curl = curl_init(); curl_setopt_array($curl, [ CURLOPT_URL => $url, CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => $method, CURLOPT_POSTFIELDS => $data, CURLOPT_HTTPHEADER => [ "Content-Type: application/json", "Accept: application/json" ], ]); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); if ($err) { // تسجيل الخطأ في سجلات الخادم للمراجعة لاحقًا error_log("[callAPI_Withdrawal] cURL Error #: " . $err); return null; } else { return json_decode($response); } } ?>