Файл: 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';