Slayder
Участник
Доброго всем времечка! Прошу помочь выяснить причину ошибки "Не удалось выплатить! Попробуйте позже!".. Все уже перепробовал, не могу найти ну хоть убейся!
Еще и логин с паролем админа изменить в настройках фермы не получается (настраивается совместно с игровыми), какие цифры не вписывай - постоянно выскакивают ошибки вроде:
В базе логина и пароля админа тоже не нашел..
Не хотелось бы отступать, столько времени потратил..
PHP:
<td valign="top">
<div class="r_block">
<h1>Заказ выплаты</h1>
<div class="silver-bk">
<?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");
$banned = $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();
$db->Query("SELECT count(*) FROM db_payment WHERE user_id = '$usid' ORDER BY id DESC LIMIT 1");
$sonfig_purs = $db->FetchRow();
$status_array = array( 0 => "Проверяется", 1 => "Выплачивается", 2 => "Отменена", 3 => "Выплачено");
$db->Query("SELECT * FROM db_payment WHERE user_id = '$usid' order by id DESC LIMIT 1");
$frompayments = $db->FetchArray();
# Минималка серебром!
$minPay = 1;
#Максималка серебром
$maxPay = 3500;
# Настраиваем кол-во суток для ограничения.
$nd_timer = 1;
$maxforonepay = 10000*$sonfig_site["ser_per_wmr"]*1000*$user_data["insert_sum"] + 1*$user_data["from_referals"];
?>
<BR />
<center><img src="/images/logo.png"><p></center>
<BR />
<b>Выплаты осуществляются в автоматическом режиме на платежную систему PAYEER! Процент при выводе составляет 0.95%</b> <BR /><BR />
<b>Из платежной системы Payeer Вы можете вывести свои средства в автоматическом режиме на все известные платежные системы и международные банки.</b><BR /><BR />
<b><font color="green">Курс продажи золота: 100 золота = 1 рублю</font></b><BR /><BR />
<?PHP
# Заглушка от халявщиков
if($user_data["insert_sum"] <= 0.99){
?>
<center><font color="red"><b>Вы не можете заказать выплату!<p>Пополните игровой баланс более чем на 1 Rub!</center>
<div class="clr"></div>
</div>
<?PHP
return;
}
?>
<center><b>Заказ выплаты:</b></center><BR />
<?PHP
$ddel = time() + 60*60*1;
$dadd = time();
function ViewPurse($purse){
if( substr($purse,0,1) != "P" ) return false;
if( !ereg("^[0-9]{7,8}$", substr($purse,1)) ) return false;
return $purse;
}
# Проверка на дату выплаты
//$db->Query("SELECT COUNT(*) FROM db_pay_dat WHERE user_id = '$usid' AND date_del > '$dadd'");
// if($db->FetchRow() == 0){
echo "$purse $sum";
# Заносим выплату
if(isset($_POST["purse"])){
$purse = ViewPurse($_POST["purse"]);
$sum = intval($_POST["sum"]);
$val = "RUB";
$p_password = $func->IsPassword($_POST["p_pass"]);
if ($sum <= $maxPay){
if($purse !== false){
if($sum >= $minPay){
if($sum <= $user_data["money_p"]){
if($sum <= $maxforonepay) {
# Проверяем на существующие заявки
$db->Query("SELECT COUNT(*) FROM db_payment WHERE user_id = '$usid' AND (status = '0' OR status = '1')");
if($db->FetchRow() == 0){
### Устанавливаем лимит на 24 часа по выплатам для $USID
if ($frompayments["date_add"] <= time() - $nd_timer * 86400) {
if($banned["banned_multi"] == 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)){
$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} с проекта Минералс")
//'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'");
# заносим защиту от большой выплаты и дату
//$db->Query("INSERT INTO db_pay_dat (user, user_id, sum, date_add, date_del) VALUES ('$uname','$usid','$sum','$dadd','$ddel')");
# Случайная очистка устаревших записей
//$db->Query("DELETE FROM db_pay_dat WHERE date_del < '$dadd'");
echo "<center><font color = 'green'><b>Средства успешно выплачены!<p></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><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>Доступ к выплатам заблокирован за нарушение правил проекта!<BR />
Напишите в <a href='/support'>поддержку </a></b></font></center><BR />";
}else echo "<center><font color = 'red'><b>Вы уже получали выплату за последние 24 часа!</b></font></center>";
}else echo "<center><font color = 'red'><b>У вас имеются необработанные заявки. Дождитесь их выполнения!</b></font></center><BR />";
}else echo "<center><font color = 'red'><b>Вы не можете вывести столько средств за один раз [<a href='/limit'>Почему ?</a>] !</b></font></center><BR />";
}else echo "<center><font color = 'red'><b>Вы указали больше, чем имеется на вашем счету!</b></font></center><BR />";
}else echo "<center><b><font color = 'red'>Минимальная сумма для выплаты - 100 золота!</font></b></center><BR />";
}else echo "<center><b><font color = 'red'>Кошелек Payeer указан неверно! Смотрите образец!</font></b></center><BR />";
}else echo "<center><font color = 'red'><b>Вы можете заказать выплату не более, чем на 100 рублей!</b></font></center><BR />";
}
// }else echo "<center><font color = 'red'><b>Выплаты можно осуществлять не более, чем один раз в час</b></font></center><BR />";
?>
<form action="" method="post">
<table width="99%" border="0" align="center">
<tr>
<td><font color="#EC4D4D;">Введите кошелек Payeer [Пример: P1112457]</font>: </td>
<td><input type="text" name="purse" size="15"/></td>
</tr>
<tr>
<td><font color="#EC4D4D;">Отдаете золота для вывода</font> [Мин. 100]<font color="#EC4D4D;">:</font> </td>
<td><input type="text" name="sum" id="sum" value="<?=round($user_data["money_p"]); ?>" size="15" onkeyup="PaymentSum();" /></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>
PHP:
<?PHP
# Автоподгрузка классов
function __autoload($name){ include("classes/_class.".$name.".php");}
# Класс конфига
$config = new config;
# Функции
$func = new func;
# Гараж данных
$db = new db($config->HostDB, $config->UserDB, $config->PassDB, $config->BaseDB);
if (isset($_POST["m_operation_id"]) && isset($_POST["m_sign"]))
{
$m_key = $config->secretW;
$arHash = array($_POST['m_operation_id'],
$_POST['m_operation_ps'],
$_POST['m_operation_date'],
$_POST['m_operation_pay_date'],
$_POST['m_shop'],
$_POST['m_orderid'],
$_POST['m_amount'],
$_POST['m_curr'],
$_POST['m_desc'],
$_POST['m_status'],
$m_key);
$sign_hash = strtoupper(hash('sha256', implode(":", $arHash)));
if ($_POST["m_sign"] == $sign_hash && $_POST['m_status'] == "success")
{
$db->Query("SELECT * FROM db_payeer_insert WHERE id = '".intval($_POST['m_orderid'])."'");
if($db->NumRows() == 0){ echo htmlspecialchars($_POST['m_orderid'])."|error"; exit;}
$payeer_row = $db->FetchArray();
if($payeer_row["status"] > 0){ echo htmlspecialchars($_POST['m_orderid'])."|success"; exit;}
$db->Query("UPDATE db_payeer_insert SET status = '1' WHERE id = '".intval($_POST['m_orderid'])."'");
$ik_payment_amount = $payeer_row["sum"];
$user_id = $payeer_row["user_id"];
# Настройки
$db->Query("SELECT * FROM db_config WHERE id = '1' LIMIT 1");
$sonfig_site = $db->FetchArray();
$db->Query("SELECT user, referer_id FROM db_users_a WHERE id = '{$user_id}' LIMIT 1");
$user_ardata = $db->FetchArray();
$user_name = $user_ardata["user"];
$refid = $user_ardata["referer_id"];
# Проверяем баланс
if(isset($_GET['balance'])){
$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"];
echo "$balance";
} else {
echo 'error auth';
}
}
}
# Зачисляем баланс
$serebro = sprintf("%.4f", floatval($sonfig_site["ser_per_wmr"] * $ik_payment_amount) );
$db->Query("SELECT insert_sum FROM db_users_b WHERE id = '{$user_id}' LIMIT 1");
$ins_sum = $db->FetchRow();
$serebro = intval($ins_sum >= 99.99) ? ($serebro + ($serebro * 0.10) ) : $serebro;
$serebro = intval($ins_sum >= 999.99) ? ($serebro + ($serebro * 0.15) ) : $serebro;
$serebro = intval($ins_sum >= 4999.99) ? ($serebro + ($serebro * 0.20) ) : $serebro;
$serebro = intval($ins_sum >= 9999.99) ? ($serebro + ($serebro * 0.25) ) : $serebro;
$add_tree = ( $ik_payment_amount >= 4990000.99) ? 0 : 0;
$lsb = time();
$to_referer = ($serebro * 0.20);
//Начисляем билеты
if($ik_payment_amount >= 200 and $ik_payment_amount < 1000) {
$bil = $ik_payment_amount / 200;
$bill = intval($bil);
} elseif ($ik_payment_amount >= 1000 and $ik_payment_amount < 2000) {
$bil = $ik_payment_amount / 200;
$bill = intval($bil) + 1; // если сумма больше 1000 и меньше 2000 руб то бонус 1 билет
}elseif ($ik_payment_amount >= 2000) {
$bil = $ik_payment_amount / 200;
$bill = intval($bil) + 3; // если сумма больше 2000 руб то бонус 3 билета
}else{
$bill = 0;
}
$db->Query("UPDATE db_users_b SET money_b = money_b + '$serebro', a_t = a_t + '$add_tree', to_referer = to_referer + '$to_referer', last_sbor = '$lsb', insert_sum = insert_sum + '$ik_payment_amount', billet = billet + '$bill' WHERE id = '{$user_id}'");
# Зачисляем средства рефереру и дерево
$add_tree_referer = ($ins_sum <= 999999.01) ? ", a_t = a_t + 0" : "";
$db->Query("UPDATE db_users_b SET money_b = money_b + $to_referer, from_referals = from_referals + '$to_referer' {$add_tree_referer} WHERE id = '$refid'");
# Статистика пополнений
$da = time();
$dd = $da + 60*60*24*15;
$db->Query("INSERT INTO db_insert_money (user, user_id, money, serebro, date_add, date_del)
VALUES ('$user_name','$user_id','$ik_payment_amount','$serebro','$da','$dd')");
# Конкурс
$competition = new competition($db);
$competition->UpdatePoints($user_id, $ik_payment_amount);
#--------
$wmset = new wmset();
$marray = $wmset->GetSet($ik_payment_amount);
$a_t = intval($marray["t_a"]);
$b_t = intval($marray["t_b"]);
$c_t = intval($marray["t_c"]);
$d_t = intval($marray["t_d"]);
$e_t = intval($marray["t_e"]);
$db->Query("UPDATE db_users_b SET a_t = a_t + '$a_t', b_t = b_t + '$b_t', c_t = c_t + '$c_t', d_t = d_t + '$d_t', e_t = e_t + '$e_t',
last_sbor = '$lsb' WHERE id = '{$user_id}'");
# Обновление статистики сайта
$db->Query("UPDATE db_stats SET all_insert = all_insert + '$ik_payment_amount' WHERE id = '1'");
echo htmlspecialchars($_POST['m_orderid'])."|success";
exit;
}
echo htmlspecialchars($_POST['m_orderid'])."|error";
}
?>

Еще и логин с паролем админа изменить в настройках фермы не получается (настраивается совместно с игровыми), какие цифры не вписывай - постоянно выскакивают ошибки вроде:
% золота на вывод при продаже должен быть от 1 до 99
Неверная настройка доходности шахт в час! Минимум 6 кристаллов!
Минимальная стоимость шахт не должна быть менее 1-го золота!

Не хотелось бы отступать, столько времени потратил..
Последнее редактирование: