<?php
require_once '../lib/nusoap.php';
require_once '../config.php';
include_once '../telegram.php';
$telegram = new telegram(TOKEN,HOST,USERNAME,PASSWORD,DBNAME);
$token = base64_decode($_GET['token']);
$input = explode('#',$token);
$userid = intval($input[0]);
$fid = intval($input[1]);
$oid = intval($input[2]);
$order = $telegram->db->query("select * from fl_order where id=$oid")->fetch(2);
//$fid = $order['fileid'];
$remark = $order['remark'];
$server_id = $order['server_id'];
$inbound_id = $order['inbound_id'];
$expire_date = $order['expire_date'];
$expire_date = ($expire_date > $time) ? $expire_date : $time;
$respd = $telegram->db->query("select * from fl_file WHERE id='$fid' and active=1")->fetch(2);
$name = $respd['title'];
$days = $respd['days'];
$volume = $respd['volume'];
$price = $respd['price'];

$seller = $telegram->db->query("select * from fl_sellers where userid=$userid")->fetch(2);
            if(!empty($seller)) $price = $price - (($price) * ($seller['percent'] / 100));

if(isset($input[3])){
    $dcode = htmlspecialchars(strip_tags($input[3]));
    $dcount = $telegram->db->query("select * from fl_discount WHERE code='$dcode' and active=1 and count > 0 ");
	if($dcount->rowCount() > 0){
		$dres = $dcount->fetch(2);
		$amount = $dres['amount'];
		if($amount <= 100) {
			$price = $price * (100-$amount)/100;
		}else {
			$price = $price - $amount ;
		}
		if($dres['count'] != '') $telegram->db->query("update fl_discount set count= count - 1 WHERE code='$dcode'");
	}
}

$protocol = $respd['protocol'];
$time = time();

$Authority = $_GET['Authority'];
    if ($_GET['Status'] == 'OK') {
        $client = new nusoap_client('https://www.zarinpal.com/pg/services/WebGate/wsdl', 'wsdl');
        $client->soap_defencoding = 'UTF-8';
        $result = $client->call('PaymentVerification', [
            [
                'MerchantID'     => ZARINPALMID, 
                'Authority'      => $Authority,
                'Amount'         => $price,
            ],
        ]);
file_put_contents('1111.txt', date('Y-m-d H:i:s')."--".$price."== $Authority ==".json_encode($result).json_encode($respd).json_encode($order)."\n\n", FILE_APPEND);
       if ($result['Status'] == 100 || $result['Status'] == 101){
			$refid = $result['RefID'];
        //echo file_get_contents('https://northrealstate.ir/marketshop/html/success.html');
        //echo 'تراکنش با موفقیت انجام شد. کد پیگیری شما: ' . $refid;
        

        $srvdetail = $telegram->db->query("select * from server_info where id=$server_id")->fetch(2);
        if($srvdetail['ptype'] == 'marzban'){
            $username = $remark;
            require_once('../marz.php');
            $response = muser_detail($server_id, $username);
            if(is_null($response) or !$response){
                die('🔻اتصال به سرور برقرار نیست. لطفا به مدیریت اطلاع بدید');
            }
        
        	if(!$response->subscription_url){
                die('🔻خطا در تمدید سرویس. لطفا به مدیریت اطلاع بدید');
            }
        
    
            // day
            $expire_date = $response->expire;
            $inputSeconds = $expire_date - time();
            $time = secondsToTime($inputSeconds);
            $left_days = $time['d'];
            if($left_days < 0) $left_days = 0;
            //$days += $left_days;
            $expire_date = time() + (86400 * $days);
        
            // volume
            $total = $response->data_limit;
            $used_traffic = $response->used_traffic;
            $leftgb = round( ($total - $used_traffic) / 1073741824, 2);
            $volume += $leftgb;
            
            $proxies = $response->proxies;
            $protocol = explode('|', $protocol);
        
            $response = edit_muser($server_id, $username, $expire_date, $volume, $proxies); 
            
            if(is_null($response) or !$response){
                file_put_contents('1111.txt', date('Y-m-d H:i:s')."--".$price."== $Authority == null response \n\n", FILE_APPEND);
                die('🔻اتصال به سرور برقرار نیست. لطفا به مدیریت اطلاع بدید');
            }
        
        	if(!$response->subscription_url){
        	    file_put_contents('1111.txt', date('Y-m-d H:i:s')."--".$price."== $Authority == null subscription_url \n\n", FILE_APPEND);
                die('🔻خطا در تمدید سرویس. لطفا به مدیریت اطلاع بدید');
            }
        
        }else{
            require_once('../vray.php');
            if($inbound_id > 0)
                $response = renew_client($server_id, $inbound_id, $remark, $volume, $days);
            else
                $response = renew_inbound($server_id, $remark, $volume, $days);
                
            if(!$response->success){
                die("مشکل فنی در ارتباط با سرور. لطفا به مدیریت اطلاع بدید");
            }
        }
    
        $telegram->db->query("update fl_order set notif=0,fileid=$fid where id='$oid'"); 
        $time = time();
        $telegram->db->query("INSERT INTO `fl_extra_order` VALUES (NULL, '$userid', '$server_id', '$inbound_id', '$remark', '$price', '$time');");
    	$sndmsg = "
تمدید سرویس $remark با زرین
قیمت : $price
آیدی کاربر : $userid
آیدی سرور : $server_id
تعداد روز  $days
تعداد گیگ $volume
";
        $telegram->sendMessage($sendchnl,$sndmsg);
        
        $msg = "
✅ سفارش شما با موفقیت ثبت شد.
📝 شماره تراکنش: $refid
";
        $telegram->sendMessage($userid, $msg);
        
        $telegram->sendMessage($userid, "✅سرویس $remark با موفقیت تمدید شد");
        header('Location: https://north.northrealstate.ir/marketshop/html/success.html');
        exit;
    } else {//var_dump($response);die;
        header('Location: https://north.northrealstate.ir/marketshop/html/failed.html');
        exit;
    }
} else {
    echo file_get_contents('https://northrealstate.ir/marketshop/html/failed.html');
}