pirat3.0
Местный
Пользователь hunters обратился с вопросом о создании ручных выплат из автоматических и что бы кнопочка в админке была... "выплачено" И я решил описать, как это сделать....
Думаю админы не против, что не в ресурсы... Такая мелочевка вроде..
Также прошу сильно не ругать... может и не везде правильно все описал... О html и php знаю только то, что это языки))))) Так что делал это просто вырывая куски кода из разных скриптов.
Стили подгоняйте сами.
И так приступим:
1. В файле pages/account/_payment.php меняем все на это:
Тут стоит заглушка на выплату... Выплаты доступны только пополневшим на 10 руб... Можно еще поставить, что бы кошелек из базы брался и менять его было бы нельзя... или еще какие нибудь ограничения... только давайте сами... мне пока не хочется)))
2. Далее идем в /pages/admin/_payments.php и меняем там все на это:
3. В корневом .htaccess после строки:
добавить:
4. И остается только запросы в базу:
У меня все вроде заработало... По крайней мере основные моменты... Не проверял как там с открытой статистикой... у меня ее не было на скрипте.
О и чуть не забыл:
5. В файле classes/_class.config.php удаляем это:
Я думаю до ума до вести и под свой скрипт подогнать должен каждый сам)))))
Если что не так, я готов к жесткой критике.
Думаю админы не против, что не в ресурсы... Такая мелочевка вроде..
Также прошу сильно не ругать... может и не везде правильно все описал... О html и php знаю только то, что это языки))))) Так что делал это просто вырывая куски кода из разных скриптов.
Стили подгоняйте сами.
И так приступим:
1. В файле pages/account/_payment.php меняем все на это:
Код:
<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");
$sonfig_site = $db->FetchArray();
$min_ser = $sonfig_site["min_pay"] * $sonfig_site["ser_per_wmr"];
$status_array = array( 0 => "В очереди", 1 => "Выплачен", 2 => "Отменен");
# Список платежек
if(!isset($_GET["pay_id"])){
if(isset($_POST["sys_pay"])){ Header("Location: /account/payment/".$_POST["sys_pay"]); return; }
$db->Query("SELECT * FROM db_pay_systems ORDER BY id DESC");
if($db->NumRows() == 0){ echo "<center>Сейчас выплачиваются старые заявки. Попробуйте позже!</center><BR /><div class='clr'></div></div> "; return; }
?>
<form action="" method="POST">
<center><font color="blue"><h4><p>Выплаты производятся в течении 1-24 часов с момента подачи заявки!</h></font><p></h></font><p>Мы выплачиваем только на кошельки ЭПС из списка ниже: <BR /><BR />
<select name="sys_pay">
<?PHP
while($data = $db->FetchArray()){
?><option value="<?=$data["id"]; ?>"><?=$data["title"]; ?></option><?PHP
}
?>
</select>
<BR /><BR />
<input type="submit" class="btn btn-success" value="Получить деньги" />
</center>
</form>
<div class="clr"></div>
</div>
<?PHP
return;
}else{
$pay_id = intval($_GET["pay_id"]);
$db->Query("SELECT * FROM db_pay_systems WHERE id = '$pay_id'");
if($db->NumRows() == 0){ echo "<center>Такой платежной системы нет в нашем проекте :(</center><BR /><div class='clr'></div></div>"; return; }
$pdata = $db->FetchArray();
$min_ser = $pdata["min_pay"] * $sonfig_site["ser_per_wmr"];
$ps = $pdata["title"];
# Создание заявки на выплату
if(isset($_POST["pp"])){
$purse = strval(trim($func->TextClean($_POST["pp"])));
$sum = intval($_POST["sum"]);
if( strlen($purse) > 5){
if( substr($purse, 0, 1) == $pdata["first_char"] ){
if($min_ser <= $sum){
if($sum <= $user_data["money_p"]){
# Проверяем на существующие заявки
$db->Query("SELECT COUNT(*) FROM db_paymentss WHERE user_id = '$usid' AND status = 0");
if($db->FetchRow() == 0){
# Снимаем с пользователя
$db->Query("UPDATE db_users_b SET money_p = money_p - '$sum' WHERE id = '$usid'");
# Вставляем запись в выплаты
$da = time();
$dd = $da + 60*60*24*15;
$sum_r = round($sum / $sonfig_site["ser_per_wmr"], 2);
$db->Query("INSERT INTO db_paymentss (user, user_id, purse, sum, serebro, pay_sys, date_add, date_del)
VALUES ('$usname','$usid','$purse','$sum_r','$sum','$ps','$da','$dd')");
echo "<center><div class='alert alert-success'><b>Ваша заявка отправлена в очередь на выполнение</b></div></center><BR />";
}else echo "<center><font color = 'red'><b>У вас имеются необработанные заявки. Дождитесь их выполнения.</b></font></center><BR />";
}else echo "<center><div class='alert alert-error'><b>Вы указали больше, чем имеется на вашем счету</b></div></center><BR />";
}else echo "<center><div class='alert alert-error'><b>Минимальная сумма для вывода {$min_ser} серебра</b></div></center><BR />";
}else echo "<center><div class='alert alert-error'><b>Кошелек должен начинаться с ".$pdata["first_char"]."</b></div></center><BR />";
}else echo "<center><div class='alert alert-error'><b>Кошелек заполнен не верно заполнен неверно</b></div></center><BR />";
}
?>
<form action="" method="post">
<table width="99%" border="0" align="center">
<?PHP
# Заглушка от халявщиков
if($user_data["insert_sum"] <= 9.99){
?><BR />
<center><font color="blue"><b>Выплату могут заказывать пользователи, которые пополнили баланс минимум на 10 RUB!<p> <b></font></center><BR />
<?PHP
return;
}
?>
<tr><center><font color = "">Выплаты производятся только в ручную</font></center>
<tr><h3><center><font color = "green">Внимание!!! Кошелк должен начинаться с P</font></center></h>
<tr>
<td><font color="#000;">Кошелек для получения денег</font> [ Пример<font color = "green"> <b>P12345678</font> ]</b><font color="#000;">:</font> </td>
<td><input type="text" name="pp" size="15"/></td>
</tr>
<tr>
<td><font color="#000;">Отдаете серебро для вывода</font> [Мин. <?=$min_ser; ?>]<font color="#000;">:</font> </td>
<td><input type="text" name="sum" id="sum" value="<?=$min_ser; ?>" 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" />
<tr>
</td>
</tr>
<tr>
<center><td colspan="2" align="center"><input type="submit" name="swap" value="Заказать выплату" class="btn btn-success" style="height: 30px; margin-top:10px;" /></td></center>
</tr>
</form>
<script language="javascript">PaymentSum();</script>
<?PHP } ?>
<table cellpadding='3' cellspacing='0' border='0' bordercolor='#336633' align='center' width="99%">
<tr>
<center><td colspan="5" align="center"><h4>Последние 10 выплат</h4></td></center>
</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_paymentss WHERE user_id = '$usid' ORDER BY id DESC LIMIT 10");
if($db->NumRows() > 0){
while($ref = $db->FetchArray()){
?>
<tr class="htt">
<td align="center"><?=$ref["serebro"]; ?></td>
<td align="center"><?=sprintf("%.2f",$ref["sum"]); ?> РУБ</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>
2. Далее идем в /pages/admin/_payments.php и меняем там все на это:
Код:
<div class="s-bk-lf">
</div>
<div class="silver-bk"><div class="clr"></div>
</div><div class='clr'></div>
<div class="s-bk-lf">
<div class="acc-title">Заказы ручных выплат</div>
</div>
<div class="silver-bk"><div class="clr"></div>
<BR />
<?PHP
# Выплачено
if(isset($_POST["payment"])){
$ret_id = intval($_POST["payment"]);
$db->Query("SELECT * FROM db_paymentss WHERE status = '0' AND id = '{$ret_id}'");
if($db->NumRows() == 1){
$ret_data = $db->FetchArray();
$user_id = $ret_data["user_id"];
$sum = $ret_data["sum"];
$serebro = $ret_data["serebro"];
$db->Query("UPDATE db_users_b SET payment_sum = payment_sum + '$sum' WHERE id = '$user_id'");
$db->Query("UPDATE db_paymentss SET status = '1' WHERE id = '$ret_id'");
$db->Query("UPDATE db_stats SET all_payments = all_payments + '$sum' WHERE id = '1'");
echo "<center><b>Выплачено, статистика обновлена</b></center><BR />";
}else echo "<center><b>Заявка не найдена :(</b></center><BR />";
}
# Возврат
if(isset($_POST["return"])){
$ret_id = intval($_POST["return"]);
$db->Query("SELECT * FROM db_paymentss WHERE status = '0' AND id = '{$ret_id}'");
if($db->NumRows() == 1){
$ret_data = $db->FetchArray();
$user_id = $ret_data["user_id"];
$sum = $ret_data["sum"];
$serebro = $ret_data["serebro"];
$db->Query("UPDATE db_users_b SET money_p = money_p + '$serebro' WHERE id = '$user_id'");
$db->Query("UPDATE db_paymentss SET status = '2' WHERE id = '$ret_id'");
echo "<center><b>Заявка отменена, средства возвращены</b></center><BR />";
}else echo "<center><b>Заявка не найдена :(</b></center><BR />";
}
$db->Query("SELECT * FROM db_paymentss WHERE status = '0'");
$ast = $db->NumRows();
if($ast > 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" width="0" class="m-tb"></td>
<td align="center" width="200" class="m-tb">Сумма</td>
<td align="center" width="100" class="m-tb">Кошелек</td>
<td align="center" width="50" class="m-tb">Вернуть</td>
<td align="center" width="50" class="m-tb">Выплачено</td>
</tr>
<?PHP
while($data = $db->FetchArray()){
?>
<tr class="htt">
<td align="center"><?=$data["pay_sys"]; ?></td>
<td align="center"><?=$data["user"]; ?></td>
<td align="center"><?=$prof_data["email"]; ?></td>
<td align="center"><?=sprintf("%.2f", $data["sum"]); ?> <?=$config->VAL; ?></td>
<td align="center"><input type="text" value="<?=$data["purse"]; ?>" /></td>
<td align="center">
<form action="" method="post">
<input type="hidden" name="return" value="<?=$data["id"]; ?>" />
<input type="submit" value="Вернуть" />
</form>
</td>
<td align="center">
<form action="" method="post">
<input type="hidden" name="payment" value="<?=$data["id"]; ?>" />
<input type="submit" value="Выплачено" />
</form>
</td>
</tr>
<?PHP
}
?>
</table>
<?PHP
}else echo "<center><b>Нет заявок для выплаты</b></center><BR />";
?>
</div>
<div class="clr"></div>
Код:
RewriteRule ^account/payment(/?)+$ index.php?menu=account&sel=payment [L]
Код:
RewriteRule ^account/payment/([0-9]+)(/?)+$ index.php?menu=account&sel=payment&pay_id=$1 [L]
Код:
--
-- Table structure for table `db_pay_systems`
--
DROP TABLE IF EXISTS `db_pay_systems`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `db_pay_systems` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(100) NOT NULL,
`first_char` varchar(3) NOT NULL,
`comment` text NOT NULL,
`min_pay` double NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=28 DEFAULT CHARSET=cp1251;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `db_pay_systems`
--
LOCK TABLES `db_pay_systems` WRITE;
/*!40000 ALTER TABLE `db_pay_systems` DISABLE KEYS */;
INSERT INTO `db_pay_systems` VALUES (26,'Payeer','P','Платежная система',1);
/*!40000 ALTER TABLE `db_pay_systems` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `db_paymentss`
--
DROP TABLE IF EXISTS `db_paymentss`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `db_paymentss` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user` varchar(10) NOT NULL,
`user_id` int(11) NOT NULL,
`purse` varchar(20) NOT NULL,
`sum` double NOT NULL DEFAULT '0',
`comission` double NOT NULL DEFAULT '0',
`valuta` varchar(3) NOT NULL DEFAULT 'RUB',
`serebro` int(11) NOT NULL DEFAULT '0',
`status` int(11) NOT NULL DEFAULT '0',
`pay_sys` varchar(100) NOT NULL DEFAULT '0',
`pay_sys_id` int(11) NOT NULL DEFAULT '0',
`response` int(1) NOT NULL DEFAULT '0',
`payment_id` int(11) NOT NULL,
`date_add` int(11) NOT NULL DEFAULT '0',
`date_del` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `db_paymentss`
--
LOCK TABLES `db_paymentss` WRITE;
/*!40000 ALTER TABLE `db_paymentss` DISABLE KEYS */;
/*!40000 ALTER TABLE `db_paymentss` ENABLE KEYS */;
UNLOCK TABLES;
О и чуть не забыл:
5. В файле classes/_class.config.php удаляем это:
Код:
public $AccountNumber = 'P11111111';
public $apiId = '11111111';
public $apiKey = '11111111';
Если что не так, я готов к жесткой критике.
Вложения
-
6,9 КБ Просмотры: 312
-
3,3 КБ Просмотры: 350
-
2 КБ Просмотры: 532
Последнее редактирование: