Помогите с автовыплатами!

Windson

Участник
Вот сайт fermerstroy.ru не реклама. Здесь имеются автовыплаты на множество систем. Меня интересует payeer. Я всё прописал во всех файлах и .тд. но привыводе пишет Ошибка [Array ( [0] => Sum should not be less than 1 RUB ) ] - попробуйте через 10-15 секунд или сообщите о ней администратору! #2 Я вводил суммы больше 1 rub но не работает. Вот код:
PHP:
<div class="s-bk-lf">
    <div class="acc-title">Заказ выплаты</div>
</div>

<div class="silver-bk">
    <BR />
<?PHP
$_OPTIMIZATION["title"] = "Аккаунт - Заказ выплаты";
$user_id = $_SESSION["user_id"];
$usname = $_SESSION["user"];

$db->Query("SELECT * FROM db_users_b WHERE id = '$user_id' LIMIT 1");
$user_data = $db->FetchArray();

$db->Query("SELECT * FROM db_config WHERE id = '1' LIMIT 1");
$sonfig_site = $db->FetchArray();

$status_array = array( 0 => "Проверяется", 1 => "Выплачивается", 2 => "Отменена", 3 => "Выплачено");
# Минималка серебром!
$minPay = 150;
?>



<?PHP
# Заносим выплату
if(isset($_POST['swap'])){ // проверка: была ли отправлена форма
    if(!empty($_POST['purse'])){
        $ps = Array(
        'Payeer'=>'1136053',
        'QIWI'=>'60792237',
        'Яндекс'=>'25344',
        'Билайн'=>'24898938',
        'Мегафон'=>'24899391',
        'МТС'=>'24899291',
        'ТЕЛЕ2'=>'95877310',
        'VISA' =>'117146509',
        'MASTERCARD' =>'57644634',
        'MAESTRO' =>'57766314'
        );
        $ps = $db->RealEscape(htmlspecialchars($ps[$_POST['ps']]));
        if(!empty($ps)){
            if ($db->RealEscape(htmlspecialchars($_POST['ps'] == 'Payeer'))){
                function ViewPurse($purse){
                    if( substr($purse,0,1) != "P" ) return false;
                    if( !preg_match("#^[0-9]{7,8}$#", substr($purse,1)) ) return false;  
                    return $purse;
                }
            }
            if($db->RealEscape(htmlspecialchars($_POST['ps'] == 'Яндекс'))){
                function ViewPurse($purse){
                    if( !preg_match("#^41001[0-9]{7,10}$#",$purse) ) return false;
                    return $purse;
                }
                $minPay = '1000';
            }
            if($db->RealEscape(htmlspecialchars($_POST['ps'] == 'QIWI'))){
                function ViewPurse($purse){
                    if( !preg_match("#^\+(91|994|82|372|375|374|44|998|972|66|90|81|1|507|7|77|380|371|370|996|9955|992|373|84)[0-9]{6,14}$#",$purse) ) return false;
                    return $purse;
                }
                $minPay = '1000';
            }
            if(isset($_POST['phone']) && $db->RealEscape(htmlspecialchars($_POST['ps'] != 'QIWI'))){
                function ViewPurse($purse){
                    if( !preg_match("#^[\+]{1}[7]{1}[9]{1}[\d]{9}$#",$purse) ) return false;
                    return $purse;
                }
                $minPay = '1000';
            }
           
            if($db->RealEscape(htmlspecialchars($_POST['ps'] == 'VISA'))){
                function ViewPurse($purse){
                    if(!preg_match("#^([45]{1}[\d]{15}|[6]{1}[\d]{17})$#",$purse)) return false;
                    return $purse;
                }
            }
            if($db->RealEscape(htmlspecialchars($_POST['ps'] == 'MASTERCARD'))){
                function ViewPurse($purse){
                    if( !preg_match("#^([45]{1}[\d]{15}|[6]{1}[\d]{17})$#",$purse) ) return false;
                    return $purse;
                }
               
            }
            if($db->RealEscape(htmlspecialchars($_POST['ps'] == 'MAESTRO'))){
                function ViewPurse($purse){
                    if( !preg_match("#^([45]{1}[\d]{15}|[6]{1}[\d]{15,17})$#",$purse) ) return false;
                    return $purse;
                }
               
            }
            if(isset($_POST['card'])){
                $minPay = '65000';
                function ViewPerson($person){
                    if( !preg_match("#^([a-zA-ZА-Яабвгдеёжзийклмнопрстуфхцчшщьыъэюя\.\-\' ]+)$#",$person) ) return false;
                    return $person;
                }
                $person = ViewPerson($_POST['person']);
            }
            $purse = ViewPurse($_POST['purse']);
            if($purse != false){
            if((!empty($person) AND $person != false) OR !isset($person)){
                $sum = round(intval($_POST['sum']),2);
                $val = 'RUB';
                if($sum >= $minPay){
                    if($sum <= $user_data['money_p']){
                    # Проверяем на существующие заявки
                        $db->Query("SELECT COUNT(*) FROM db_payment WHERE user_id = '$user_id' AND (status = '0' OR status = '1')");
                        if($db->FetchRow() == 0){
                            $sum_pay = round( ($sum / $config_site['ser_per_wmr']), 2);
                            # Делаем выплату
                                $payeer = new rfs_payeer($config->AccountNumber, $config->apiId, $config->apiKey);
                                if ($payeer->isAuth()){
                                    $arBalance = $payeer->getBalance();
                                    if($arBalance['auth_error'] == 0){
                                        $balance = $arBalance['balance']['RUB']['DOSTUPNO'];
                                        if($balance >= $sum_pay){
                                            $array = array(
                                                'action' => 'output',
                                                'ps' => $ps,
                                                'curIn' => $val, // счет списания
                                                'sumOut' => $sum_pay, // сумма получения
                                                'curOut' => $val, // валюта получения
                                                'param_ACCOUNT_NUMBER' => $purse // получатель
                                            );
                                            if(!empty($person)){
                                                $array['param_CONTACT_PERSON'] = $person;
                                            }
                                            $initOutput = $payeer->initOutput($array);
                                            if ($initOutput){
                                                $historyId = $payeer->output();
                                                    if ($historyId > 0){
                                                    # Снимаем с пользователя
                                                        $db->Query("UPDATE db_users_b SET money_p = money_p - '$sum', payment_sum = payment_sum + '$sum_pay' WHERE id = '$user_id'");
                                                       
                                                        # Вставляем запись в выплаты
                                                        $da = time();
                                                        $dd = $da + 60*60*24*15;
                                                       
                                                        $ppid = $arTransfer["historyId"];
                                                           
                                                        $db->Query("INSERT INTO db_payment (user, user_id, purse, sum, valuta, serebro, pay_sys_id, payment_id, date_add, status) VALUES ('$usname','$user_id','$purse','$sum_pay','RUB', '$sum', '$ps', '$ppid','".time()."', '3')");
                                                           
                                                        $db->Query("UPDATE db_stats SET all_payments = all_payments + '$sum_pay' WHERE id = '1'");
                                                        echo "<center><font color = 'green'><b>Выплачено!</b></font></center><BR />";
                                                        $db->Query("SELECT * FROM db_users_b WHERE id = '$user_id' LIMIT 1");
                                                        $user_data = $db->FetchArray();
                                                    }else{
                                                        echo '<center><font color = "red"><b>Ошибка ['.print_r($payeer->getErrors(), true).'] - попробуйте через 10-15 секунд или сообщите о ней администратору! #1</b></font></center><BR />';
                                                    }
                                            }else{
                                                echo '<center><font color = "red"><b>Ошибка ['.print_r($payeer->getErrors(), true).'] - попробуйте через 10-15 секунд или сообщите о ней администратору! #2</b></font></center><BR />';
                                            }
                                        }else echo '<center><font color = "red"><b>Сервер перегружен - попробуйте через 10-15 секунд или сообщите о ней администратору</b></font></center><BR />';
                                    }else echo '<center><font color = "red"><b>Не удалось выплатить! Попробуйте позже.</b></font></center><BR />';
                                }else echo '<center><font color = "red"><b>Не удалось выплатить! Попробуйте позже. Ошибка № 631 </b></font></center><BR />';
                            }else echo '<center><font color = "red"><b>У вас имеются необработанные заявки. Дождитесь их выполнения.</b></font></center><BR />';
                    }else echo '<center><font color = "red"><b>Вы указали больше, чем имеется на вашем счету.</b></font></center><BR />';
                }else echo '<center><b><font color = "red">Минимальная сумма для выплаты составляет '.$minPay.' золота!</font></b></center><BR />';
                }else echo '<center><b><font color = "red">Данные держателя карты указаны неверно!</font></b></center><BR />';
            }else echo '<center><b><font color = "red">Номер счета '.$purse.' указан неверно</font></b></center><BR />';
        }else echo '<center><b><font color = "red">Платежная система не указана!</font></b></center><BR />';
    }else echo '<center><b><font color = "red">Вы не ввели номер кошелька</font></b></center><BR />';
}
?>
<style>
    .selectPS{
    display: inline-block;
    width: 100px;
    vertical-align: top;
    text-align: center;
    padding: 5px 5px 10px 5px;
    margin: 5px 2px;
    border: 2px dotted #fff4e3;
    cursor: pointer;
}
.selectPS:hover{
    border: 2px dotted #cb8851;
    background: #fde6c3;
}
.selectPS .imagesps{
    width: 55px;
    box-sizing: border-box;
    height: 55px;
    display: inline-block;
}
.selectPS label{
    font-size: 8pt;
    display: block;
    margin-top: 10px;
}
</style>
<script type="text/javascript">
function addfield(ps,name){
    var el = document.getElementById('new');
    var el1 = document.getElementById('new1');
    var el2 = document.getElementById('new2');
    var el3 = document.getElementById('new3');
    if(el){el.parentNode.removeChild(el);}
    if(el1){el1.parentNode.removeChild(el1);}
    if(el2){el2.parentNode.removeChild(el2);}
    if(el3){el3.parentNode.removeChild(el3);}
    if(ps == 'phone'){
        var newTd = document.createElement('td');
        newTd['id'] = 'new';
        newTd.innerHTML = '<font color="#000;">Номер телефона '+name+':</font>';
        paysys.insertBefore(newTd, paysys.children[0]);
        var newTd = document.createElement('td');
        newTd['id'] = 'new1';
        newTd.innerHTML = '<input type="text" name="purse" size="15"><input type="hidden" name="ps" value="'+name+'"><input type="hidden" name="phone">';
        paysys.insertBefore(newTd, paysys.children[1]);
        min = 1000;
        document.getElementById('str_min').style.display = 'inline';
        document.getElementById('min').innerHTML = min;
        document.getElementById('name_ps').innerHTML = name;
    }
    if(ps == 'eps'){
        var newTd = document.createElement('td');
        newTd['id'] = 'new';
        newTd.innerHTML = '<font color="#000;">Номер счета '+name+':</font>';
        paysys.insertBefore(newTd, paysys.children[0]);
        var newTd = document.createElement('td');
        newTd['id'] = 'new1';
        newTd.innerHTML = '<input type="text" name="purse" size="15"><input type="hidden" name="ps" value="'+name+'">';
        paysys.insertBefore(newTd, paysys.children[1]);
        min = <?=$minPay;?>;
        if(name == 'Яндекс'){min = 1000;}
        document.getElementById('str_min').style.display = 'inline';
        document.getElementById('min').innerHTML = min;
        document.getElementById('name_ps').innerHTML = name;
    }  
    if(ps == 'card'){
        var newTd = document.createElement('td');
        newTd['id'] = 'new';
        newTd.innerHTML = '<font color="#000;">Номер карты '+name+':</font>';
        paysys.insertBefore(newTd, paysys.children[0]);
        var newTd = document.createElement('td');
        newTd['id'] = 'new1';
        newTd.innerHTML = '<input type="text" name="purse" size="15"><input type="hidden" name="ps" value="'+name+'"><input type="hidden" name="card">';
        paysys.insertBefore(newTd, paysys.children[1]);
        var newTd = document.createElement('td');
        newTd['id'] = 'new2';
        newTd.innerHTML = '<font color="#000;">Имя, Фамилия держателя:</font>';
        person.insertBefore(newTd, person.children[0]);
        var newTd = document.createElement('td');
        newTd['id'] = 'new3';
        newTd.innerHTML = '<input type="text" name="person" size="15">';
        person.insertBefore(newTd, person.children[1]);
        min = 65000;
        document.getElementById('str_min').style.display = 'inline';
        document.getElementById('min').innerHTML = min;
        document.getElementById('name_ps').innerHTML = name;
    }
}
</script>



