Файл: app/merchant/index.php
Строк: 71
<?php
if(isset($_GET['form'])){
$curs = $db->prepare('SELECT * FROM `curs` ORDER BY `id` DESC');
$curs -> execute();
$curs = $curs -> fetch(PDO ::FETCH_ASSOC);
if(isset($_POST['shop_id']) and isset($_POST['amount'])){
$shop = $db->prepare('SELECT * FROM `shop` WHERE `id` = ? and `status` = ?');
$shop -> execute([abs(intval($_POST['shop_id'])),1]);
$shop = $shop -> fetch(PDO :: FETCH_ASSOC);
if(!isset($shop['id'])){
$_SESSION['error'] = 'Площадка не найдена';
header('Location: /');
exit;
}
if(abs($_POST['amount']) < 1 or abs($_POST['amount']) > 60000){
$_SESSION['error'] = 'Неверно указана сумма платежа';
header('Location: /');
exit;
}
$desc = 0;
if(empty($_POST['method'])){
exit('Не выбран способ оплаты');
}
if(isset($_POST['method'])){
if($shop[$_POST['method']] == 0){
exit('Данный способ оплаты отключен администратором магазина');
}
$pay['money'] = str_replace(',','',$_POST['amount']);
$amount = $pay['money']/$curs['bitcoin'];
$amount2 = $pay['money']/$curs['litecoin'];
if($_POST['method'] == 'bitcoin' and $amount < 0.005){
$_SESSION['error'] = 'Сумма оплаты должна быть больше 0,005 BTC';
header('location: https://pay.uspay.ru/merchant/'.$pay['id']);
exit;
}
if($_POST['method'] == 'litecoin' and $amount2 < 0.005){
$_SESSION['error'] = 'Сумма оплаты должна быть больше 0,005 LTC';
header('location: https://pay.uspay.ru/merchant/'.$pay['id']);
exit;
}
$array = ['mobile','qiwi','yandex','card','balans','webmoney','payeer','bitcoin','litecoin','dash','vkpay','advcash'];
if(!in_array($_POST['method'],$array)){
exit('Неверный параметр method');
}
$method = $_POST['method'];
}
if(empty($_POST['desc'])) $desc = htmlspecialchars($_POST['desc']);
$add = $db->prepare('INSERT INTO `payments` (`shop`,`summa`,`time`,`method`,`desc`) VALUES (?,?,?,?,?)');
$add -> execute([$shop['id'],abs($_POST['amount']),time(),$method,$desc]);
$id = $db->lastInsertId();
$update = $db->prepare('UPDATE `payments` SET `label` = ? WHERE `id` = ?');
$update -> execute([$id,$id]);
header('Location: https://pay.uspay.ru/merchant/'.$id);
exit;
}
}
if(isset($_POST['shop_id']) and isset($_POST['amount']) and isset($_POST['hash']) and isset($_POST['label'])){
$shop = $db->prepare('SELECT * FROM `shop` WHERE `id` = ? and `status` = ?');
$shop -> execute([abs(intval($_POST['shop_id'])),1]);
$shop = $shop -> fetch(PDO :: FETCH_ASSOC);
if(!isset($shop['id'])){
$_SESSION['error'] = 'Площадка не найдена';
header('Location: /');
exit;
}
///hash check
$hash = hash('sha256', $_POST['shop_id'].$_POST['amount'].$shop['hash'].$_POST['label']);
if($hash != $_POST['hash']){
$_SESSION['error'] = 'Не верно составлен HASH платежа';
header('Location: /');
exit;
}
if(abs($_POST['amount']) < 1 or abs($_POST['amount']) > 60000){
$_SESSION['error'] = 'Неверно указана сумма платежа';
header('Location: /');
exit;
}
$method = 0;
if(isset($_POST['method'])){
if($shop[$_POST['method']] == 0){
exit('Данный способ оплаты отключен администратором магазина');
}
$array = ['mobile','qiwi','yandex','card','balans','webmoney','payeer','bitcoin','litecoin','dash','vkpay','advcash'];
if(!in_array($_POST['method'],$array)){
exit('Неверный параметр method');
}
$method = $_POST['method'];
}
$desc = 0;
if(!empty(base64_decode($_POST['desc']))){
$desc = htmlspecialchars(base64_decode($_POST['desc']));
}
$add = $db->prepare('INSERT INTO `payments` (`shop`,`summa`,`time`,`label`,`method`,`desc`,`month`,`date`) VALUES (?,?,?,?,?,?,?,?)');
$add -> execute([$shop['id'],abs($_POST['amount']),time(),abs(intval($_POST['label'])),$method,$desc,date('n'),date('d.m',time())]);
$id = $db->lastInsertId();
unset($_POST['label']);
unset($_POST['amount']);
unset($_POST['hash']);
unset($_POST['shop_id']);
$array = var_export($_POST,true);
$update = $db->prepare('UPDATE `payments` SET `post` = ? WHERE `id` = ?');
$update -> execute([$arra,$id]);
header('Location: https://pay.uspay.ru/merchant/'.$id);
}