РЕШЕНО Автовыплата

Статус
Закрыто для дальнейших ответов.

xakmika

Местный
Привет ребят. У меня не работает автовыплата, а ручной нету
_class.rfs_payeer.php
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;

    }

    

}

?>
_payments.php

PHP:
<div class="page-header">
    <h1>Список выплат</h1>
</div>

<center><a href="index.php?menu=payments">Выплачено</a> || <a href="index.php?menu=payments&balance">Баланс на Payeer</a> ||
<a href="index.php?menu=payments&list_day">По дням</a> || <a href="index.php?menu=payments&last_31">График за 30 дней</a></center><BR />
 
 
<?PHP

    if(isset($_POST["back"])){
    $db->Query("SELECT id,serebro,user_id FROM db_payment WHERE id='".intval($_POST[back])."'");
    $data = $db->FetchArray();
    
    $db->Query("UPDATE db_users_b SET money_p = money_p + '$data[serebro]' WHERE id = '$data[user_id]'");
    $db->Query("UPDATE db_payment SET status = '2' WHERE id = '$data[id]'");

        echo "<center><font color = 'green'><b>Возвращено</b></font></center><BR />";
    }
    
    if(isset($_POST["ok"])){
    $db->Query("SELECT * FROM db_payment WHERE id='".intval($_POST[ok])."'");
    $data = $db->FetchArray();
    $sum_pay=$data[sum];
    $pp=$data[pp];
    $purse=$data[purse];
    ### Делаем выплату ###   
                            $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"];
                                        $lb=$balance-$sum_pay;
                                        if($lb>$limit){
                                    if($pp=='Qiwi'){
                                    $smp=$sum_pay/100*5;
                                    if($smp<0){ $smp=0;}
                                    $sum_pay=($sum_pay)-($smp);
                                    }elseif($pp!='Payeer'){
                                    $sum_pay=($sum_pay)-($sum_pay/100*5);}
                                    if($pp=='Qiwi'){$tip=26808;  }
                                    if($pp=='Yandex'){$tip=57378077; }
                                    if($pp=='Mts'){$tip=24899291; }
                                    if($pp=='megafon'){$tip=24899391; }
                                    //киви  яндекс вебмани
                                    if($pp=='Qiwi' or $pp=='Yandex' or $pp=='Webmoney' or $pp=='Mts' or $pp=='megafon'){
                                      // инициализация вывода
                                      $initOutput = $payeer->initOutput(array(
                                      // id платежной системы полученный из списка платежных систем
                                      'ps' => $tip,
                                        //'sumIn' => 1,
                                        // счет, с которого будет списаны средства         
                                      'curIn' => 'RUB',
                                        // сумма вывода
                                      'sumOut' => $sum_pay,
                                       // валюта вывода 
                                      'curOut' => 'RUB',
                                      'param_F_PHONE' => $phone,
                                       // Аккаунт получателя платежа 
                                      'param_ACCOUNT_NUMBER' => $purse
                                         ));
    
                                      if ($initOutput)
                                      {
                                    // Вывод средств
                                      $historyId = $payeer->output();
                                      if ($historyId)
                                      {
                                        
                                            $db->Query("UPDATE db_payment SET status = '3' WHERE id = '$data[id]'");
                                            
                                            $db->Query("UPDATE db_users_b SET payment_sum = payment_sum + '$sum_pay' WHERE id = '$data[user_id]'");
                                            $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 />";
                                      }
                                      else
                                      {
                                         $erma=$payeer->getErrors();
                                      foreach ($erma as $value) {
                                     echo "<center><font color = 'red'><b>".iconv('UTF-8','windows-1251',$value)."</b></font></center><BR />";   
                                     }
                                       }
                                      }
                                      else
                                      {
                                      $erma=$payeer->getErrors();
                                      foreach ($erma as $value) {
                                     echo "<center><font color = 'red'><b>".iconv('UTF-8','windows-1251',$value)."</b></font></center><BR />";   
                                     }
                                      }  }else{
                                      
                                    //пеер
                                    
                                    $arTransfer = $payeer->transfer(array(
                                    'curIn' => 'RUB', // счет списания
                                    'sum' => $sum_pay, // сумма получения
                                    'curOut' => 'RUB', // валюта получения
                                    'to' => $purse, // получатель (email)
                                    'comment' => iconv('utf-8', 'utf-8', "Выплата пользователю ".$data[user]." с проекта Miners-Game")
                                
                                    ));
                                    
                                        if (!empty($arTransfer["historyId"]))
                                        {   
                                        
                                            $db->Query("UPDATE db_payment SET status = '3' WHERE id = '$data[id]'");
                                            
                                            $db->Query("UPDATE db_users_b SET payment_sum = payment_sum + '$sum_pay' WHERE id = '$data[user_id]'");
                                            $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 />";
                                            
                                        }
                                        else
                                        {
                                            echo "<center><font color = 'red'><b>".$arTransfer["errors"][0]."</b></font></center><BR />";   
                                        
                                        }
                                    }
                                    
                                    }else echo "<center><font color = 'red'><b>Не удалось выплатить!1</b></font></center><BR />";
                                    
                                }else echo "<center><font color = 'red'><b>Не удалось выплатить!2 </b></font></center><BR />";
                                
                            }else echo "<center><font color = 'red'><b>Не удалось выплатить!3 </b></font></center><BR />";

    }


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

if($db->NumRows() > 0){

?>
<table cellpadding='3' cellspacing='0' border='0' bordercolor='#336633' align='center' width="99%">
  <tr bgcolor="#efefef">
 
    <td align="center" class="m-tb">Пользователь</td>
    <td align="center" width="75" class="m-tb">кошелек</td>
    <td align="center" width="75" class="m-tb">сумма</td>
    <td align="center" width="150" class="m-tb">Дата</td>
    <td align="center" width="150" class="m-tb">Действие</td>
  </tr>


<?PHP

    while($data = $db->FetchArray()){
    
    ?>
    <tr class="htt">
 
    <td align="center"><?=$data["user"]; ?></td>
    <td align="center" width="75"><?=$data["purse"]; ?></td>
    <td align="center" width="75"><?=$data["sum"]; ?> руб</td>
    <td align="center" width="150"><?=date("d.m.Y в H:i:s",$data["date_add"]); ?></td>
    <td align="center" width="150"><br><form action="" method="post"><input type="text" name="back" value="<?=$data["id"]; ?>" hidden /><input type="submit" name="clean" value="Вернуть" /></form>
    <form action="" method="post"><input type="text" name="ok" value="<?=$data["id"]; ?>" hidden /><input type="submit" name="clean" value="Выплатить" /></form></td>
      </tr>
    <?PHP
    
    }

?>

</table>
<BR />
<?PHP

}else echo "<center><b>Записей нет</b></center><BR />";
?></br>


<?PHP
# График
if(isset($_GET["last_31"])){
    
    $dlim = time() - 60*60*24*30;
    $db->Query("SELECT * FROM db_payment WHERE date_add > $dlim ORDER BY id DESC");
    
    $days_money = array();
    $days_insert = array();
    
    if($db->NumRows() > 0){
        
        while($data = $db->FetchArray()){
        $index = date("d.m.Y", $data["date_add"]);
        
            $days_money[$index] = (isset($days_money[$index])) ? $days_money[$index] + $data["sum"] : $data["sum"];
            $days_insert[$index] = (isset($days_insert[$index])) ? $days_insert[$index] + 1 : 1;
            
        }
    
    # Вывод
    if(count($days_money) > 0){
        
        $array_for_chart = array();
        $array_for_chart2 = array();
        $array_for_chart3 = array();
        
            foreach($days_money as $date => $sum){
            
                $array_for_chart[] = "['".$date."', ".round($sum)."]";
                $array_for_chart2[] = "['".$date."', ".$days_insert[$date]."]";
                $array_for_chart3[] = "['".$date."', ".round($sum / $days_insert[$date], 2)."]";
            
            }
            
            $retd = implode(", ", array_reverse($array_for_chart));
            $retd2 = implode(", ", array_reverse($array_for_chart2));
            $retd3 = implode(", ", array_reverse($array_for_chart3));
            
        ?>

    <script type="text/javascript" src="https://www.google.com/jsapi"></script>
    <script type="text/javascript">
      google.load("visualization", "1", {packages:["corechart"]});
      google.setOnLoadCallback(drawChart);
      function drawChart() {
        var data = google.visualization.arrayToDataTable([
          ['День', 'Сумма'],
          <?=$retd; ?>
        ]);

        var options = {
          title: 'История Выплат (Сумма)',
          hAxis: {title: 'Last 30 Days',  titleTextStyle: {color: 'green'}}
        };

        var chart = new google.visualization.SteppedAreaChart(document.getElementById('chart_div'));
        chart.draw(data, options);
      }
    </script>
    <div id="chart_div" style="width: 100%; height: 500px;"></div>
    
    <script type="text/javascript">
      google.load("visualization", "1", {packages:["corechart"]});
      google.setOnLoadCallback(drawChart2);
      function drawChart2() {
        var data2 = google.visualization.arrayToDataTable([
          ['День', 'Кол-во'],
          <?=$retd2; ?>
        ]);

        var options2 = {
          title: 'История Выплат (Кол-во)',
          hAxis: {title: 'Last 30 Days',  titleTextStyle: {color: 'green'}}
        };

        var chart2 = new google.visualization.SteppedAreaChart(document.getElementById('chart_div2'));
        chart2.draw(data2, options2);
      }
    </script>
    <div id="chart_div2" style="width: 100%; height: 500px;"></div>
    <script type="text/javascript">
      google.load("visualization", "1", {packages:["corechart"]});
      google.setOnLoadCallback(drawChart3);
      function drawChart3() {
        var data3 = google.visualization.arrayToDataTable([
          ['День', 'Сумма'],
          <?=$retd3; ?>
        ]);

        var options3 = {
          title: 'AVG (Сумма / Кол-во)',
          hAxis: {title: 'Last 30 Days',  titleTextStyle: {color: 'green'}}
        };

        var chart3 = new google.visualization.SteppedAreaChart(document.getElementById('chart_div3'));
        chart3.draw(data3, options3);
      }
    </script>
    <div id="chart_div3" style="width: 100%; height: 500px;"></div>
    
    
        <?PHP
        
    }
    
    }else echo "<center><b>Записей нет</b></center><BR />";
    
    
    
?>


    <?PHP
return;
}


