$api_key]); $response = callAPI("POST", $auth_url, $auth_data); $auth_token = $response->token ?? null; if (!$auth_token) { error_log("❌ فشل الحصول على AUTH TOKEN!"); die("❌ فشل الحصول على AUTH TOKEN!"); } // 2. أنشئ الطلب ORDER $order_url = "https://accept.paymob.com/api/ecommerce/orders"; $order_data = [ "auth_token" => $auth_token, "delivery_needed" => false, "amount_cents" => $amount, "currency" => "EGP", "merchant_order_id" => uniqid(), "items" => [] ]; $response = callAPI("POST", $order_url, json_encode($order_data)); $order_id = $response->id ?? null; if (!$order_id) { error_log("❌ فشل إنشاء الطلب!"); die("❌ فشل إنشاء الطلب!"); } // error_log("orde is" .$order_id); // 3. احصل على Payment Key $payment_key_url = "https://accept.paymob.com/api/acceptance/payment_keys"; $payment_key_data = [ "auth_token" => $auth_token, "amount_cents" => $amount, "expiration" => 3600, "order_id" => $order_id, "billing_data" => [ "first_name" => $first_name, "last_name" => $last_name, "email" => $email, "phone_number" => $phone_number, "country" => "EG", "city" => "Cairo", "state" => "shobra", "street" => "Test St.", "building" => "1", "apartment" => "10", "floor" => "2", "postal_code" => "12345", "shipping_method" => "wallet" ], "currency" => "EGP", "integration_id" => $integration_id // إذا كان مضبوط ]; $response = callAPI("POST", $payment_key_url, json_encode($payment_key_data)); $payment_token = $response->token ?? null; // error_log("payment_token is" .$payment_token); if (!$payment_token) { error_log("❌ فشل الحصول على PAYMENT TOKEN!"); die("❌ فشل الحصول على PAYMENT TOKEN!"); } // error_log("phone wallet is ".$wallet_phone); // 4. الدفع عبر المحفظة Wallet $redirect_url = payWithWallet($payment_token, $wallet_phone); if ($redirect_url) { printSuccess($redirect_url); error_log("redirect_url is" .$redirect_url); } else { error_log("❌ فشل الدفع عبر المحفظة!"); printFailure("Payment verified, but failed to generate token."); // die("❌ فشل الدفع عبر المحفظة!"); } // دالة لطلب API عبر CURL function callAPI($method, $url, $data) { $curl = curl_init(); curl_setopt_array($curl, [ CURLOPT_URL => $url, CURLOPT_RETURNTRANSFER => true, CURLOPT_CUSTOMREQUEST => $method, CURLOPT_POSTFIELDS => $data, CURLOPT_HTTPHEADER => ["Content-Type: application/json"] ]); $response = curl_exec($curl); curl_close($curl); return json_decode($response); } // الدالة الخاصة بالدفع بالمحفظة function payWithWallet($paymentToken, $walletPhone) { $url = "https://accept.paymob.com/api/acceptance/payments/pay"; $data = [ "source" => [ "identifier" => $walletPhone, "subtype" => "WALLET" ], "payment_token" => $paymentToken ]; // Log the full data being sent to Paymob // error_log("Data being sent to Paymob: " . json_encode($data)); $response = callAPI("POST", $url, json_encode($data)); // Log the full response for debugging // error_log("Payment response: " . print_r($response, true)); return $response->redirect_url ?? null; }