Автор Тема: Как сделать прикрепление кошелька в разных файлах для выплат?  (Прочитано 133 раз)

0 Пользователей и 1 Гость просматривают эту тему.

nikogdaАвтор темы

  • *
  • Оффлайн
  • Награды Более 100 сообщений Три года на форуме !!! Более 10 созданных тем
  • Дата регистрации: Июль 2016
  • Сообщений: 120
  • Страна: ru
  • Поблагодарили: 2 раз(а)
  • Репутация +0/-0
  • Пол: Мужской
    • Награды
Здравствуйте.

У меня на фф стоит файл выплат payeer и не более. Решил расширить функционал и внедрил еще один файл, чтобы можно было выводить средства на Yandex через Payeer.

В файле выплат на payeer стоит php код прикрепления кошелька и соответственно после первой выплаты кошелек закрепляется в поле ввода.

В файле автоматические выплаты на Yandex кода прикрепления кошелька нет.

Я целый день пробовал разные комбинации наобум методом тыка и у меня получилось следующее:
когда вывел через payeer - кошелек закрепился  и также в  модуле Yandex, хотя там должен быть номер счета яндекс кошелька. Попробовал вывести через Yandex, кошелек яндекса закрепился в поле модуля выплаты на payeer.
В общим психанул, все удалил целый день просто в пустую.

Ребят, помогите в тяжелой и роковой ситуации, как сделать привязку кошелька  для файла выплат на яндекс отдельно от паер выплат.

Код payeer с встроенным php кодом для закрепления кошелька:
<?PHP
$_OPTIMIZATION["title"] = "Аккаунт - Заказ выплаты";
$usid = $_SESSION["user_id"];
$usname = $_SESSION["user"];
$db->Query("SELECT * FROM db_users_b WHERE id = '$usid' LIMIT 1");
$user_data = $db->FetchArray();
$db->Query("SELECT * FROM db_users_a WHERE id = '$usid' LIMIT 1");
$user_dataa = $db->FetchArray();
$db->Query("SELECT * FROM db_config WHERE id = '1' LIMIT 1");
$sonfig_site = $db->FetchArray();
$db->Query("SELECT * FROM db_payment WHERE user_id = '$usid' ORDER BY id DESC LIMIT 1");
$sonfig_purse = $db->FetchArray();
$status_array = array( 0 => "Проверяется", 1 => "Выплачивается", 2 => "Отменена", 3 => "Выплачено");
# Минималка серебром!
$minPay = 100;
?>
   <?PHP
# Заглушка от халявщиков
if($user_data["insert_sum"] <= 9.99 ){
?>
<center><div class="head_acc dib mb10">Выплату могут заказывать пользователи, <br>которые пополнили игровой баланс больше, чем на <font color="#04f946" class="head_acc dib mb10">10 RUB!</font></div><BR />
<a href="/account/insert"><input type="submit" class="ajax btn btn_reg btn_mini2" id="submit" value="Пополнить баланс"></a><BR /><BR />
<div class="head_acc dib mb10">После пополнения выплаты будут доступны в автоматическом режиме.</div></center>

<?PHP
return;
}
?>

<!--<b>На Вашем счету <a href="/account/plat_pt"><?=sprintf("%.2f",$user_data["pay_points"]); ?> баллов</a></b><BR />
<b>Ваших баллов хватает на выплату <?=sprintf("%.2f",$user_data["pay_points"]); ?> RUB (<?=sprintf("%.0f",$user_data["pay_points"]*$sonfig_site["ser_per_wmr"]); ?> серебра)</b>-->