# Вывод статистики по дням
if(isset($_GET["list_day"])){

    $db->Query("SELECT * FROM db_payment ORDER BY id DESC");
    
    $days_money = array();
    $days_insert = array();
    
    if($db->NumRows() > 0){
        
        while($data = $db->FetchArray()){
        $index = date("d.m.Y", $data["date_add"]);
        
            $days_money[$index] = (isset($days_money[$index])) ? $days_money[$index] + $data["sum"] : $data["sum"];
            $days_insert[$index] = (isset($days_insert[$index])) ? $days_insert[$index] + 1 : 1;
            
        }
    
    # Вывод
    if(count($days_money) > 0){
    
        ?>
        <table cellpadding='3' cellspacing='0' border='0' bordercolor='#336633' align='center' width="99%">
          <tr bgcolor="#efefef">
            <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">AVG</td>
          </tr>
        <?PHP
        
        $array_for_chart = array();
        
            foreach($days_money as $date => $sum){
            
                ?>
                <tr class="htt">
                    <td align="center"><b><?=$date; ?></b></td>
                    <td align="center"><?=$days_insert[$date]; ?> шт.</td>
                    <td align="center"><?=$sum; ?> RUB</td>
                    <td align="center"><?=round($sum/$days_insert[$date],2); ?> RUB</td>
                </tr>
                <?PHP
                
            }
            
        ?>
        </table>
        <?PHP
        
    }
    
    }else echo "<center><b>Записей нет</b></center><BR />";
    
    
    
?>



 
<?PHP
return;
}

# Проверка баланса Payeer
if(isset($_GET["balance"])){

$payeer = new rfs_payeer($config->AccountNumber, $config->apiId, $config->apiKey);
    if ($payeer->isAuth())
    {
$arBalance = $payeer->getBalance();
$balancer = $arBalance["balance"]["RUB"]["DOSTUPNO"];
$balancee = $arBalance["balance"]["EUR"]["DOSTUPNO"];
$balanceu = $arBalance["balance"]["USD"]["DOSTUPNO"];
echo "<pre>".print_r($balancer, true)." RUB</pre>";
echo "<pre>".print_r($balancee, true)." EUR</pre>";
echo "<pre>".print_r($balanceu, true)." USD</pre>";
}else echo "not_settings";
    
?>
 





<?PHP

return;           
}   



$num_p = (isset($_GET["page"]) AND intval($_GET["page"]) < 1000 AND intval($_GET["page"]) >= 1) ? (intval($_GET["page"]) -1) : 0;
$lim = $num_p * 100;

$db->Query("SELECT * FROM db_payment ORDER BY id DESC LIMIT {$lim}, 100");

