Kojo
Участник
- Сообщения
- 286
- Реакции
- 53
Решил поделится всеми возможными заглушками, которые делал. Смотрю по форуму много вопросов по ним. Пользуйтесь:
ФАЙЛ payment
1. Заглушка от халявщиков. Ну думаю, это все знают но на всяк случай:
2. Максимальная сумма выплаты за 1 раз с зависимостью от реф отчислений(у кого выплата с ограничением по времени):
далее желательно вставить инфоблок для пользователя:
Ну и проверка в самом процессе выплаты:
3. Заглушка на максимальную суммы вывода в проекте + бонусные за рефералов:
Проверка в коде выплаты:
4. Небольшой бонус из этого же файла. Настройка комиссии и отправка её на другой кош. Не забудьте перед этим подправить js файлик, где каклькулятор
Ну и на сладкое. Напрягают 3 копеечные пополнения? Боремся с ними(это уже файл insert):
Задаем размер на которое будет увеличено последующее пополнение:
Перед этим в db_users_b делаем столбец last_insert
Инфоболок для пользователя:
И сама заглушка. Ставится перед процессом обращения к сайту платежки:
Ну вот вроде и всё
ФАЙЛ payment
1. Заглушка от халявщиков. Ну думаю, это все знают но на всяк случай:
Код:
# Заглушка от халявщиков
if($user_data["insert_sum"] < 150 ){
?>
<center><font color="blue"><b>Выплату могут заказывать пользователи, которые пополнили баланс больше, чем на 150 RUB!<b></font></center><BR />
<div class="clr"></div>
</div>
<?PHP
return;
}
?>
Код:
if ($user_data["from_referals"] >= 100000) {
$maxforonepay = (($user_data["insert_sum"]*100)/100)*10;
} elseif ($user_data["from_referals"] <= 100000) {
$maxforonepay = (($user_data["insert_sum"]*100)/100)*5;
}
Код:
<p>Вам доступен заказ :<font color="green"> <?=sprintf("%.2f",$maxforonepay);?> монет за 1 раз в 12 часов </font>
Код:
if ($sum <= $maxforonepay) {
}else echo "<center><b><font color = 'red'>Попытка вывести больше суточного лимита!</font></b></center><BR />";
Код:
$mozhno = ($user_data["insert_sum"]*2 + ($user_data["from_referals"]*1)/100); # исходная сумма выплат без бонуса
$mozhnobonus = ($refs*5); # количество бонусных %
$mozhnosum = ((($user_data["insert_sum"])/100)*($mozhnobonus)); # сумма бонусных %
$mozhnoall = ($mozhno + $mozhnosum); # сумма на вывод с учетом бонуса
Код:
$proverkav = $user_data["payment_sum"]+($sum/100);
if($proverkav <= $mozhnoall){
}else echo "<center><b><font color = 'red'>Предел вашего дохода! Попробуйте заказать сумму поменьше.</font></b></center><BR />";
Код:
$sum_pay = round( ($sum / $sonfig_site["ser_per_wmr"]), 2);
$kom = round( ($sum_pay * 0.03), 2);
$sum_end = ($sum_pay-$kom);
$arBalance = $payeer->getBalance();
if($arBalance["auth_error"] == 0)
{
$balance = $arBalance["balance"]["RUB"]["DOSTUPNO"];
if( ($balance) >= ($sum_pay)){
$arTransfer = $payeer->transfer(array(
'curIn' => 'RUB', // счет списания
'sum' => $kom, // сумма получения
'curOut' => 'RUB', // валюта получения
'to' => 'ТУТ резервный кошелек', // получатель (email)
'comment' => iconv('windows-1251', 'utf-8', "Комиссия с {$usname} с проекта !"),
'anonim' => 'Y' // анонимный перевод
));
sleep(1);
$arTransfer1 = $payeer->transfer(array(
'curIn' => 'RUB', // счет списания
'sum' => $sum_end, // сумма получения
'curOut' => 'RUB', // валюта получения
'to' => $purse, // получатель (email)
'comment' => iconv('windows-1251', 'utf-8', "Выплата пользователю {$usname} с проекта"),
'anonim' => 'Y' // анонимный перевод
));
Задаем размер на которое будет увеличено последующее пополнение:
Код:
$minimal = (($user_data["last_insert"]/100)*10)+$user_data["last_insert"];
Инфоболок для пользователя:
Код:
<hr>
<font color= "blue">Последнее пополнение</font> - величина последнего пополнения баланса.
<font color= "blue">Минимальное пополнение</font> - последующие пополнения баланса, равные предыдущему (последнему) пополнению +10%.
<hr>
<center>Последнее пополнение <font color= "green"><?=$user_data["last_insert"];?> руб.</font> </center>
<center>Минимальное пополнение <font color= "red"><?=$minimal;?> руб.</font> </center>
Код:
# Заглушка от халявщиков
if($sum < $minimal ){
?>
<center><font color="blue"><b>Минимальное пополнение для Вас равно <?=$minimal;?> руб. <b></font></center><BR />
<div class="clr"></div>
</div>
<?PHP
return;
}
?>
danteo
Местный
- Сообщения
- 45
- Реакции
- 5
Kojo
Участник
- Сообщения
- 286
- Реакции
- 53
Пиши в ЛКdanteo написал(а):maxforonepay - как прописывать, чтобы ограничение работало как надо(под условием оплаты)
pligin
Участник
- Сообщения
- 3.654
- Реакции
- 1.336
все красиво написано....Kojo написал(а):2. Максимальная сумма выплаты за 1 раз с зависимостью от реф отчислений(у кого выплата с ограничением по времени):
далее желательно вставить инфоблок для пользователя:Код:if ($user_data["from_referals"] >= 100000) { $maxforonepay = (($user_data["insert_sum"]*100)/100)*10; } elseif ($user_data["from_referals"] <= 100000) { $maxforonepay = (($user_data["insert_sum"]*100)/100)*5; }
Ну и проверка в самом процессе выплаты:Код:<p>Вам доступен заказ :<font color="green"> <?=sprintf("%.2f",$maxforonepay);?> монет за 1 раз в 12 часов </font>
Код:if ($sum <= $maxforonepay) { }else echo "<center><b><font color = 'red'>Попытка вывести больше суточного лимита!</font></b></center><BR />";
а где тут ограничение на 12 часов?
Kojo
Участник
- Сообщения
- 286
- Реакции
- 53
о, спасибо, что заметили. Вот проверка на время и его сообщение об ошибке:pligin написал(а):все красиво написано....
а где тут ограничение на 12 часов?
Код:
$proverka = time() - 60*60*12;
$db->Query("SELECT COUNT(*) FROM db_payment WHERE user_id = '$usid' AND date_add > '$proverka'");
if($db->FetchRow() == 0){
}else echo "<center><b><font color = 'red'>За последние 12 часа Вы заказывали выплату!</font></b></center><BR />";
Kojo
Участник
- Сообщения
- 286
- Реакции
- 53
Lis1988
Местный
- Сообщения
- 32
- Реакции
- 5
pligin
Участник
- Сообщения
- 3.654
- Реакции
- 1.336
код в студиюLis1988 написал(а):подскажите пожалуйста, вставляю заглушку от халявщиков, в проекте перехожу на страницу вывода либо безрезультатно, либо вообще страница пустая
Lis1988
Местный
- Сообщения
- 32
- Реакции
- 5
PHP:
<div class="acc-title"><img src="/img/withdraw.jpg"></div>
<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");
$sonfig_site = $db->FetchArray();
$status_array = array( 0 => "Проверяется", 1 => "Выплачивается", 2 => "Отменена", 3 => "Выплачено");
# Минималка серебром!
$minPay = 100;
?>
<div class="descr">
Для вывода средств используются <b>сестерции</b>.<br><br>
Выплаты осуществляются <b>автоматически</b> сразу на твой кошелёк!
<br><br>
Минимальная сумма для вывода - <b>100</b> сестерциев.<br>
Максимальная сумма для вывода - <b>10 000</b> сестерциев.
</div>
<div class="decor"></div>
<div class="descr2">
<center><b>Заказ выплаты:</b></center><BR />
<?PHP
function ViewPurse($purse){
if( substr($purse,0,1) != "P" ) return false;
if( !preg_match("/^[0-9]{7}$/", 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($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' => 'P1000000', // получатель (номер счета)
'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'><b>Выплачено!</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><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>У вас имеются необработанные заявки. Дождитесь их выполнения.</b></font></center><BR />";
}else echo "<center><font color = 'red'><b>Вы указали больше, чем имеется на вашем счету</b></font></center><BR />";
}else echo "<center><b><font color = 'red'>Минимальная сумма для выплаты составляет {$minPay} серебра!</font></b></center><BR />";
}else echo "<center><b><font color = 'red'>Кошелек Payeer указан неверно! Смотрите образец!</font></b></center><BR />";
}
?>
<form action="" method="post">
<table width="99%" border="0" align="center">
<tr>
<td><font color="#000;">Введите кошелек Payeer [Пример: P1112457]</font>: </td>
<td><input type="text" name="purse" size="15"/></td>
</tr>
<tr>
<td><font color="#000;">Отдаете серебро для вывода</font> [Мин. <span id="res_min"></span>]<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;">Получаете <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>
</div>
<div class="decor"></div>
<div class="descr2">
<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>
Последнее редактирование модератором:
pligin
Участник
- Сообщения
- 3.654
- Реакции
- 1.336
тут нет заглушкиLis1988 написал(а):<div class="acc-title"><img src="/img/withdraw.jpg"></div>
<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");
$sonfig_site = $db->FetchArray();
$status_array = array( 0 => "Проверяется", 1 => "Выплачивается", 2 => "Отменена", 3 => "Выплачено");
# Минималка серебром!
$minPay = 100;
?>
<div class="descr">
Для вывода средств используются <b>сестерции</b>.<br><br>
Выплаты осуществляются <b>автоматически</b> сразу на твой кошелёк!
<br><br>
Минимальная сумма для вывода - <b>100</b> сестерциев.<br>
Максимальная сумма для вывода - <b>10 000</b> сестерциев.
</div>
<div class="decor"></div>
<div class="descr2">
<center><b>Заказ выплаты:</b></center><BR />
<?PHP
function ViewPurse($purse){
if( substr($purse,0,1) != "P" ) return false;
if( !preg_match("/^[0-9]{7}$/", 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($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' => 'P1000000', // получатель (номер счета)
'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'><b>Выплачено!</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><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>У вас имеются необработанные заявки. Дождитесь их выполнения.</b></font></center><BR />";
}else echo "<center><font color = 'red'><b>Вы указали больше, чем имеется на вашем счету</b></font></center><BR />";
}else echo "<center><b><font color = 'red'>Минимальная сумма для выплаты составляет {$minPay} серебра!</font></b></center><BR />";
}else echo "<center><b><font color = 'red'>Кошелек Payeer указан неверно! Смотрите образец!</font></b></center><BR />";
}
?>
<form action="" method="post">
<table width="99%" border="0" align="center">
<tr>
<td><font color="#000;">Введите кошелек Payeer [Пример: P1112457]</font>: </td>
<td><input type="text" name="purse" size="15"/></td>
</tr>
<tr>
<td><font color="#000;">Отдаете серебро для вывода</font> [Мин. <span id="res_min"></span>]<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;">Получаете <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>
</div>
<div class="decor"></div>
<div class="descr2">
<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>
Lis1988
Местный
- Сообщения
- 32
- Реакции
- 5
а возможно ее поставить, само собой отблагодарюpligin написал(а):тут нет заглушки
Kojo
Участник
- Сообщения
- 286
- Реакции
- 53
Конечно возможно. файлик стандартный проблем никакихLis1988 написал(а):а возможно ее поставить, само собой отблагодарю
Lis1988
Местный
- Сообщения
- 32
- Реакции
- 5
K
kalamzar
poroz
Участник
- Сообщения
- 3
- Реакции
- 0
Вот у Вас тут заглушки на ОДНУ сумму выплаты. То есть они по разному ограничивают одну и туже выплату.
А какая может быть заглушка которая ограничивала бы общее количество выплат ?
То есть если например пользователь ввел в игру 100 рублей а вывести чтобы смог по сумме всех выплат не более 130 рублей то есть не более 130% от суммы его пополнений.
Ну и естественно чтобы этот процент можно было менять.
Такой код можете предоставить ?
А какая может быть заглушка которая ограничивала бы общее количество выплат ?
То есть если например пользователь ввел в игру 100 рублей а вывести чтобы смог по сумме всех выплат не более 130 рублей то есть не более 130% от суммы его пополнений.
Ну и естественно чтобы этот процент можно было менять.
Такой код можете предоставить ?