<?php 
// ------- Include -------
include '../../config.php';
$payment=mysqli_fetch_assoc(mysqli_query($connect,"SELECT * FROM payment LIMIT 1"));
$merichentzarin=$payment['merichentzarin'];

// ------- Get Parameters -------
$order_code = $_GET['order'];

// بررسی وجود پارامتر
if(!$order_code){
    die("کد سفارش اشتباه است");
}

// بررسی وجود سفارش و دریافت اطلاعات
$order_data = mysqli_fetch_assoc(mysqli_query($connect,"SELECT * FROM payment_orders WHERE order_code = '$order_code' AND status = 'pending' LIMIT 1"));

if(!$order_data){
    die("سفارش یافت نشد یا قبلاً پردازش شده است");
}

// دریافت اطلاعات از سفارش
$user = $order_data['user_id'];
$amount = $order_data['amount'];

// بررسی وجود کاربر
$user_check = mysqli_fetch_assoc(mysqli_query($connect,"SELECT id FROM user WHERE id = '$user' LIMIT 1"));
if(!$user_check){
    die("کاربر یافت نشد");
}

// مبلغ به ریال (ضرب در 10)
$amount_rial = $amount * 10;

// آماده سازی درخواست پرداخت
$data = array(
    "merchant_id" => $merichentzarin,
    "amount" => $amount_rial,
    "callback_url" => "$web/pay/zarin/back.php?order=$order_code",
    "description" => "خرید اشتراک از ربات - کد سفارش: $order_code",
    "metadata" => [
        "email" => "noreply@bot.ir",
        "mobile" => "09000000000"
    ],
);

$jsonData = json_encode($data);
$ch = curl_init('https://api.zarinpal.com/pg/v4/payment/request.json');
curl_setopt($ch, CURLOPT_USERAGENT, 'ZarinPal Rest Api v4');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json',
    'Content-Length: ' . strlen($jsonData)
));

$result = curl_exec($ch);
$err = curl_error($ch);
curl_close($ch);

if ($err) {
    die("cURL Error #:" . $err);
}

$result = json_decode($result, true);

if (empty($result['errors'])) {
    if ($result['data']['code'] == 100) {
        $authority = $result['data']["authority"];
        
        // ذخیره Authority در دیتابیس
        mysqli_query($connect,"UPDATE payment_orders SET authority = '$authority' WHERE order_code = '$order_code' LIMIT 1");
        
        // هدایت به درگاه پرداخت
        header('Location: https://www.zarinpal.com/pg/StartPay/' . $authority);
        exit;
    } else {
        die('خطا در ایجاد درخواست پرداخت - کد: ' . $result['data']['code']);
    }
} else {
    die('خطا: ' . $result['errors']['code'] . ' - ' . $result['errors']['message']);
}
?>