function colorSum($sum){

    if($sum >= 100) return "red";
    return "#000000";
}

if($db->NumRows() > 0){

?>
<table cellpadding='3' cellspacing='0' border='0' bordercolor='#336633' align='center' width="99%">
  <tr bgcolor="#efefef">
    <td align="center" width="50" class="m-tb">User</td>
    <td align="center" width="50" class="m-tb">Serebro</td>
    <td align="center" width="50" class="m-tb">Money</td>
    <td align="center" width="50" class="m-tb">Purse</td>
    <td align="center" width="50" class="m-tb">Date</td>
  </tr>


<?PHP

    while($data = $db->FetchArray()){
    
    ?>
    <tr class="htt">
    <td align="center"><a href="index.php?menu=users&edit=<?=$data["user_id"]; ?>" class="stn"><?=$data["user"]; ?></a></td>
    <td align="center"><?=$data["serebro"]; ?></td>
    
    
    
    <td align="center"><font color="<?=colorSum($data["sum"]); ?>"><?=sprintf("%.2f",$data["sum"]); ?> <?=$data["valuta"]; ?></font></td>
    <td align="center"><?=$data["purse"]; ?></td>
    <td align="center"><?=date("d.m H:i:s",$data["date_add"]); ?></td>
      </tr>
    <?PHP
    
    }

?>

</table>
<BR />
<?PHP


}else echo "<center><b>На данной странице нет записей</b></center><BR />";

    
$db->Query("SELECT COUNT(*) FROM db_payment");
$all_pages = $db->FetchRow();

    if($all_pages > 100){
    
    $sort_b = (isset($_GET["sort"])) ? intval($_GET["sort"]) : 0;
    
    $nav = new navigator;
    $page = (isset($_GET["page"]) AND intval($_GET["page"]) < 1000 AND intval($_GET["page"]) >= 1) ? (intval($_GET["page"])) : 1;
    
    echo "<BR /><center>".$nav->Navigation(10, $page, ceil($all_pages / 100), "index.php?menu=payments&page="), "</center>";
    
    }
?>
Ошибку выдаёт эту

Не удалось выплатить!3
 

pligin

Команда форума
Администратор
Привет ребят. У меня не работает автовыплата, а ручной нету
_class.rfs_payeer.php
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;

    }

   

}

?>
_payments.php

PHP:
<div class="page-header">
    <h1>Список выплат</h1>
</div>

<center><a href="index.php?menu=payments">Выплачено</a> || <a href="index.php?menu=payments&balance">Баланс на Payeer</a> ||
<a href="index.php?menu=payments&list_day">По дням</a> || <a href="index.php?menu=payments&last_31">График за 30 дней</a></center><BR />