<?PHP
# Заглушка от халявщиков
if($user_data["kredit"] >= 1 or $user_data["insert_sum"] <= 99.99){

?>
  <center><font color="red"><b>У Вас не погашен кредит или вы не пополнили баланс на 100р</center></center>
</div>
<div class="clr"></div>                                <div class="clr"></div>  
                            <br>
                            <br>
                            </div>
                        <div class="clr"></div>
                       
<?PHP

return;
}

?>


    <div align="center">

                            <div class="selectPS" >
                            <div class="imagesps" style="background: url(/img/ps/payeer.png) no-repeat 50%;" onclick="addfield('eps','Payeer');"></div>
                            <label>Выплаты Payeer</label>
                    </div>
                            <div class="selectPS" >
                            <div class="imagesps" style="background: url(/img/ps/qiwi.png) no-repeat 50%;" onclick="addfield('phone','QIWI');"></div>
                            <label>Выплаты QIWI</label>
                    </div>
                            <div class="selectPS">
                            <div class="imagesps" style="background: url(/img/ps/yandex.png) no-repeat 50%;" onclick="addfield('eps','Яндекс');"></div>
                            <label>Выплаты Яндекс.Деньги</label>
                    </div>
                            <div class="selectPS">
                            <div class="imagesps" style="background: url(/img/ps/beeline.png) no-repeat 50%;" onclick="addfield('phone','Билайн');"></div>
                            <label>Выплаты на сотовый (БИЛАЙН)</label>
                    </div>
                                        <div class="selectPS">
                            <div class="imagesps" style="background: url(/img/ps/megafon.png) no-repeat 50%;" onclick="addfield('phone','Мегафон');"></div>
                            <label>Выплаты на сотовый (МЕГАФОН)</label>
                    </div>
                                        <div class="selectPS">
                            <div class="imagesps" style="background: url(/img/ps/mts.png) no-repeat 50%;" onclick="addfield('phone','МТС');"></div>
                            <label>Выплаты на сотовый (МТС)</label>
                    </div>
                                        <div class="selectPS">
                            <div class="imagesps" style="background: url(/img/ps/tele2.png) no-repeat 50%;" onclick="addfield('phone','ТЕЛЕ2');"></div>
                            <label>Выплаты на сотовый (ТЕЛЕ2)</label>
                    </div>
                                        <div class="selectPS">
                            <div class="imagesps" style="background: url(/img/ps/visa.png) no-repeat 50%;"  onclick="addfield('card','VISA');"></div>
                            <label>Выплаты VISA</label>
                    </div>
                                        <div class="selectPS">
                            <div class="imagesps" style="background: url(/img/ps/master.png) no-repeat 50%;" onclick="addfield('card','MASTERCARD');"></div>
                            <label>Выплаты MASTERCARD</label>
                    </div>
                                        <div class="selectPS">
                            <div class="imagesps" style="background: url(/img/ps/maestro.png) no-repeat 50%;" onclick="addfield('card','MAESTRO');"></div>
                            <label>Выплаты MAESTRO</label>
                    </div>
                           
    </div>
