"Unauthorized – Invalid HMAC"]); exit; } } isValidHmac($data, $secret_key, $received_hmac); // ------------------------------ // إذا كانت HMAC صحيحة، نتابع العملية // ------------------------------ if ($data && isset($data['obj'])) { $transaction = $data['obj']; $payment_id = $transaction['id'] ?? null; $amount = $transaction['amount_cents'] ?? 0; $status = $transaction['success'] ?? false; $is_voided = $transaction['is_voided'] ?? false; $is_refunded = $transaction['is_refunded'] ?? false; $order_id = $transaction['order']['id'] ?? null; $merchant_order_id = $transaction['order']['merchant_order_id'] ?? null; $payment_method = $transaction['source_data']['type'] ?? 'unknown'; $card_last4 = $transaction['source_data']['pan'] ?? '****'; $transaction_type = $transaction['data']['migs_transaction']['type'] ?? 'UNKNOWN'; $created_at = $transaction['created_at'] ?? date("Y-m-d H:i:s"); $user_id = $transaction['order']['shipping_data']['phone_number']; $user_id='+'. $user_id; $amount=$amount/100; // التحقق من حالة الدفع if (!$status) { error_log("❌ Invalid payment status: " . $status); echo json_encode(["error" => "Invalid payment status"]); exit; } // إضافة البيانات إلى قاعدة البيانات $query = "INSERT INTO payment_log_driver (`payment_id`, `user_id`, `amount`, `status`) VALUES (:payment_id, :user_id, :amount, :status)"; $stmt = $con->prepare($query); $stmt->bindParam(':payment_id', $payment_id); $stmt->bindParam(':user_id', $user_id); $stmt->bindParam(':amount', $amount); $stmt->bindParam(':status', $status); try { $stmt->execute(); if ($stmt->rowCount() > 0) { http_response_code(200); echo json_encode(["success" => true, "message" => "Payment data saved successfully"]); error_log("Payment data saved successfully" . $status); } else { http_response_code(200); echo json_encode(["success" => false, "message" => "Payment data already up to date."]); } } catch (PDOException $e) { http_response_code(500); echo json_encode(["error" => "Failed to execute the query: " . $e->getMessage()]); } } ?>