<?PHP

    if(isset($_POST["back"])){
    $db->Query("SELECT id,serebro,user_id FROM db_payment WHERE id='".intval($_POST[back])."'");
    $data = $db->FetchArray();
   
    $db->Query("UPDATE db_users_b SET money_p = money_p + '$data[serebro]' WHERE id = '$data[user_id]'");
    $db->Query("UPDATE db_payment SET status = '2' WHERE id = '$data[id]'");

        echo "<center><font color = 'green'><b>Возвращено</b></font></center><BR />";
    }
   
    if(isset($_POST["ok"])){
    $db->Query("SELECT * FROM db_payment WHERE id='".intval($_POST[ok])."'");
    $data = $db->FetchArray();
    $sum_pay=$data[sum];
    $pp=$data[pp];
    $purse=$data[purse];
    ### Делаем выплату ###  
                            $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"];
                                        $lb=$balance-$sum_pay;
                                        if($lb>$limit){
                                    if($pp=='Qiwi'){
                                    $smp=$sum_pay/100*5;
                                    if($smp<0){ $smp=0;}
                                    $sum_pay=($sum_pay)-($smp);
                                    }elseif($pp!='Payeer'){
                                    $sum_pay=($sum_pay)-($sum_pay/100*5);}
                                    if($pp=='Qiwi'){$tip=26808;  }
                                    if($pp=='Yandex'){$tip=57378077; }
                                    if($pp=='Mts'){$tip=24899291; }
                                    if($pp=='megafon'){$tip=24899391; }
                                    //киви  яндекс вебмани
                                    if($pp=='Qiwi' or $pp=='Yandex' or $pp=='Webmoney' or $pp=='Mts' or $pp=='megafon'){
                                      // инициализация вывода
                                      $initOutput = $payeer->initOutput(array(
                                      // id платежной системы полученный из списка платежных систем
                                      'ps' => $tip,
                                        //'sumIn' => 1,
                                        // счет, с которого будет списаны средства        
                                      'curIn' => 'RUB',
                                        // сумма вывода
                                      'sumOut' => $sum_pay,
                                       // валюта вывода
                                      'curOut' => 'RUB',
                                      'param_F_PHONE' => $phone,
                                       // Аккаунт получателя платежа
                                      'param_ACCOUNT_NUMBER' => $purse
                                         ));
   
                                      if ($initOutput)
                                      {
                                    // Вывод средств
                                      $historyId = $payeer->output();
                                      if ($historyId)
                                      {
                                       
                                            $db->Query("UPDATE db_payment SET status = '3' WHERE id = '$data[id]'");
                                           
                                            $db->Query("UPDATE db_users_b SET payment_sum = payment_sum + '$sum_pay' WHERE id = '$data[user_id]'");
                                            $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 />";
                                      }
                                      else
                                      {
                                         $erma=$payeer->getErrors();
                                      foreach ($erma as $value) {
                                     echo "<center><font color = 'red'><b>".iconv('UTF-8','windows-1251',$value)."</b></font></center><BR />";  
                                     }
                                       }
                                      }
                                      else
                                      {
                                      $erma=$payeer->getErrors();
                                      foreach ($erma as $value) {
                                     echo "<center><font color = 'red'><b>".iconv('UTF-8','windows-1251',$value)."</b></font></center><BR />";  
                                     }
                                      }  }else{
                                     
                                    //пеер
                                   
                                    $arTransfer = $payeer->transfer(array(
                                    'curIn' => 'RUB', // счет списания
                                    'sum' => $sum_pay, // сумма получения
                                    'curOut' => 'RUB', // валюта получения
                                    'to' => $purse, // получатель (email)
                                    'comment' => iconv('utf-8', 'utf-8', "Выплата пользователю ".$data[user]." с проекта Miners-Game")
                               
                                    ));
                                   
                                        if (!empty($arTransfer["historyId"]))
                                        {  
                                       
                                            $db->Query("UPDATE db_payment SET status = '3' WHERE id = '$data[id]'");
                                           
                                            $db->Query("UPDATE db_users_b SET payment_sum = payment_sum + '$sum_pay' WHERE id = '$data[user_id]'");
                                            $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 />";
                                           
                                        }
                                        else
                                        {
                                            echo "<center><font color = 'red'><b>".$arTransfer["errors"][0]."</b></font></center><BR />";  
                                       
                                        }
                                    }
                                   
                                    }else echo "<center><font color = 'red'><b>Не удалось выплатить!1</b></font></center><BR />";
                                   
                                }else echo "<center><font color = 'red'><b>Не удалось выплатить!2 </b></font></center><BR />";
                               
                            }else echo "<center><font color = 'red'><b>Не удалось выплатить!3 </b></font></center><BR />";

    }


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

if($db->NumRows() > 0){

?>
<table cellpadding='3' cellspacing='0' border='0' bordercolor='#336633' align='center' width="99%">
  <tr bgcolor="#efefef">

    <td align="center" class="m-tb">Пользователь</td>
    <td align="center" width="75" class="m-tb">кошелек</td>
    <td align="center" width="75" class="m-tb">сумма</td>
    <td align="center" width="150" class="m-tb">Дата</td>
    <td align="center" width="150" class="m-tb">Действие</td>
  </tr>


<?PHP

    while($data = $db->FetchArray()){
   
    ?>
    <tr class="htt">

    <td align="center"><?=$data["user"]; ?></td>
    <td align="center" width="75"><?=$data["purse"]; ?></td>
    <td align="center" width="75"><?=$data["sum"]; ?> руб</td>
    <td align="center" width="150"><?=date("d.m.Y в H:i:s",$data["date_add"]); ?></td>
    <td align="center" width="150"><br><form action="" method="post"><input type="text" name="back" value="<?=$data["id"]; ?>" hidden /><input type="submit" name="clean" value="Вернуть" /></form>
    <form action="" method="post"><input type="text" name="ok" value="<?=$data["id"]; ?>" hidden /><input type="submit" name="clean" value="Выплатить" /></form></td>
      </tr>
    <?PHP
   
    }

?>

</table>
<BR />
<?PHP

}else echo "<center><b>Записей нет</b></center><BR />";
?></br>


