Файл: plugins/payment/index.php
Строк: 167
<?php
define('H', $_SERVER['DOCUMENT_ROOT'] . '/');
include_once H.'sys/inc/start.php';
include_once H.'sys/inc/sess.php';
include_once H.'sys/inc/settings.php';
include_once H.'sys/inc/db_connect.php';
include_once H.'sys/inc/ipua.php';
include_once H.'sys/inc/fnc.php';
$show_all = true;
include_once H.'sys/inc/user.php';
/**
* Обработка запроса
*/
if (isset($_GET['request']) && preg_match('/^([A-z]+)$/', $_GET['request'])) {
$request = $_GET['request'];
} else {
$request = '';
}
/**
* Каталог конфигов платежных систем
*/
define('INI', $_SERVER['DOCUMENT_ROOT'] . '/sys/dat/payment/');
/**
* Каталог шаблонов платежных систем
*/
define('TPL', $_SERVER['DOCUMENT_ROOT'] . '/plugins/payment/');
$ID = (isset($_GET['id']) ? (int) $_GET['id'] : 0);
/**
* Подключение классов
*/
require 'classes/Payment_Template.php';
require 'classes/Payment.php';
$payment = new Payment();
// Валидность системы
if (isset($_GET['identifier']) && preg_match('/^([A-z0-9]+)$/i', $_GET['identifier']))
{
$payment->paytype = $_GET['identifier'];
$set_paytype = $payment->getSettings($payment->paytype);
}
/*
* Подключение обработчиков
*/
$arr_pay = $payment->getSystems('dat', 'active');
foreach ($arr_pay AS $arr_list) {
if (is_file('paytype/' . $arr_list['identifier'] . '.php')) {
require ('paytype/' . $arr_list['identifier'] . '.php');
}
}
if (isset($pay_result)) {
// Платежный счет
$pays = mysql_fetch_assoc(mysql_query("SELECT * FROM `payment` WHERE `id` = '" . $checkPOST['id'] . "' LIMIT 1"));
// Выполнение операции
if ($pay_result == 'result')
{
if ($pays['paid'] == 0)
{
if (is_file('result/' . $pays['service'] . '.php'))
{
// Обновление информации счета
mysql_query("UPDATE `payment` SET `paid` = '1', `time_paid` = '$time', `wmr` = '$checkPOST[wmr]', `paytype` = '$checkPOST[paytype]', `request` = '" . $checkPOST['array'] . "' WHERE `id` = '$pays[id]' LIMIT 1");
// Загружаем файл обработки заказа
include 'result/' . $pays['service'] . '.php';
}
}
// HTTP код ответа
if (isset($checkPOST['http_code'])) {
foreach($checkPOST['http_code'] AS $key => $http_code) {
header($http_code);
}
}
echo $checkPOST['resp'];
exit;
}
header('Location: ?service=' . $pays['service'] . '&id=' . $checkPOST['id'] . '&identifier=' . $checkPOST['paytype'] . '&request=' . $pay_result);
exit;
}
only_reg();
/**
* @var Cчет в биллинге
*/
// Определяем счет
$pays = mysql_fetch_assoc(mysql_query("SELECT * FROM `payment` WHERE `client_id` = '$user[id]' AND `id` = '$ID' LIMIT 1"));
if (!isset($pays['id']) && !isset($_GET['info'])) {
$err[] = __('Счет не найден');
}
else
{
// Говорим за что платеж
$payment->service = $pays['service'];
// Передаем параметры в форму
$payment->check = array(
'id' => $pays['id'],
'name' => $pays['name'],
'desc' => ($pays['desсription'] ? $pays['desсription'] : ''),
'wmr' => round($pays['wmr'], 2),
'discount' => $payment->discount($pays['wmr'], $pays['discount']),
'service' => $pays['service'],
'service_id' => $user['id'],
'client_id' => $user['id']
);
}
if ($request == 'success') {
$_SESSION['message'] = __('Счет успешно оплачен');
} elseif ($request == 'fail') {
$err[] = __('Cчет не оплачен');
}
$set['title'] = __('Страница оплаты');
include_once H.'sys/inc/thead.php';
title();
aut();
err();
if (!isset($_GET['info'])) {
?>
<div class="foot">
<img src="/plugins/payment/images/arrow-180.png" /> <a href="/billing?func=menu"><?= __('Биллинг панель')?></a> | <?= __('Оплата счета')?>
</div>
<?
}
if (isset($_GET['info']) && isset($set_paytype['identifier'])) {
$file = @file_get_contents('info/' . $set_paytype['identifier'] . '.txt');
?><div class="mess">
<? if (is_file('info/' . $set_paytype['identifier'] . '.txt')) { ?>
<?= output_text($file)?>
<? } ?>
<center>
<? if (isset($pays['id'])) { ?>
<a href="?service=<?= $payment->service?>&id=<?= $ID?>&identifier=<?= $set_paytype['identifier']?>" class="btn btn-success">
<?= __('Перейти к оплате')?>
</a>
<? } else { ?>
<a href="/billing" class="btn btn-success">
<?= __('Вернуться в биллинг')?>
</a>
<? } ?>
</center>
</div><?
}
elseif (!isset($pays['id'])) {
?><div class="mess"><?= __('К сожалению счет не найден')?></div><?
}
elseif (isset($set_paytype['identifier'])) {
?>
<table class="table table-bordered">
<tr><td class="muted" style="width: 90px;">№ <?= __('Счета')?></td><td class="text-info">#<?= $payment->check['id']?></td></tr>
<tr>
<td class="muted"><?= __('Описание')?></td>
<td class="text-info">
«<?= $payment->check['name']?>»<br />
<span style="color: #7f7f7f;"><?= output_text($payment->check['desc'])?></span>
</td>
</tr>
<tr><td class="muted"><?= __('Стоимость')?></td><td class="text-info"><?= $payment->check['wmr']?> руб.</td></tr>
<tr><td class="muted"><?= __('Скидка')?></td><td class="text-info"><?= $payment->check['discount']?> руб.</td></tr>
<? if (is_file('info/' . $set_paytype['identifier'] . '.txt')) { ?>
<tr><td class="muted"><?= __('Инфо')?></td><td class="text-info">Дополнительная "<a href="?service=<?= $payment->service?>&id=<?= $ID?>&identifier=<?= $set_paytype['identifier']?>&info">информация</a>" по платежной системе <?= $set_paytype['name']?></td></tr>
<? } ?>
<tr>
<td class="muted"><img src="/plugins/payment/images/<?= $set_paytype['logo']?>" /></td>
<td>
<? if ($pays['paid'] == 0) {
$payment->getForm();
} else { ?>
<img src="/plugins/payment/images/tick.png" /> <span class="on"><b><?= __('Оплачено')?></b></span><br />
<?= __('Дата оплаты')?>: <?= vremja($pays['time_paid'])?><br />
<? } ?>
</td>
</tr>
</table>
<div class="foot">
<a href="?service=<?= $payment->service?>&id=<?= $payment->check['id']?>"><img src="/plugins/payment/images/zone-plus.png" /> <?= __('Другой способ')?></a>
</div>
<?
} else {
$list = $payment->getSystems('dat', 'active');
$k_post = count($list);
usort($list, array($payment, 'cmp'));
if ($k_post == 0) {
?>
<div class="alert" style="margin: 2px;"><?= __('Список доступных платежных систем пуст')?></div>
<?
} else {
?>
<div class="nav2">
<table class="table table-bordered" style="margin: 2px;">
<tr>
<td>
<b><?= __('Логотип')?></b>
</td>
<td>
<b><?= __('Информация')?></b>
</td>
</tr>
<?
foreach($list AS $post) {
$comission = $post['PAYMENT']['COMISSION'];
?>
<tr>
<td style="width: 90px;"><img src="/plugins/payment/images/<?= $post['logo']?>" /></td>
<td>
:: <b><?= $post['name']?></b> <span class="comission <?= ($comission > 0 ? 'comission-yes' : '')?> pull-right"><?= ($comission > 0 ? 'Комиссия ' . $comission . '%' : 'Без комиссии')?></span><br />
<?= (isset($post['desc']) ? $post['desc'] : '')?><br />
<? if ($post['status'] == 1) { ?>
<a href="?service=<?= $payment->service?>&id=<?= $ID?>&identifier=<?= $post['identifier']?>" class="btn btn-primary"><?= __('Выбрать')?> »</a>
<? } else { ?>
<b class="btn">√ <?= __('Не активна')?></b>
<? } ?>
</td>
</tr>
<?
}
?>
</table>
</div>
<div class="mess">
ВНИМАНИЕ! В зависимостри от выбранной платежной системы, взымается дополнительная коммисия за проведение операции, в среднем она составляет от 0% до 5%, в списке указана ориентировачная комиссия для каждой платежной системы.
</div>
<?
}
}
if (!isset($_GET['info'])) {
?>
<div class="foot">
<img src="/plugins/payment/images/arrow-180.png" /> <a href="/billing?func=menu"><?= __('Биллинг панель')?></a> | <?= __('Оплата счета')?>
</div>
<?
}
include_once H.'sys/inc/tfoot.php';