<div id="str_min" style="display:none">Минимальная сумма выплаты на <span id="name_ps"></span> составляет <span id="min"></span> серебра.</div><br>



<form action="" method="post">
<table id="pay"width="99%" border="0" align="center">
  <tr id="paysys"></tr>
  <tr id="person"></tr>
  <tr>
    <td><font color="#000;">Сумма для вывода (монеты)</font><font color="#000;">:</font> </td>
    <td><input type="text" name="sum" id="sum" value="<?=round($user_data['money_p']); ?>" size="15" /></td>
   
  </tr>
  <!--  <tr>
    <td><font color="#000;">Получаете <span id="res_val"></span></font><font color="#000;">:</font> </td>
    <td>
    <input type="text" name="res" id="res_sum" value="0" size="15" disabled="disabled"/>
    <input type="hidden" name="per" id="RUB" value="<?=$sonfig_site["ser_per_wmr"]; ?>" disabled="disabled"/>
    <input type="hidden" name="per" id="min_sum_RUB" value="0.5" disabled="disabled"/>
    <input type="hidden" name="val_type" id="val_type" value="RUB" />
    </td>
  </tr> -->
  <tr>
    <td colspan="2" align="center">
    <input type="submit" name="swap" value="Заказать выплату" style="height: 30px; margin-top:10px;" /></td>
  </tr>