<?PHP
# График
if(isset($_GET["last_31"])){
   
    $dlim = time() - 60*60*24*30;
    $db->Query("SELECT * FROM db_payment WHERE date_add > $dlim ORDER BY id DESC");
   
    $days_money = array();
    $days_insert = array();
   
    if($db->NumRows() > 0){
       
        while($data = $db->FetchArray()){
        $index = date("d.m.Y", $data["date_add"]);
       
            $days_money[$index] = (isset($days_money[$index])) ? $days_money[$index] + $data["sum"] : $data["sum"];
            $days_insert[$index] = (isset($days_insert[$index])) ? $days_insert[$index] + 1 : 1;
           
        }
   
    # Вывод
    if(count($days_money) > 0){
       
        $array_for_chart = array();
        $array_for_chart2 = array();
        $array_for_chart3 = array();
       
            foreach($days_money as $date => $sum){
           
                $array_for_chart[] = "['".$date."', ".round($sum)."]";
                $array_for_chart2[] = "['".$date."', ".$days_insert[$date]."]";
                $array_for_chart3[] = "['".$date."', ".round($sum / $days_insert[$date], 2)."]";
           
            }
           
            $retd = implode(", ", array_reverse($array_for_chart));
            $retd2 = implode(", ", array_reverse($array_for_chart2));
            $retd3 = implode(", ", array_reverse($array_for_chart3));
           
        ?>

    <script type="text/javascript" src="https://www.google.com/jsapi"></script>
    <script type="text/javascript">
      google.load("visualization", "1", {packages:["corechart"]});
      google.setOnLoadCallback(drawChart);
      function drawChart() {
        var data = google.visualization.arrayToDataTable([
          ['День', 'Сумма'],
          <?=$retd; ?>
        ]);

        var options = {
          title: 'История Выплат (Сумма)',
          hAxis: {title: 'Last 30 Days',  titleTextStyle: {color: 'green'}}
        };

        var chart = new google.visualization.SteppedAreaChart(document.getElementById('chart_div'));
        chart.draw(data, options);
      }
    </script>
    <div id="chart_div" style="width: 100%; height: 500px;"></div>
   
    <script type="text/javascript">
      google.load("visualization", "1", {packages:["corechart"]});
      google.setOnLoadCallback(drawChart2);
      function drawChart2() {
        var data2 = google.visualization.arrayToDataTable([
          ['День', 'Кол-во'],
          <?=$retd2; ?>
        ]);

        var options2 = {
          title: 'История Выплат (Кол-во)',
          hAxis: {title: 'Last 30 Days',  titleTextStyle: {color: 'green'}}
        };

        var chart2 = new google.visualization.SteppedAreaChart(document.getElementById('chart_div2'));
        chart2.draw(data2, options2);
      }
    </script>
    <div id="chart_div2" style="width: 100%; height: 500px;"></div>
    <script type="text/javascript">
      google.load("visualization", "1", {packages:["corechart"]});
      google.setOnLoadCallback(drawChart3);
      function drawChart3() {
        var data3 = google.visualization.arrayToDataTable([
          ['День', 'Сумма'],
          <?=$retd3; ?>
        ]);

        var options3 = {
          title: 'AVG (Сумма / Кол-во)',
          hAxis: {title: 'Last 30 Days',  titleTextStyle: {color: 'green'}}
        };

        var chart3 = new google.visualization.SteppedAreaChart(document.getElementById('chart_div3'));
        chart3.draw(data3, options3);
      }
    </script>
    <div id="chart_div3" style="width: 100%; height: 500px;"></div>
   
   
        <?PHP
       
    }
   
    }else echo "<center><b>Записей нет</b></center><BR />";
   
   
   
?>


    <?PHP
return;
}


