<?php
require_once 'lib/nusoap.php';
require_once 'config.php';
include_once 'telegram.php';
$telegram = new telegram(TOKEN,HOST,USERNAME,PASSWORD,DBNAME);
$order_id = intval(base64_decode($_GET['token']));
$orderDetails = $telegram->db->query("select * from fl_order where id={$order_id}")->fetch(2);
$userid = $orderDetails['userid'];
$fid = $orderDetails['fileid'];
$file_detail = $telegram->db->query("select * from fl_file WHERE id=$fid")->fetch(2);
$days = $file_detail['days'];
$date = time();
$expire_microdate = intval(floor(microtime(true) * 1000) + (864000 * $days * 100));
$expire_date = $date + (86400 * $days);
$type = $file_detail['type'];
$volume = $file_detail['volume'];
$protocol = $file_detail['protocol'];
$price = $file_detail['price'];
$server_id = $file_detail['server_id'];
$netType = $file_detail['type'];
$acount = $file_detail['acount'];
$inbound_id = $file_detail['inbound_id'];
$limitip = $file_detail['limitip'];

$price = $orderDetails['amount'];

$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,
        ],
    ]);

    if ($result['Status'] == 100) {
        $refid = ltrim($Authority, "0");

    $srv_type = $telegram->db->query("select * from server_info WHERE id='$server_id'")->fetch(2)['ptype'];
    if($srv_type == 'marzban'){
        $token = '';
        // marzban Api
        require_once('marz.php');
    
        $savedinfo = file_get_contents('savedinfo.txt');
        $savedinfo = explode('-',$savedinfo);
        $port = $savedinfo[0] + 1;
        $last_num = $savedinfo[1] + 1;
    
        $srv_remark = $telegram->db->query("select * from fl_server WHERE id=$server_id")->fetch(2)['remark'];
        $uremark = $telegram->db->query("select * from fl_remark where userid=$userid")->fetch(2);
        if($uremark) $uremark = $uremark['remark']; else $uremark = $srv_remark;
        $username = "{$uremark}_{$last_num}";
        $remark = $username;
		
        file_put_contents('savedinfo.txt',$port.'-'.$last_num);
        
        $protocol = explode('|', $protocol);
        $response = adduser($server_id, $username, $expire_date, $volume, $protocol);  

        if(is_null($response) or !$response){
            die('🔻اتصال به سرور برقرار نیست. لطفا به مدیریت اطلاع بدید');
        }
    
    	if(!$response->subscription_url){
            die('🔻خطا در ساخت کانفیگ. لطفا به مدیریت اطلاع بدید');
        }

        $panel_url = $telegram->db->query("SELECT * FROM server_info WHERE id=$server_id")->fetch(2)['panel_url'];
        $sublink = $response->subscription_url;
		$vray_link = $sublink;
        $acc_text = "🔗 $username \n $sublink" . " \n\n ▫️در صورت وجود هرگونه مشکل به پشتیبانی پیام بدین \n";
        $filename = "sub/link{$userid}.txt";
        file_put_contents($filename, $sublink);
    	include 'phpqrcode/qrlib.php';
    	$file = "images/$userid".time().rand(0,99999999).".png";
        QRcode::png($sublink, $file, 'L', 10, 5);
        	
    	$acc_text = "✅خرید شما با موفقیت انجام شد . 
 ❕️دریافت اطلاعات اشتراک و qrcode با کلیک روی لینک اشتراک
❕️برای کپی کردن روی لینک نگه دارید و copy رو بزنین و توی یکی از برنامه های v2ray وارد کنین .
‼️درصورت وارد نشدن لینک از گزینه دریافت تمامی کانفیگ ها استفاده کنین .


🚀لینک اشتراک شما👇
$acc_text";

	    $telegram->sendPhoto($userid,"",$file);
	    $keyboard = [
            [
                //['text' => "🧩 کیو آر کد", 'callback_data' => "xqrcode#$userid"],
    			['text' => "🔖دریافت تمامی کانفیگ ها", 'callback_data' => "xtaklink#$userid"],
    		],
            ];
	$aa = bot('sendmessage', [
                'chat_id' => $userid,
                'message_id' => $cmsgid,
                'parse_mode' => "HTML",
                'text' => $acc_text,
                'reply_markup' => json_encode([
                    'inline_keyboard' => $keyboard
                ])
            ]);
	    $telegram->db->query("UPDATE `fl_server` SET `ucount` = ucount - 1 WHERE id=$server_id");
    }else{
        // V2ray Api
        require_once('vray.php');
        $uniqid = generateRandomString(42,$protocol); 
    
        $savedinfo = file_get_contents('savedinfo.txt');
        $savedinfo = explode('-',$savedinfo);
        $port = $savedinfo[0] + 1;
        $last_num = $savedinfo[1] + 1;
    
        $srv_remark = $telegram->db->query("select * from fl_server WHERE id=$server_id")->fetch(2)['remark'];
        $remark = "{$srv_remark}-{$last_num}";
    
        file_put_contents('savedinfo.txt',$port.'-'.$last_num);
        //$telegram->sendMessage($cuserid,"$server_id, $uniqid, $inbound_id, $expire_microdate, $remark, $volume");exit;
        
        if($inbound_id == 0){    
            $response = add_inbound($server_id, $uniqid, $protocol, $port, $expire_microdate, $remark, $volume, $netType); 
            if(! $response->success){
                // run again
                $response = add_inbound($server_id, $uniqid, $protocol, $port, $expire_microdate, $remark, $volume, $netType);
            } 
        }else {
            $response = add_inbount_client($server_id, $uniqid, $inbound_id, $expire_microdate, $remark, $volume, $limitip); 
            if(! $response->success){
                // run again
                $response = add_inbount_client($server_id, $uniqid, $inbound_id, $expire_microdate, $remark, $volume, $limitip);
            } 
        }
        
        //$telegram->sendMessage($cuserid,json_encode($response));exit;
         
        $vray_link = genLink($server_id, $uniqid, $protocol, $remark, $port, $netType, $inbound_id);
        $addsub = "";
    	$token = generateRandomString2(16);
    	$getLink_url = baseURI."sub.php?token=".$token;
    	if($gateways['sublink'] == 1){
    		$addsub = "\n\n 🔗 لینک هوشمند سرویس شما: \n <code>$getLink_url</code>";
    	}
        $acc_text = "🔗 $remark \n <code>$vray_link</code> $addsub" . " \n  برای کپی کردن لینک روی آن کلیک کنید \n";
    
        
        include 'phpqrcode/qrlib.php';
        $path = 'images/';
        $file = $path.$userid.".png"; //unlink($file);
        $ecc = 'L';
        $pixel_Size = 10;
        $frame_Size = 10;
        QRcode::png($vray_link, $file, $ecc, $pixel_Size, $frame_size);
    	addBorderImage($file);
    	$telegram->sendPhoto($userid,$acc_text,$file);
    }
        echo file_get_contents('https://north.northrealstate.ir/marketshop/html/success.html');
        $telegram->db->query("update fl_order set status=1 where id='$order_id'");
        $msg = "
✅سفارش شما با موفقیت ثبت شد .
📝 شماره تراکنش : $refid
.";
    $telegram->sendMessage($userid, $msg);
        
    
$sndmsg = "
خرید درگاه زرین 
قیمت : $price
آیدی کاربر : $userid
آیدی سرور : $server_id
لینک دریافتی :

$vray_link
";
    $telegram->sendMessage($sendchnl,$sndmsg);
	$order = $telegram->db->query("update `fl_order` set link='$vray_link',remark='$username',token='$token',status=1 where id=$order_id");
	
	if($inbound_id == 0) {
        $server_info = $telegram->db->query("SELECT * FROM fl_server WHERE id=$server_id")->fetch(2);
        if($server_info['ucount'] != 0)
            $telegram->db->query("UPDATE `fl_server` SET `ucount` = ucount - 1 WHERE id=$server_id");
    }else{
        if($acount != 0) 
            $telegram->db->query("UPDATE `fl_file` SET `acount` = acount - 1 WHERE id=$fid");
    }
    
    // pay referer
    $userReferer = $telegram->db->query("select * from fl_subuser where userid=$userid");
    if($userReferer->rowCount() ){
        $ures = $userReferer->fetch(2);
        $userToplevel = $ures['toplevel_userid'];
        $ufname = $ures['fname'];
        $amount = ($price) * ($pursant / 100);
        $telegram->db->query("update fl_user set wallet= wallet + $amount WHERE userid=$userToplevel");
        $telegram->sendMessage($userToplevel, "💟کاربر {$ufname} یک خرید به مبلغ  $price تومان انجام داد و $pursant درصد آن یعنی $amount تومان به کیف پول شما اضافه شد👍"); 
    }

    }elseif($result['Status'] == '101'){
        echo file_get_contents('https://north.northrealstate.ir/marketshop/html/success1.html');
    } else {
        echo file_get_contents('https://north.northrealstate.ir/marketshop/html/failed.html');
        echo ''.$result['Status'];
    }
} else {
    echo file_get_contents('https://north.northrealstate.ir/marketshop/html/failed1.html');
}