</table>
</form>
<?$minPay = '';?>

<table cellpadding='3' cellspacing='0' border='0' bordercolor='#336633' align='center' width="99%">
  <tr>
    <td colspan="5" align="center"><h4>Последние 10 выплат</h4></td>
    </tr>
  <tr>
    <td align="center" class="m-tb">Серебро</td>
    <td align="center" class="m-tb">Получаете</td>
    <td align="center" class="m-tb">ПС</td>
    <td align="center" class="m-tb">Кошелек</td>
    <td align="center" class="m-tb">Дата</td>
    <td align="center" class="m-tb">Статус</td>
  </tr>
  <?PHP

  $db->Query("SELECT * FROM db_payment WHERE user_id = '$user_id' ORDER BY id DESC LIMIT 20");

    if($db->NumRows() > 0){
    $img = Array(
        '1136053'=>'payeer',
        '60792237'=>'qiwi',
        '25344'=>'yandex',
        '24898938'=>'beeline',
        '24899391'=>'megafon',
        '24899291'=>'mts',
        '95877310'=>'tele2',
        '117146509' =>'visa',
        '57644634' =>'master',
        '57766314' =>'maestro'
        );
          while($ref = $db->FetchArray()){
       
        ?>
        <tr class="htt">
            <td align="center"><?=$ref["serebro"]; ?></td>
            <td align="center"><?=sprintf("%.2f",$ref["sum"] - $ref["comission"]); ?> <?=$ref["valuta"]; ?></td>
            <td align="center"><? if(!empty($ref["pay_sys_id"])){echo '<img src="/img/ps/'.$img[$ref["pay_sys_id"]].'.png" width="25px">';}?></td>
            <td align="center"><?=$ref["purse"]; ?></td>
            <td align="center"><?=date("d.m.Y",$ref["date_add"]); ?></td>
            <td align="center"><?=$status_array[$ref["status"]]; ?></td>
          </tr>
        <?PHP
       
        }

    }else echo '<tr><td align="center" colspan="5">Нет записей</td></tr>'

  ?>

</table><div class="clr"></div>
</div>
Подозревую что это связано с массивом, так как ошибка эта выбивается под номер 2 и можно увидеть, что если это неверно if ($initOutput), то выскакивает данная ошибка
 

Windson

Участник
Вот класс обработчика:
-
PHP:
<?php

class rfs_payeer
{
    private $url = 'https://payeer.com/ajax/api/api.php';
    private $agent = 'Mozilla/5.0 (Windows NT 6.1; rv:12.0) Gecko/20100101 Firefox/12.0';
    
    private $auth = array();
    
    private $output;
    private $errors;
    
    /*======================================================================*\
    Function:    __construct
    Descriiption: Выполняется при создании экземпляра класса
    \*======================================================================*/
    public function __construct($account, $apiId, $apiPass)
    {
        $arr = array(
            'account' => $account,
            'apiId' => $apiId,
            'apiPass' => $apiPass,
        );
        $response = $this->getResponse($arr);
        if ($response['auth_error'] == '0')
        {
            $this->auth = $arr;
        }
    }
    
    
    /*======================================================================*\
    Function:    PaySystemData
    Descriiption: Проверяет аудентификацию
    \*======================================================================*/
    public function PaySystemData($SystemId)
    {
        if (empty($this->auth)) return false;
        $response = $this->getPaySystems();
        
        if($response["auth_error"] == 0){
        
            if(isset($response["list"][$SystemId])){
            
                return $response["list"][$SystemId];
            
            }else return false;
        
        }else return false;
        
    }
    
    /*======================================================================*\
    Function:    isAuth
    Descriiption: Проверяет аудентификацию
    \*======================================================================*/
    public function isAuth()
    {
        if (!empty($this->auth)) return true;
        return false;
    }
    
    
    /*======================================================================*\
    Function:    getResponse
    Descriiption: Получение ответа от сервера
    \*======================================================================*/
    private function getResponse($arPost)
    {
        if (!function_exists('curl_init'))
        {
            die('curl library not installed');
            return false;
        }
        if ($this->isAuth())
        {
            $arPost = array_merge($arPost, $this->auth);
        }
        $data = array();
        foreach ($arPost as $k => $v)
        {
            $data[] = urlencode($k) . '=' . urlencode($v);
        }
        $data = implode('&', $data);
    
        $handler  = curl_init();
        curl_setopt($handler, CURLOPT_URL, $this->url);
        curl_setopt($handler, CURLOPT_HEADER, 0);
        curl_setopt($handler, CURLOPT_POST, true);
        curl_setopt($handler, CURLOPT_POSTFIELDS, $data);
        curl_setopt($handler, CURLOPT_SSL_VERIFYPEER, 0);
        curl_setopt($handler, CURLOPT_USERAGENT, $this->agent);
        curl_setopt($handler, CURLOPT_RETURNTRANSFER, 1);
        $content = curl_exec($handler);
        curl_close($handler);
        $content = $this->objectToArray(json_decode($content));
        return $content;
    }
    
    
    /*======================================================================*\
    Function:    objectToArray
    Descriiption: Перевод обьекта в массив
    \*======================================================================*/
    private function objectToArray($ob)
    {
        $arr = array();
        foreach ($ob as $k => $v)
        {
            if (is_object($v))
            {
                $arr[$k] = $this->objectToArray($v);               
            }
            else
            {
                $arr[$k] = $v;
            }
        }
        return $arr;
    }
    
    
    /*======================================================================*\
    Function:    getPaySystems
    Descriiption: Получение платежной системы
    \*======================================================================*/
    public function getPaySystems()
    {
        $arPost = array(
            'action' => 'getPaySystems',
        );
        $response = $this->getResponse($arPost);
        
        return $response;
    }   
    
    
    /*======================================================================*\
    Function:    initOutput
    Descriiption: Инициализация данных на выплату
    \*======================================================================*/
    public function initOutput($arr)
    {
        $arPost = $arr;
        $arPost['action'] = 'initOutput';
        $response = $this->getResponse($arPost);
        if (empty($response['errors']))
        {
            $this->output = $arr;
            return true;
        }
        else
        {
            $this->errors = $response['errors'];
        }
        return false;
    }
    