<?PHP
   
   function ViewPurse($purse){
     
      if( substr($purse,0,1) != "P" ) return false;
      if( !ereg("^[0-9]{7,11}$", substr($purse,1)) ) return false;   
      return $purse;
   }
   
   # Заносим выплату
   if(isset($_POST["purse"])){
     
     
    if ($sonfig_purse["purse"]){
       $purse = $sonfig_purse["purse"];
    } else {
      $purse = ViewPurse($_POST["purse"]);
   }
   
      $sum = intval($_POST["sum"]);
      $val = "RUB";
     
      if($purse !== false){
         
            if($sum >= $minPay){
           
               if($sum <= $user_data["money_p"]){
                 
                  # Проверяем на существующие заявки
                  $db->Query("SELECT COUNT(*) FROM db_payment WHERE user_id = '$usid' AND (status = '0' OR status = '1')");
                  if($db->FetchRow() == 0){
                     
                     ### Делаем выплату ###   
                     $payeer = new rfs_payeer($config->AccountNumber, $config->apiId, $config->apiKey);
                     if ($payeer->isAuth())
                     {
                                $sum_pay = round( ($sum / $sonfig_site["ser_per_wmr"]), 2);
                        if($user_data["pay_points"] >= $sum_pay){
                       
                           $arBalance = $payeer->getBalance();
                           if($arBalance["auth_error"] == 0)
                           {
                             
                             
                             
                              $balance = $arBalance["balance"]["RUB"]["DOSTUPNO"];
                              if( ($balance) >= ($sum_pay+100)){
                             
                             
                             
                              $arTransfer = $payeer->transfer(array(
                              'curIn' => 'RUB', // счет списания
                              'sum' => $sum_pay, // сумма получения
                              'curOut' => 'RUB', // валюта получения
                              'to' => $purse, // получатель (email)
                              //'to' => '+71112223344',  // получатель (телефон)
                              //'to' => 'P1000000',  // получатель (номер счета)
                              'comment' => iconv('windows-1251', 'utf-8', "Выплата пользователю {$usname} с проекта my-money")
                              //'anonim' => 'Y', // анонимный перевод
                              //'protect' => 'Y', // протекция сделки
                              //'protectPeriod' => '3', // период протекции (от 1 до 30 дней)
                              //'protectCode' => '12345', // код протекции
                              ));
                             
                                 if (!empty($arTransfer["historyId"]))
                                 {   
                                 
                                 
                                    # Снимаем с пользователя
                                    $db->Query("UPDATE db_users_b SET money_p = money_p - '$sum', payment_sum = payment_sum + '$sum_pay', pay_points = pay_points - '$sum_pay' WHERE id = '$usid'");

                                   
                                    # Вставляем запись в выплаты
                                    $da = time();
                                    $dd = $da + 60*60*24*15;
                                   
                                    $ppid = $arTransfer["historyId"];
                                   
                                    $db->Query("INSERT INTO db_payment (user, user_id, purse, sum, valuta, serebro, payment_id, date_add, status)
                                    VALUES ('$usname','$usid','$purse','$sum_pay','RUB', '$sum','$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 />";
                                   
                                 }
                                 else
                                 {
                                 
                                    echo "<center><font color = 'green'><b>Минимальная сумма для выплаты: 1 руб!</b></font></center><BR /> ";   
                                 
                                 }
                             
                             
                              }else echo "<center><font color = 'green'><b>Шлюз перегружен, повторите попытку через 5-10 секунд</b></font></center><BR />";
                             
                           }else echo "<center><font color = 'green'><b>Не удалось выплатить! Попробуйте позже</b></font></center><BR />";
                       
                        }else echo "<center><font color = 'green'><b>Недостаточно платежных баллов </b></font></center><BR />";
                       
                     }else echo "<center><font color = 'green'><b>Не удалось выплатить! Попробуйте позже </b></font></center><BR />";   
                       
                  }else echo "<center><font color = 'green'><b>У вас имеются необработанные заявки. Дождитесь их выполнения </b></font></center><BR />";
                     
                 
               }else echo "<center><font color = 'green'><b>Вы указали больше, чем имеется на вашем счету</b></font></center><BR />";
           
            }else echo "<center><font color = 'green'><b>Минимальная сумма выплаты 1 руб.</b></font></center><BR />";
     
      }else echo "<center><font color = 'green'><b>Кошелек Payeer указан неверно!</b></font></center><BR />";
     
   }
?>

<form action="" method="post" class="tac frm-out">
<div class="xl_50 mra mla">
<label class="db mb5">Ваш кошелек Payeer:</label>
   <?php

    if ($sonfig_purse["purse"]){
       $pur=$sonfig_purse["purse"];
       echo"<td><input type='text' name='purse' value='".$pur."' readonly='readonly'";
       echo"</td>";
    } else echo"<td><input type='text' name='purse' value='P'/> </td>";
?>
<br>
<label class="db mb5">Отдаете серебро для вывода [Мин. 100</span>]:</label>

   <input type="text" name="sum" id="sum" value="<?=round($user_data["money_p"]); ?>" size="15" onkeyup="PaymentSum();" />
<br>
<label class="db mb5">Сумма вывода: <span id="res_val"></span></label>

   <input type="text" name="res" id="res_sum" value="0" 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.1" disabled="disabled"/>
   <input type="hidden" name="val_type" id="val_type" value="RUB" />
   
<div class="flex jcsb aifs pt20">
<div class="xl_48">
    <input class="btton sbm-out" type="submit" name="swap" value="" style="
    background: url('/img/payeer.png');" />
</div></div>
</div>
</form>

<script language="javascript">PaymentSum(); SetVal();</script>

<br>

<br>
<div class="head_acc">Статистика ваших выплат</div>

<div class="tbl th flex jcsb aic tac">
    <div class="xl_20 pager-order" ><span>Логин</span></div>
    <div class="xl_20 pager-order" ><span>Сумма</span></div>
   <div class="xl_20 pager-order" ><span>Кошелек</span></div>
   <div class="xl_20 pager-order" ><span>Статус</span></div>
   <div class="xl_20 pager-order" ><span>Дата выплаты</span></div>
</div>   
  <?php
 
  $db->Query("SELECT * FROM db_payment WHERE user_id = '$usid' ORDER BY id DESC LIMIT 10");
 
   if($db->NumRows() > 0){
        while($ref = $db->FetchArray()){
      ?>
<div class="tbl flex jcsb aic tac ads_row">
            <div class="xl_20"><i class="fa fa-user"></i> <?=$ref["user"]; ?></div>
          <div class="xl_20"><i class="fa fa-rouble"></i> <?=sprintf("%.2f",$ref["sum"] - $ref["comission"]); ?></div>
          <div class="xl_20"><i class="fa fa-credit-card"></i> <?=$ref["purse"]; ?></div>
          <div class="xl_20"><i class="fa fa-plus-square"></i> <?=$status_array[$ref["status"]]; ?></div>
          <div class="xl_20"><i class="fa fa-calendar"></i> <?=date("d.m.Y H:i:s",$ref["date_add"]); ?></div>
</div>
      <?php
      }
   }else echo '<tr><td align="center" colspan="5">Выплаты не производились</td></tr>';
  ?>
</div></div>
</div>

<div class="clr"></div>   

Файл автоматические выплаты на Yandex через Payeer
<div class="s-bk-lf">
<div class="acc-title">Заказ выплаты</div>
</div>
<div class="silver-bk">
<BR />
<?PHP

$_OPTIMIZATION["title"] = "Аккаунт - Заказ выплаты";
$usid = $_SESSION["user_id"];
$usname = $_SESSION["user"];

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

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

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

?>

<center><b>Заказ выплаты:</b></center><BR />

<?PHP
   # Заносим выплату
if(isset($_POST['swap'])){ // проверка: была ли отправлена форма
   if (!empty($_POST['purse'])){//проверка на наличие номера кошелька в переменной $purse. Если переменная имеет значение, то выполняем дальше
      function CheckPurseYandex($purse){
         if( !ereg("^41001[0-9]{7,10}$", substr($purse,0)) ) return false;
         return $purse;
      }
      $purse = CheckPurseYandex($_POST['purse']);
      if($purse !== false) // проверяем правильность оформления кошелька
      {
      $ps = 57378077;
      $sum = intval($_POST['sum']);
            if($sum >= $minPay){
               if($sum <= $user_data['money_p']){
                  # Проверяем на существующие заявки
                  $db->Query("SELECT COUNT(*) FROM db_payment WHERE user_id = '$usid' 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)){
                              
                              $initOutput = $payeer->initOutput(array(
                                 'ps' => $ps,
                                 //'sumIn' => 1,
                                 'curIn' => 'RUB',
                                 'sumOut' => $sum_pay,
                                 'curOut' => 'RUB',
                                 'param_ACCOUNT_NUMBER' => $purse
                              ));
                              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', pay_points = pay_points - '$sum_pay' WHERE id = '$usid'");
                                    
                                    # Вставляем запись в выплаты
                                    $da = time();
                                    $dd = $da + 60*60*24*15;
                                    
                                    $ppid = $arTransfer["historyId"];
                                       
                                    $db->Query("INSERT INTO db_payment (user, user_id, purse, sum, valuta, serebro, payment_id, date_add, status)
                                    VALUES ('$usname','$usid','$purse','$sum_pay','RUB', '$sum','$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 />";
                                    
                                 }
                                 else
                                 {
                                 
                                    echo "<center><font color = 'red'><b>Внутренняя ошибка - попробуйте через 10-15 секунд или сообщите о ней администратору!</b></font></center><BR />";   
                                 
                                 }
                              }else
                              {
                                 echo '<pre>'.print_r($payeer->getErrors(), true).'</pre>';
                              }
                           
                           }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 />";
         
      }echo "<center><b><font color = 'red'>Кошелек Yandex указан неверно! Смотрите образец!</font></b></center><BR />";
      
   }else echo "<center><b><font color = 'red'>Номер счета не указан!</font></b></center><BR />";
}
?>
<center>
<form action="" method="post">
   <div><font color="#000;">Отдаёте серебро для вывода</font> (Мин. <span id="res_min"></span>)<font color="#000;">:</font>
   <input type="text" name="sum" id="sum" value="<?=round($user_data['money_p']); ?>" size="15" onkeyup="PaymentSum();" /></div>
   <div><font color="#000;">Получаете <span id="res_val"></span></font><font color="#000;">:</font>
   <input type="text" name="res" id="res_sum" value="0" size="15" disabled="disabled"/>
   <input type="hidden" name="per" id="RUB" value="<?=$config_site['ser_per_wmr']; ?>" disabled="disabled"/>
   <input type="hidden" name="per" id="min_sum_RUB" value="0.5" disabled="disabled"/></br>
   Кошелек Yandex: <input type="text" name="purse" value="" placeholder="410011499718000" size="15" class="post" /><br>
   <input type="submit" name="swap" value="Заказать выплату" style="height: 30px; margin-top:10px;" />
</form>
</center>
<script language="javascript">PaymentSum(); SetVal();</script>

<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>
  </tr>
  <?PHP
 
  $db->Query("SELECT * FROM db_payment WHERE user_id = '$usid' ORDER BY id DESC LIMIT 20");
 
   if($db->NumRows() > 0){
 
        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"><?=$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>


 

kvozimir

  • снова в skype --> kvozimir
  • *
  • *
  • Оффлайн
  • Награды Более 4 лет на форуме !!! Топ 10 по сообщениям Топ 10 по созданным темам Репутация  более 25 Более 1500 сообщений Более 50 созданных тем Благодарность от форума За помощь пользователям За время в онлайне на форуме
  • Дата регистрации: Фев. 2016
  • Возраст: 28
  • Сообщений: 1923
  • Страна: ru
  • Поблагодарили: 224 раз(а)
  • Репутация +37/-0
  • Пол: Мужской
  • Дата рождения:1992-04-18
    • Награды
  • Социальные сети:
    ВКонтакте
^55$  ааааааа,поменяйте мне глаза чтобы не видеть это....

Добавлено сообщение: 29 Марта 2020, 08:14:52
не хочу проверять ,кошель в базу пишется когда ты его типа сохраняешь?

 

nikogdaАвтор темы

  • *
  • Оффлайн
  • Награды Более 100 сообщений Три года на форуме !!! Более 10 созданных тем
  • Дата регистрации: Июль 2016
  • Сообщений: 120
  • Страна: ru
  • Поблагодарили: 2 раз(а)
  • Репутация +0/-0
  • Пол: Мужской
    • Награды
ааааааа,поменяйте мне глаза чтобы не видеть это....
Добавлено сообщение: Сегодня в 08:14:52
не хочу проверять ,кошель в базу пишется когда ты его типа сохраняешь?

Да, в базе стоит такой запрос ALTER TABLE `db_users_b` ADD `purse` varchar(20) NOT NULL
Видимо в БД пишется, но в колонке purse не заносится ни одного кошелька после выплаты, мне это как бы не важно, важно другое.
 

Rich-99000000

  • *
  • Оффлайн
  • Награды Репутация более 5 Топ 10 по сообщениям Три года на форуме !!! Благодарность от форума Болеее 300 сообщений Более 10 созданных тем
  • Дата регистрации: Июль 2016
  • Расположение: Novosibirsk
  • Возраст: 24
  • Сообщений: 404
  • Страна: ru
  • Поблагодарили: 91 раз(а)
  • Репутация +5/-0
  • Пол: Мужской
  • моды, сайты на заказ недорого >> ЛС
  • Дата рождения:1995-11-30
    • Награды
  • Социальные сети:
    ВКонтакте
purse столбец в базе по стоку FF - это payeer. Задай в базе purse_yandex столбец по типу purse. И сохраняй после выплаты в него яндекс выплату. Т.е перепиши на префиксы например поля таблицы purse_payeer, purse_yandex и тп и сохраняй в соответствующую. Это один из вариантов. Второй это поработать с:
$db->Query("SELECT * FROM db_payment WHERE user_id = '$usid' ORDER BY id DESC LIMIT 1");
$sonfig_purse = $db->FetchArray();

а именно делать выборку как у тебя заявлено в коде выше - по payment_id, если это конечно идентификатор платежки а не batch.

$db->Query("SELECT * FROM db_payment WHERE user_id = '$usid' AND payment_id='$pID' ORDER BY id DESC LIMIT 1");
$sonfig_purse = $db->FetchArray();
разумеется в начале файла определив $pID = "57378077"; // соответственно коду ПС

Третий вариант: http://svalka58.ru/index.php?topic=7415.msg37112#msg37112

 

nikogdaАвтор темы

  • *
  • Оффлайн
  • Награды Более 100 сообщений Три года на форуме !!! Более 10 созданных тем
  • Дата регистрации: Июль 2016
  • Сообщений: 120
  • Страна: ru
  • Поблагодарили: 2 раз(а)
  • Репутация +0/-0
  • Пол: Мужской
    • Награды
purse столбец в базе по стоку FF - это payeer. Задай в базе purse_yandex столбец по типу purse. И сохраняй после выплаты в него яндекс выплату. Т.е перепиши на префиксы например поля таблицы purse_payeer, purse_yandex и тп и сохраняй в соответствующую. Это один из вариантов. Второй это поработать с:
Код: [Выделить]
$db->Query("SELECT * FROM db_payment WHERE user_id = '$usid' ORDER BY id DESC LIMIT 1");
$sonfig_purse = $db->FetchArray();

а именно делать выборку как у тебя заявлено в коде выше - по payment_id, если это конечно идентификатор платежки а не batch.

Код: [Выделить]
$db->Query("SELECT * FROM db_payment WHERE user_id = '$usid' AND payment_id='$pID' ORDER BY id DESC LIMIT 1");
$sonfig_purse = $db->FetchArray();
разумеется в начале файла определив $pID = "57378077"; // соответственно коду ПС

Третий вариант: http://svalka58.ru/index.php?topic=7415.msg37112#msg37112

Спасибо.
 
Теги:
 

КТО ПОДСКАЖЕТ ЧТО НАДО ДОПИСАТЬ или что надо сделать в скрипте!

Автор vovzenРаздел Разговоры обо всём

Ответов: 3
Просмотров: 951
Последний ответ 10 Декабря 2016, 04:39:54
от romcka8
как сделать что бы на фоне сайта были падающие снежинки или что то типа того?

Автор kelyaРаздел Вопросы по настройке фруктовых ферм

Ответов: 1
Просмотров: 431
Последний ответ 26 Декабря 2017, 15:43:20
от maks161
Как сделать динамическое обновление накопленного на складе без обновления станиц

Автор sergeiii1983Раздел Общие вопросы по фермам

Ответов: 1
Просмотров: 689
Последний ответ 07 Февраля 2017, 22:46:34
от shans5
Как сделать так, что бы можно было купить максимум 1 фрукт каждого вида?

Автор hdlimonРаздел Вопросы по настройке фруктовых ферм

Ответов: 2
Просмотров: 369
Последний ответ 05 Декабря 2017, 11:23:44
от kvozimir
Как сделать нулевое значение в определенном столбце в базе данных

Автор 129688Раздел Общие вопросы по фермам

Ответов: 2
Просмотров: 825
Последний ответ 23 Марта 2017, 15:16:44
от kvozimir