<?php


require_once($_SERVER['DOCUMENT_ROOT']."/jquery/inc/system.php"); 


function replay($text, $type = 'success')
{
    if($type == 'error') 
    exit(json_encode(array('error' => array('message' => $text))));
        else
        exit(json_encode(array('result' => array('message' => $text))));
}

$key = 'b7904c894ab04b33405bf06088a7b632';

function getSignature($method, $param = [], $secretKey) 
    {
        ksort($param);
        unset($param['sign']);
        unset($param['signature']);
        array_push($param, $secretKey);
        array_unshift($param, $method);
        return hash('sha256', join('{up}', $param));
    }


$params = isset($_GET['params']) ? $_GET['params'] : [];
$method = isset($_GET['method']) ? $_GET['method'] : [];

$unitpay_v1 = intval($params['account']);

$hash = getSignature('pay',$params,$key);



// Команда на проверку юзера
if($method == 'check'){
   
        replay('Платеж готов к обработке.');
 
}

// Команда на совершение платежа
if($method == 'pay'){
    
    
    
    
    
    
    $unitpay_id    = intval($params['unitpayId']);    // ИД платежа для проверки
    $unitpay_summa1 = round(intval($params['sum']) * 10);
    $unitpay_summa2 = $unitpay_summa1*25/100;
    $unitpay_summa3 = $unitpay_summa1*5/100;
    $unitpay_summa = ($unitpay_summa1*3)+$unitpay_summa2;
    //
    //
    // Запрос на проверку, есть уже платеж с таким идентификатором
$pay = DB::$dbs->query("SELECT * FROM `unitpay_payments` WHERE `unitpayId` = '$unitpay_id' LIMIT 1")->fetchAll(PDO::FETCH_BOTH);

        // Заносим платеж в Базу Данных
		DB::$dbs->query('INSERT INTO `unitpay_payments` SET `unitpayId` = ?,`account` = ?,`sum` = ?,`dateComplete` = ?,`status` = ?',array($unitpay_id,$unitpay_v1,$unitpay_summa,time(),1));
       
       
       //
//
$text = '[color=#32cd32]Вы купили золото[/color][br]На ваш счет начислено [img='.$sites.'/css/img/gold.png]16[/img] '.$unitpay_summa.' золота';
DB::$dbs->query('INSERT INTO `notification` SET `text` = ?,`time` = ?,`id_user` = ?',array($text,time(),$unitpay_v1));
//
//
$task2 = DB::$dbs->queryFetch("SELECT * FROM `task_user` WHERE `id_task` = ? AND `id_user` = ? LIMIT 1", array(9,$unitpay_v1));
if($task2['check'] == 0)DB::$dbs->query("UPDATE `task_user` SET `coll` = `coll` + ? WHERE `id` = ? LIMIT 1", array($unitpay_summa,$task2['id']));
//
//
$task3 = DB::$dbs->queryFetch("SELECT * FROM `task_user` WHERE `id_task` = ? AND `id_user` = ? LIMIT 1", array(10,$unitpay_v1));
if($task3['check'] == 0)DB::$dbs->query("UPDATE `task_user` SET `coll` = `coll` + ? WHERE `id` = ? LIMIT 1", array($unitpay_summa,$task3['id']));
//
//
       
        DB::$dbs->query('UPDATE `users` SET `gold` = `gold` + ?, `diamond` = `diamond` + ? WHERE `id` = ? LIMIT 1', array($unitpay_summa,$unitpay_summa3,$unitpay_v1));
        replay('Платеж обработан.');
    

    // Если этого платежа ещё нету, но хэши не равны, выводим ошибку
    if(!$pay AND $params['signature'] != getSignature($method,$params,$key))
        replay('Платеж не найден.', 'error');

    // Если такой платеж уже был и хэш верный, то просто говорим об этом иксолле
    if($pay AND $params['signature'] == getSignature($method,$params,$key))
        replay('Платеж был обработан ранее.');

}