    /*======================================================================*\
    Function:    output
    Descriiption: Выплата
    \*======================================================================*/
    public function output()
    {
        $arPost = $this->output;
        $arPost['action'] = 'output';
        $response = $this->getResponse($arPost);
        if (empty($response['errors']))
        {
            return $response['historyId'];
        }
        else
        {
            $this->errors = $response['errors'];
        }
        return false;
    }
    
    /*======================================================================*\
    Function:    getHistoryInfo
    Descriiption: Получение истории
    \*======================================================================*/
    public function getHistoryInfo($historyId)
    {
        $arPost = array(
            'action' => 'historyInfo',
            'historyId' => $historyId
        );
        $response = $this->getResponse($arPost);
        return $response;
    }
    
    
    /*======================================================================*\
    Function:    getBalance
    Descriiption: Получение баланса
    \*======================================================================*/
    public function getBalance()
    {
        $arPost = array(
            'action' => 'balance',
        );
        $response = $this->getResponse($arPost);
        return $response;
    }
    
    
    /*======================================================================*\
    Function:    getErrors
    Descriiption: Возвращает ошибку
    \*======================================================================*/
    public function getErrors()
    {
        return $this->errors;
    }
    
    
    /*======================================================================*\
    Function:    transfer
    Descriiption: Никуя не вникал что это за метод...
    \*======================================================================*/
    public function transfer($arPost)
    {
        $arPost['action'] = 'transfer';
        $response = $this->getResponse($arPost);
        return $response;
    }
    
}
?>
 

pligin

Команда форума
Администратор
Вот сайт fermerstroy.ru не реклама. Здесь имеются автовыплаты на множество систем. Меня интересует payeer. Я всё прописал во всех файлах и .тд. но привыводе пишет Ошибка [Array ( [0] => Sum should not be less than 1 RUB ) ] - попробуйте через 10-15 секунд или сообщите о ней администратору! #2 Я вводил суммы больше 1 rub но не работает. Вот код:
PHP:
<div class="s-bk-lf">
    <div class="acc-title">Заказ выплаты</div>
</div>

<div class="silver-bk">
    <BR />
<?PHP
$_OPTIMIZATION["title"] = "Аккаунт - Заказ выплаты";
$user_id = $_SESSION["user_id"];
$usname = $_SESSION["user"];

$db->Query("SELECT * FROM db_users_b WHERE id = '$user_id' LIMIT 1");
$user_data = $db->FetchArray();

$db->Query("SELECT * FROM db_config WHERE id = '1' LIMIT 1");
$sonfig_site = $db->FetchArray();

$status_array = array( 0 => "Проверяется", 1 => "Выплачивается", 2 => "Отменена", 3 => "Выплачено");
# Минималка серебром!
$minPay = 150;
?>



<?PHP
# Заносим выплату
if(isset($_POST['swap'])){ // проверка: была ли отправлена форма
    if(!empty($_POST['purse'])){
        $ps = Array(
        'Payeer'=>'1136053',
        'QIWI'=>'60792237',
        'Яндекс'=>'25344',
        'Билайн'=>'24898938',
        'Мегафон'=>'24899391',
        'МТС'=>'24899291',
        'ТЕЛЕ2'=>'95877310',
        'VISA' =>'117146509',
        'MASTERCARD' =>'57644634',
        'MAESTRO' =>'57766314'
        );
        $ps = $db->RealEscape(htmlspecialchars($ps[$_POST['ps']]));
        if(!empty($ps)){
            if ($db->RealEscape(htmlspecialchars($_POST['ps'] == 'Payeer'))){
                function ViewPurse($purse){
                    if( substr($purse,0,1) != "P" ) return false;
                    if( !preg_match("#^[0-9]{7,8}$#", substr($purse,1)) ) return false; 
                    return $purse;
                }
            }
            if($db->RealEscape(htmlspecialchars($_POST['ps'] == 'Яндекс'))){
                function ViewPurse($purse){
                    if( !preg_match("#^41001[0-9]{7,10}$#",$purse) ) return false;
                    return $purse;
                }
                $minPay = '1000';
            }
            if($db->RealEscape(htmlspecialchars($_POST['ps'] == 'QIWI'))){
                function ViewPurse($purse){
                    if( !preg_match("#^\+(91|994|82|372|375|374|44|998|972|66|90|81|1|507|7|77|380|371|370|996|9955|992|373|84)[0-9]{6,14}$#",$purse) ) return false;
                    return $purse;
                }
                $minPay = '1000';
            }
            if(isset($_POST['phone']) && $db->RealEscape(htmlspecialchars($_POST['ps'] != 'QIWI'))){
                function ViewPurse($purse){
                    if( !preg_match("#^[\+]{1}[7]{1}[9]{1}[\d]{9}$#",$purse) ) return false;
                    return $purse;
                }
                $minPay = '1000';
            }
          
            if($db->RealEscape(htmlspecialchars($_POST['ps'] == 'VISA'))){
                function ViewPurse($purse){
                    if(!preg_match("#^([45]{1}[\d]{15}|[6]{1}[\d]{17})$#",$purse)) return false;
                    return $purse;
                }
            }
            if($db->RealEscape(htmlspecialchars($_POST['ps'] == 'MASTERCARD'))){
                function ViewPurse($purse){
                    if( !preg_match("#^([45]{1}[\d]{15}|[6]{1}[\d]{17})$#",$purse) ) return false;
                    return $purse;
                }
              
            }
            if($db->RealEscape(htmlspecialchars($_POST['ps'] == 'MAESTRO'))){
                function ViewPurse($purse){
                    if( !preg_match("#^([45]{1}[\d]{15}|[6]{1}[\d]{15,17})$#",$purse) ) return false;
                    return $purse;
                }
              
            }
            if(isset($_POST['card'])){
                $minPay = '65000';
                function ViewPerson($person){
                    if( !preg_match("#^([a-zA-ZА-Яабвгдеёжзийклмнопрстуфхцчшщьыъэюя\.\-\' ]+)$#",$person) ) return false;
                    return $person;
                }
                $person = ViewPerson($_POST['person']);
            }
            $purse = ViewPurse($_POST['purse']);
            if($purse != false){
            if((!empty($person) AND $person != false) OR !isset($person)){
                $sum = round(intval($_POST['sum']),2);
                $val = 'RUB';
                if($sum >= $minPay){
                    if($sum <= $user_data['money_p']){
                    # Проверяем на существующие заявки
                        $db->Query("SELECT COUNT(*) FROM db_payment WHERE user_id = '$user_id' AND (status = '0' OR status = '1')");
                        if($db->FetchRow() == 0){
                            $sum_pay = round( ($sum / $config_site['ser_per_wmr']), 2);
                            # Делаем выплату
                                $payeer = new rfs_payeer($config->AccountNumber, $config->apiId, $config->apiKey);
                                if ($payeer->isAuth()){
                                    $arBalance = $payeer->getBalance();
                                    if($arBalance['auth_error'] == 0){
                                        $balance = $arBalance['balance']['RUB']['DOSTUPNO'];
                                        if($balance >= $sum_pay){
                                            $array = array(
                                                'action' => 'output',
                                                'ps' => $ps,
                                                'curIn' => $val, // счет списания
                                                'sumOut' => $sum_pay, // сумма получения
                                                'curOut' => $val, // валюта получения
                                                'param_ACCOUNT_NUMBER' => $purse // получатель
                                            );
                                            if(!empty($person)){
                                                $array['param_CONTACT_PERSON'] = $person;
                                            }
                                            $initOutput = $payeer->initOutput($array);
                                            if ($initOutput){
                                                $historyId = $payeer->output();
                                                    if ($historyId > 0){
                                                    # Снимаем с пользователя
                                                        $db->Query("UPDATE db_users_b SET money_p = money_p - '$sum', payment_sum = payment_sum + '$sum_pay' WHERE id = '$user_id'");
                                                      
                                                        # Вставляем запись в выплаты
                                                        $da = time();
                                                        $dd = $da + 60*60*24*15;
                                                      
                                                        $ppid = $arTransfer["historyId"];
                                                          
                                                        $db->Query("INSERT INTO db_payment (user, user_id, purse, sum, valuta, serebro, pay_sys_id, payment_id, date_add, status) VALUES ('$usname','$user_id','$purse','$sum_pay','RUB', '$sum', '$ps', '$ppid','".time()."', '3')");
                                                          
                                                        $db->Query("UPDATE db_stats SET all_payments = all_payments + '$sum_pay' WHERE id = '1'");
                                                        echo "<center><font color = 'green'><b>Выплачено!</b></font></center><BR />";
                                                        $db->Query("SELECT * FROM db_users_b WHERE id = '$user_id' LIMIT 1");
                                                        $user_data = $db->FetchArray();
                                                    }else{
                                                        echo '<center><font color = "red"><b>Ошибка ['.print_r($payeer->getErrors(), true).'] - попробуйте через 10-15 секунд или сообщите о ней администратору! #1</b></font></center><BR />';
                                                    }
                                            }else{
                                                echo '<center><font color = "red"><b>Ошибка ['.print_r($payeer->getErrors(), true).'] - попробуйте через 10-15 секунд или сообщите о ней администратору! #2</b></font></center><BR />';
                                            }
                                        }else echo '<center><font color = "red"><b>Сервер перегружен - попробуйте через 10-15 секунд или сообщите о ней администратору</b></font></center><BR />';
                                    }else echo '<center><font color = "red"><b>Не удалось выплатить! Попробуйте позже.</b></font></center><BR />';
                                }else echo '<center><font color = "red"><b>Не удалось выплатить! Попробуйте позже. Ошибка № 631 </b></font></center><BR />';
                            }else echo '<center><font color = "red"><b>У вас имеются необработанные заявки. Дождитесь их выполнения.</b></font></center><BR />';
                    }else echo '<center><font color = "red"><b>Вы указали больше, чем имеется на вашем счету.</b></font></center><BR />';
                }else echo '<center><b><font color = "red">Минимальная сумма для выплаты составляет '.$minPay.' золота!</font></b></center><BR />';
                }else echo '<center><b><font color = "red">Данные держателя карты указаны неверно!</font></b></center><BR />';
            }else echo '<center><b><font color = "red">Номер счета '.$purse.' указан неверно</font></b></center><BR />';
        }else echo '<center><b><font color = "red">Платежная система не указана!</font></b></center><BR />';
    }else echo '<center><b><font color = "red">Вы не ввели номер кошелька</font></b></center><BR />';
}
?>
<style>
    .selectPS{
    display: inline-block;
    width: 100px;
    vertical-align: top;
    text-align: center;
    padding: 5px 5px 10px 5px;
    margin: 5px 2px;
    border: 2px dotted #fff4e3;
    cursor: pointer;
}
.selectPS:hover{
    border: 2px dotted #cb8851;
    background: #fde6c3;
}
.selectPS .imagesps{
    width: 55px;
    box-sizing: border-box;
    height: 55px;
    display: inline-block;
}
.selectPS label{
    font-size: 8pt;
    display: block;
    margin-top: 10px;
}
</style>
<script type="text/javascript">
function addfield(ps,name){
    var el = document.getElementById('new');
    var el1 = document.getElementById('new1');
    var el2 = document.getElementById('new2');
    var el3 = document.getElementById('new3');
    if(el){el.parentNode.removeChild(el);}
    if(el1){el1.parentNode.removeChild(el1);}
    if(el2){el2.parentNode.removeChild(el2);}
    if(el3){el3.parentNode.removeChild(el3);}
    if(ps == 'phone'){
        var newTd = document.createElement('td');
        newTd['id'] = 'new';
        newTd.innerHTML = '<font color="#000;">Номер телефона '+name+':</font>';
        paysys.insertBefore(newTd, paysys.children[0]);
        var newTd = document.createElement('td');
        newTd['id'] = 'new1';
        newTd.innerHTML = '<input type="text" name="purse" size="15"><input type="hidden" name="ps" value="'+name+'"><input type="hidden" name="phone">';
        paysys.insertBefore(newTd, paysys.children[1]);
        min = 1000;
        document.getElementById('str_min').style.display = 'inline';
        document.getElementById('min').innerHTML = min;
        document.getElementById('name_ps').innerHTML = name;
    }
    if(ps == 'eps'){
        var newTd = document.createElement('td');
        newTd['id'] = 'new';
        newTd.innerHTML = '<font color="#000;">Номер счета '+name+':</font>';
        paysys.insertBefore(newTd, paysys.children[0]);
        var newTd = document.createElement('td');
        newTd['id'] = 'new1';
        newTd.innerHTML = '<input type="text" name="purse" size="15"><input type="hidden" name="ps" value="'+name+'">';
        paysys.insertBefore(newTd, paysys.children[1]);
        min = <?=$minPay;?>;
        if(name == 'Яндекс'){min = 1000;}
        document.getElementById('str_min').style.display = 'inline';
        document.getElementById('min').innerHTML = min;
        document.getElementById('name_ps').innerHTML = name;
    } 
    if(ps == 'card'){
        var newTd = document.createElement('td');
        newTd['id'] = 'new';
        newTd.innerHTML = '<font color="#000;">Номер карты '+name+':</font>';
        paysys.insertBefore(newTd, paysys.children[0]);
        var newTd = document.createElement('td');
        newTd['id'] = 'new1';
        newTd.innerHTML = '<input type="text" name="purse" size="15"><input type="hidden" name="ps" value="'+name+'"><input type="hidden" name="card">';
        paysys.insertBefore(newTd, paysys.children[1]);
        var newTd = document.createElement('td');
        newTd['id'] = 'new2';
        newTd.innerHTML = '<font color="#000;">Имя, Фамилия держателя:</font>';
        person.insertBefore(newTd, person.children[0]);
        var newTd = document.createElement('td');
        newTd['id'] = 'new3';
        newTd.innerHTML = '<input type="text" name="person" size="15">';
        person.insertBefore(newTd, person.children[1]);
        min = 65000;
        document.getElementById('str_min').style.display = 'inline';
        document.getElementById('min').innerHTML = min;
        document.getElementById('name_ps').innerHTML = name;
    }
}
</script>



