Всем доброго времени суток! При заказе выплаты, если перезагрузить страницу, выплата проходит столько раз, сколько перезагружаешь страницу. все заносится в базу, в статистике так же отражается. Стоит платежный пароль от вискаса, заглушка на первый вывод.
Ответа на этот вопрос на данном форуме не нашла. Пока только учусь, так что ответы типа "выкинь нафиг этот скрипт" - это не ответы. лучше помогите найти причину и устранить
[br /]
<div class="s-bk-lf">
<div class="acc-title">Заказ выплаты</div>
</div>[br /]
<div class="silver-bk">
<BR />
<?PHP
$_OPTIMIZATION["title"] = "Аккаунт - Заказ выплаты";
$usid = $_SESSION["user_id"];
$usname = $_SESSION["user"];
$db->Query("SELECT * FROM db_users_a WHERE id = '$usid' LIMIT 1");
$log_data = $db->FetchArray();
$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");
$sonfig_site = $db->FetchArray();
$status_array = array( 0 => "Проверяется", 1 => "Выплачивается", 2 => "Отменена", 3 => "Выплачено");
# Минималка серебром!
$minPay = 500;
?>
Выплаты осуществляются в автоматическом режиме и только на платежную систему <a href="http://payeer.com/?partner=19879" target="_BLANK">PAYEER! Процент при выводе составляет 0% <BR /><BR />
Из платежной системы Payeer Вы можете вывести свои средства в автоматическом режиме на все известные платежные системы и международные банки.<BR /><BR />
Ссылки на учебные материалы:<BR />
- <a href="http://payeer.com/?partner=8433335" target="_blank">Создание счета в Payeer[/url] <BR />
- <a href="http://payeeer.ru/outpay" target="_blank">Вывод средств из payeer[/url] <BR /><BR />
<center>Заказ выплаты:</center><BR />
<?PHP
# Заглушка от халявщиков
if($user_data["insert_sum"] <= 49.99 ){
?>
<center><font color="red">Выплату могут заказать те кто пополнил счет минимум на 50 рублей![br /]</font></center>
<div class="clr"></div>
</div>
<?PHP
return;
}
function ViewPurse($purse){
if( substr($purse,0,1) != "P" ) return false;
if( !preg_match("/^[0-9]{10}$/", substr($purse,1)) ) return false;
return $purse;
}
# Заносим выплату
if(isset($_POST["purse"])){
$purse = ViewPurse($_POST["purse"]);
$sum = intval($_POST["sum"]);
$val = "RUB";
if($purse !== false){
if(($log_data["paypass"]) == ($_POST["paypass"])){
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())
{
$arBalance = $payeer->getBalance();
if($arBalance["auth_error"] == 0)
{
$sum_pay = round( ($sum / $sonfig_site["ser_per_wmr"]), 2);
$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' => 'P1000000000', // получатель (номер счета)
'comment' => iconv('windows-1251', 'utf-8', "Выплата пользователю {$usname} с проекта WM-Farm")
//'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' 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_users_b SET payment_sum = payment_sum + '$sum_pay' WHERE id = '$usid'");
$db->Query("UPDATE db_stats SET all_payments = all_payments + '$sum_pay' WHERE id = '1'");
echo "<center><font color = 'green'>Выплачено!</font></center><BR />";
}
else
{
echo "<center><font color = 'red'>Внутренняя ошибка - сообщите о ней администратору!</font></center><BR />";
}
}else echo "<center><font color = 'red'>Внутренняя ошибка - сообщите о ней администратору!</font></center><BR />";
}else echo "<center><font color = 'red'>Не удалось выплатить! Попробуйте позже</font></center><BR />";
}else echo "<center><font color = 'red'>Не удалось выплатить! Попробуйте позже</font></center><BR />";
}else echo "<center><font color = 'red'>У вас имеются необработанные заявки. Дождитесь их выполнения.</font></center><BR />";
}else echo "<center><font color = 'red'>Вы указали больше, чем имеется на вашем счету</font></center><BR />";
}else echo "<center><font color = 'red'>Минимальная сумма для выплаты составляет {$minPay} серебра!</font></center><BR />";
}else echo "<center><font color = 'red'>Вы не указали платежный пароль или он не подходит</font>[br /]<a href='/account/config'>Получите платежный пароль[/url]</center><BR />";
}else echo "<center><font color = 'red'>Кошелек Payeer указан неверно! Смотрите образец!</font></center><BR />";
}
?>
<form action="" method="post">
<table width="99%" border="0" align="center">
<tr>
<td><font color="#000;">Введите кошелек Payeer [Пример: P1304200189]</font>: </td>
<td><input type="text" name="purse" size="15"/></td>
</tr>
<tr>
<td><font color="#000;">Отдаете серебро для вывода</font> [Мин. 500 серебра]<font color="#000;">:</font> </td>
<td><input type="text" name="sum" id="sum" value="<?=round($user_data["money_p"]); ?>" size="15" onkeyup="PaymentSum();" /></td>
</tr>
<tr>
<td><font color="#000;">Введите Ваш платежный пароль</font>: </td>
<td>
<input type="text" name="paypass" 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>
<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>