# Вывод статистики по дням
if(isset($_GET["list_day"])){

    $db->Query("SELECT * FROM db_payment ORDER BY id DESC");
   
    $days_money = array();
    $days_insert = array();
   
    if($db->NumRows() > 0){
       
        while($data = $db->FetchArray()){
        $index = date("d.m.Y", $data["date_add"]);
       
            $days_money[$index] = (isset($days_money[$index])) ? $days_money[$index] + $data["sum"] : $data["sum"];
            $days_insert[$index] = (isset($days_insert[$index])) ? $days_insert[$index] + 1 : 1;
           
        }
   
    # Вывод
    if(count($days_money) > 0){
   
        ?>
        <table cellpadding='3' cellspacing='0' border='0' bordercolor='#336633' align='center' width="99%">
          <tr bgcolor="#efefef">
            <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">AVG</td>
          </tr>
        <?PHP
       
        $array_for_chart = array();
       
            foreach($days_money as $date => $sum){
           
                ?>
                <tr class="htt">
                    <td align="center"><b><?=$date; ?></b></td>
                    <td align="center"><?=$days_insert[$date]; ?> шт.</td>
                    <td align="center"><?=$sum; ?> RUB</td>
                    <td align="center"><?=round($sum/$days_insert[$date],2); ?> RUB</td>
                </tr>
                <?PHP
               
            }
           
        ?>
        </table>
        <?PHP
       
    }
   
    }else echo "<center><b>Записей нет</b></center><BR />";
   
   
   
?>




<?PHP
return;
}

# Проверка баланса Payeer
if(isset($_GET["balance"])){

$payeer = new rfs_payeer($config->AccountNumber, $config->apiId, $config->apiKey);
    if ($payeer->isAuth())
    {
$arBalance = $payeer->getBalance();
$balancer = $arBalance["balance"]["RUB"]["DOSTUPNO"];
$balancee = $arBalance["balance"]["EUR"]["DOSTUPNO"];
$balanceu = $arBalance["balance"]["USD"]["DOSTUPNO"];
echo "<pre>".print_r($balancer, true)." RUB</pre>";
echo "<pre>".print_r($balancee, true)." EUR</pre>";
echo "<pre>".print_r($balanceu, true)." USD</pre>";
}else echo "not_settings";
   
?>






<?PHP

return;          
}  



$num_p = (isset($_GET["page"]) AND intval($_GET["page"]) < 1000 AND intval($_GET["page"]) >= 1) ? (intval($_GET["page"]) -1) : 0;
$lim = $num_p * 100;

$db->Query("SELECT * FROM db_payment ORDER BY id DESC LIMIT {$lim}, 100");

function colorSum($sum){

    if($sum >= 100) return "red";
    return "#000000";
}

if($db->NumRows() > 0){

?>
<table cellpadding='3' cellspacing='0' border='0' bordercolor='#336633' align='center' width="99%">
  <tr bgcolor="#efefef">
    <td align="center" width="50" class="m-tb">User</td>
    <td align="center" width="50" class="m-tb">Serebro</td>
    <td align="center" width="50" class="m-tb">Money</td>
    <td align="center" width="50" class="m-tb">Purse</td>
    <td align="center" width="50" class="m-tb">Date</td>
  </tr>


<?PHP

    while($data = $db->FetchArray()){
   
    ?>
    <tr class="htt">
    <td align="center"><a href="index.php?menu=users&edit=<?=$data["user_id"]; ?>" class="stn"><?=$data["user"]; ?></a></td>
    <td align="center"><?=$data["serebro"]; ?></td>
   
   
   
    <td align="center"><font color="<?=colorSum($data["sum"]); ?>"><?=sprintf("%.2f",$data["sum"]); ?> <?=$data["valuta"]; ?></font></td>
    <td align="center"><?=$data["purse"]; ?></td>
    <td align="center"><?=date("d.m H:i:s",$data["date_add"]); ?></td>
      </tr>
    <?PHP
   
    }

?>

</table>
<BR />
<?PHP


}else echo "<center><b>На данной странице нет записей</b></center><BR />";

   
$db->Query("SELECT COUNT(*) FROM db_payment");
$all_pages = $db->FetchRow();

    if($all_pages > 100){
   
    $sort_b = (isset($_GET["sort"])) ? intval($_GET["sort"]) : 0;
   
    $nav = new navigator;
    $page = (isset($_GET["page"]) AND intval($_GET["page"]) < 1000 AND intval($_GET["page"]) >= 1) ? (intval($_GET["page"])) : 1;
   
    echo "<BR /><center>".$nav->Navigation(10, $page, ceil($all_pages / 100), "index.php?menu=payments&page="), "</center>";
   
    }
?>
Ошибку выдаёт эту

Не удалось выплатить!3
Нет авторизации в Payeer .
Данные указаны неверно
 

Stas79

Местный
Узнай IP для домена и пропиши в настройках массовых выплат.
 
Статус
Закрыто для дальнейших ответов.
Верх