<?PHP
# Заглушка от халявщиков
if($user_data["kredit"] >= 1 or $user_data["insert_sum"] <= 99.99){

?>
  <center><font color="red"><b>У Вас не погашен кредит или вы не пополнили баланс на 100р</center></center>
</div>
<div class="clr"></div>                                <div class="clr"></div> 
                            <br>
                            <br>
                            </div>
                        <div class="clr"></div>
                      
<?PHP

return;
}

?>


    <div align="center">

                            <div class="selectPS" >
                            <div class="imagesps" style="background: url(/img/ps/payeer.png) no-repeat 50%;" onclick="addfield('eps','Payeer');"></div>
                            <label>Выплаты Payeer</label>
                    </div>
                            <div class="selectPS" >
                            <div class="imagesps" style="background: url(/img/ps/qiwi.png) no-repeat 50%;" onclick="addfield('phone','QIWI');"></div>
                            <label>Выплаты QIWI</label>
                    </div>
                            <div class="selectPS">
                            <div class="imagesps" style="background: url(/img/ps/yandex.png) no-repeat 50%;" onclick="addfield('eps','Яндекс');"></div>
                            <label>Выплаты Яндекс.Деньги</label>
                    </div>
                            <div class="selectPS">
                            <div class="imagesps" style="background: url(/img/ps/beeline.png) no-repeat 50%;" onclick="addfield('phone','Билайн');"></div>
                            <label>Выплаты на сотовый (БИЛАЙН)</label>
                    </div>
                                        <div class="selectPS">
                            <div class="imagesps" style="background: url(/img/ps/megafon.png) no-repeat 50%;" onclick="addfield('phone','Мегафон');"></div>
                            <label>Выплаты на сотовый (МЕГАФОН)</label>
                    </div>
                                        <div class="selectPS">
                            <div class="imagesps" style="background: url(/img/ps/mts.png) no-repeat 50%;" onclick="addfield('phone','МТС');"></div>
                            <label>Выплаты на сотовый (МТС)</label>
                    </div>
                                        <div class="selectPS">
                            <div class="imagesps" style="background: url(/img/ps/tele2.png) no-repeat 50%;" onclick="addfield('phone','ТЕЛЕ2');"></div>
                            <label>Выплаты на сотовый (ТЕЛЕ2)</label>
                    </div>
                                        <div class="selectPS">
                            <div class="imagesps" style="background: url(/img/ps/visa.png) no-repeat 50%;"  onclick="addfield('card','VISA');"></div>
                            <label>Выплаты VISA</label>
                    </div>
                                        <div class="selectPS">
                            <div class="imagesps" style="background: url(/img/ps/master.png) no-repeat 50%;" onclick="addfield('card','MASTERCARD');"></div>
                            <label>Выплаты MASTERCARD</label>
                    </div>
                                        <div class="selectPS">
                            <div class="imagesps" style="background: url(/img/ps/maestro.png) no-repeat 50%;" onclick="addfield('card','MAESTRO');"></div>
                            <label>Выплаты MAESTRO</label>
                    </div>
                          
    </div>
<div id="str_min" style="display:none">Минимальная сумма выплаты на <span id="name_ps"></span> составляет <span id="min"></span> серебра.</div><br>



<form action="" method="post">
<table id="pay"width="99%" border="0" align="center">
  <tr id="paysys"></tr>
  <tr id="person"></tr>
  <tr>
    <td><font color="#000;">Сумма для вывода (монеты)</font><font color="#000;">:</font> </td>
    <td><input type="text" name="sum" id="sum" value="<?=round($user_data['money_p']); ?>" size="15" /></td>
  
  </tr>
  <!--  <tr>
    <td><font color="#000;">Получаете <span id="res_val"></span></font><font color="#000;">:</font> </td>
    <td>
    <input type="text" name="res" id="res_sum" value="0" size="15" disabled="disabled"/>
    <input type="hidden" name="per" id="RUB" value="<?=$sonfig_site["ser_per_wmr"]; ?>" disabled="disabled"/>
    <input type="hidden" name="per" id="min_sum_RUB" value="0.5" disabled="disabled"/>
    <input type="hidden" name="val_type" id="val_type" value="RUB" />
    </td>
  </tr> -->
  <tr>
    <td colspan="2" align="center">
    <input type="submit" name="swap" value="Заказать выплату" style="height: 30px; margin-top:10px;" /></td>
  </tr>
</table>
</form>
<?$minPay = '';?>

<table cellpadding='3' cellspacing='0' border='0' bordercolor='#336633' align='center' width="99%">
  <tr>
    <td colspan="5" align="center"><h4>Последние 10 выплат</h4></td>
    </tr>
  <tr>
    <td align="center" class="m-tb">Серебро</td>
    <td align="center" class="m-tb">Получаете</td>
    <td align="center" class="m-tb">ПС</td>
    <td align="center" class="m-tb">Кошелек</td>
    <td align="center" class="m-tb">Дата</td>
    <td align="center" class="m-tb">Статус</td>
  </tr>
  <?PHP

  $db->Query("SELECT * FROM db_payment WHERE user_id = '$user_id' ORDER BY id DESC LIMIT 20");

    if($db->NumRows() > 0){
    $img = Array(
        '1136053'=>'payeer',
        '60792237'=>'qiwi',
        '25344'=>'yandex',
        '24898938'=>'beeline',
        '24899391'=>'megafon',
        '24899291'=>'mts',
        '95877310'=>'tele2',
        '117146509' =>'visa',
        '57644634' =>'master',
        '57766314' =>'maestro'
        );
          while($ref = $db->FetchArray()){
      
        ?>
        <tr class="htt">
            <td align="center"><?=$ref["serebro"]; ?></td>
            <td align="center"><?=sprintf("%.2f",$ref["sum"] - $ref["comission"]); ?> <?=$ref["valuta"]; ?></td>
            <td align="center"><? if(!empty($ref["pay_sys_id"])){echo '<img src="/img/ps/'.$img[$ref["pay_sys_id"]].'.png" width="25px">';}?></td>
            <td align="center"><?=$ref["purse"]; ?></td>
            <td align="center"><?=date("d.m.Y",$ref["date_add"]); ?></td>
            <td align="center"><?=$status_array[$ref["status"]]; ?></td>
          </tr>
        <?PHP
      
        }

    }else echo '<tr><td align="center" colspan="5">Нет записей</td></tr>'

  ?>

</table><div class="clr"></div>
</div>
Подозревую что это связано с массивом, так как ошибка эта выбивается под номер 2 и можно увидеть, что если это неверно if ($initOutput), то выскакивает данная ошибка
И расскажи, пожалуйста, где ты взял этот модуль
 

pligin

Команда форума
Администратор
А вы обработчик проверили на исправность?
Не путайте обработчик с классом функций для работы с API Payeer.
Зачем его проверять? Он скачан с сайта Payeer...
Но если ты там что-то правил, то с этим тебе никто помогать не будет - можно его скачать с сайта Payeer
 

Windson

Участник
Не путайте обработчик с классом функций для работы с API Payeer.
Зачем его проверять? Он скачан с сайта Payeer...
Но если ты там что-то правил, то с этим тебе никто помогать не будет - можно его скачать с сайта Payeer
Всё понял. Я там ничего не менял, буду ждать вечера вам за помощь нужны деньги?
 

Windson

Участник
После
PHP:
if(isset($_POST['swap'])){
Добавь print_r($_POST);
Сделай выплату и пришли массив, который тебе отобразится
Array ( [purse] => P74543141 [ps] => Payeer [sum] => 1009 [swap] => Заказать выплату )Ошибка [Array ( [0] => Sum should not be less than 1 RUB ) ] - попробуйте через 10-15 секунд или сообщите о ней администратору! #2
 

DjSuzuki

Местный
Array ( [purse] => P74543141 [ps] => Payeer [sum] => 1009 [swap] => Заказать выплату )Ошибка [Array ( [0] => Sum should not be less than 1 RUB ) ] - попробуйте через 10-15 секунд или сообщите о ней администратору! #2
Скачай Автоматические Выплаты через Паер и замени свой файл выплат на это
 
Верх