Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- require 'config.class.php';
- require 'mailer/PHPMailerAutoload.php';
- class C extends Config {};
- $config = new C();
- function initPHPMailer($config)
- {
- $mail = new PHPMailer;
- $mail->isSMTP();
- $mail->SMTPSecure = 'ssl';
- $mail->Port = '465';
- $mail->Host = $config->smtp_host;
- $mail->SMTPAuth = true;
- $mail->Username = $config->smtp_login;
- $mail->Password = $config->smtp_password;
- $mail->CharSet = 'utf-8';
- $mail->Encoding = 'quoted-printable';
- $mail->From = $config->smtp_from_email;
- $mail->FromName = $config->smtp_from_name;
- return $mail;
- }
- if (!isset($_GET['success']) and !isset($_POST['sha1_hash'])) { // Форма оплаты
- $crmdomain = mysql_escape_string(htmlspecialchars(strip_tags($_GET['crmdomain'])));
- ?>
- <!DOCTYPE html>
- <html lang="ru">
- <head>
- <meta charset="utf-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <meta name="viewport" content="width=device-width, initial-scale=1">
- <meta name="yandex-verification" content="b14cde661823ee89" />
- <title>PartCRM - продлить</title>
- <link rel="image_src" href="/images/partcrm-logo.png">
- <meta property="og:image" content="/images/partcrm-logo.png">
- <link rel="shortcut icon" href="/favicon.ico">
- <link rel="apple-touch-icon" sizes="57x57" href="/images/apple-touch-icon-57x57.png">
- <link rel="apple-touch-icon" sizes="114x114" href="/images/apple-touch-icon-114x114.png">
- <link rel="apple-touch-icon" sizes="72x72" href="/images/apple-touch-icon-72x72.png">
- <link rel="apple-touch-icon" sizes="144x144" href="/images/apple-touch-icon-144x144.png">
- <link rel="apple-touch-icon" sizes="60x60" href="/images/apple-touch-icon-60x60.png">
- <link rel="apple-touch-icon" sizes="120x120" href="/images/apple-touch-icon-120x120.png">
- <link rel="apple-touch-icon" sizes="76x76" href="/images/apple-touch-icon-76x76.png">
- <link rel="apple-touch-icon" sizes="152x152" href="/images/apple-touch-icon-152x152.png">
- <link rel="icon" type="image/png" href="/images/favicon-196x196.png" sizes="196x196">
- <link rel="icon" type="image/png" href="/images/favicon-160x160.png" sizes="160x160">
- <link rel="icon" type="image/png" href="/images/favicon-96x96.png" sizes="96x96">
- <link rel="icon" type="image/png" href="/images/favicon-16x16.png" sizes="16x16">
- <link rel="icon" type="image/png" href="/images/favicon-32x32.png" sizes="32x32">
- <link rel="stylesheet" href="css/plugins.min.css">
- <link rel="stylesheet" href="css/style.min.css">
- <script>
- function showPayPrice(value){
- var _ = [];
- _[<?=$config->price['month']?>] = '1 месяц';
- _[<?=$config->price['year']?>] = '1 год';
- _[<?=$config->price['forever']?>] = 'навсегда';
- $('#info_period').text(_[value]);
- $('#info_price').text(value + 'руб.');
- }
- </script>
- </head>
- <body>
- <nav class="navbar navbar-default navbar-fixed-top" role="navigation" aria-label="Меню">
- <div class="container">
- <div class="navbar-header">
- <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar"
- aria-expanded="false" aria-controls="navbar">
- <span class="sr-only"></span>
- <span class="icon-bar"></span>
- <span class="icon-bar"></span>
- <span class="icon-bar"></span>
- </button>
- <a class="navbar-brand" href="/">Part CRM</a>
- </div>
- <div id="navbar" class="collapse navbar-collapse">
- <ul class="nav navbar-nav navbar-left">
- <li><a href="/">О программе</a></li>
- <li><a href="clients.html">Возможности</a></li>
- <li><a href="tarifs.html">Тарифы</a></li>
- <li><a href="demo-access.html">Демо-доступ</a></li>
- <li><a href="ask-question.html">Задать вопрос</a></li>
- </ul>
- <a href="get-free.html" role="button" class="btn btn-success navbar-btn navbar-right hidden-xs hidden-sm">Попробовать
- бесплатно</a>
- </div><!--/.nav-collapse -->
- </div>
- </nav>
- <div class="container" role="main">
- <div class="row page">
- <div class="col-xs-12">
- <div class="row">
- <div class="col-xs-12 col-md-8 col-md-offset-2">
- <div class="jumbotron well">
- <?php if (isset($_GET['crmdomain'])) {?>
- <h2>Продлить действие <?=$crmdomain?>.partcrm.ru</h2>
- <p class="alert alert-danger" style="display: none;"></p>
- <p class="alert alert-info" style="display: none;"></p>
- <form method="POST" action="https://money.yandex.ru/quickpay/confirm.xml" id="formProlong" style="margin-top: 30px;">
- <div class="form-group">
- <label for="period">Выбирете период продления</label>
- <select class="form-control" name="sum" id="period" onchange="showPayPrice(this.value)">
- <option value="<?=$config->price['month']?>" id="sum-m" selected>1 месяц(<?=$config->price['month']?> руб.)</option>
- <option value="<?=$config->price['year']?>" id="sum-y">1 год (<?=$config->price['year']?> руб.)</option>
- <option value="<?=$config->price['forever']?>" id="sum-f">Навсегда (<?=$config->price['forever']?> руб.)</option>
- </select>
- <input type="hidden" name="receiver" value="<?=$config->ya_money_purse;?>">
- <input type="hidden" name="successURL" value="http://<?=$config->domain;?>/success.php?crmdomain=<?=$crmdomain?>">
- <input type="hidden" name="quickpay-form" value="shop">
- <input type="hidden" name="targets" value="<?= $crmdomain ?>">
- <input type="hidden" name="formcomment" value="PartCRM">
- <input type="hidden" name="short-dest" value="PartCRM: Оплата CRM">
- <input type="hidden" name="label" value="<?= $crmdomain ?>">
- </div>
- <div class="form-group">
- <label>Выбирете способ оплаты</label>
- <div class="row">
- <div class="col-xs-12 col-sm-6">
- <label for="way_1" class="payment-way checked">
- <img src="images/logo_cards_small.png" style="margin: 3px 0;" alt="Visa, MasterCard, Maestro">
- <div class="label-wp">
- <input type="radio" name="paymentType" id="way_1" value="AC" checked>
- <span>Картой</span>
- </div>
- </label>
- </div>
- <div class="col-xs-12 col-sm-6">
- <label for="way_2" class="payment-way">
- <img src="images/yandex_dengi_full_rgb.png" alt="Yandex.Money">
- <div class="label-wp">
- <input type="radio" name="paymentType" id="way_2" value="PC">
- <span>Яндекс.Деньгами</span>
- </div>
- </label>
- </div>
- </div>
- </div>
- <p class="alert alert-info" style="font-size: 14px;">Ваша CRM: <b><?=$crmdomain?>.partcrm.ru</b> будет продлена на <b id="info_period">1 месяц</b> за <b id="info_price"><?=$config->price['month']?> руб.</b>
- <br> Для продложения, нажмите кнопку "Оплатить"</p>
- <button type="submit" class="btn btn-primary btn-lg"
- data-loading-text="Пожалуйста, подождите ..." data-autocomplete="off">Продлить
- </button>
- </form>
- <?php } else { ?>
- <h2>Ошибка</h2>
- <?php } ?>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- <footer class="footer" role="contentinfo">
- <div class="container">
- <p class="text-muted">© PartCRM 2012-2017. Программа для автоматизации магазина автозапчастей.</p>
- <p><a href="#" data-toggle="modal" data-target="#privacyPolicy">Политика конфиденциальности</a></p>
- </div>
- </footer>
- <div class="modal fade" id="privacyPolicy" tabindex="-1" role="dialog" aria-labelledby="privacyPolicyLabel">
- <div class="modal-dialog" role="document">
- <div class="modal-content">
- <div class="modal-header">
- <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
- aria-hidden="true">×</span></button>
- <h4 class="modal-title" id="privacyPolicyLabel">Политика конфиденциальности</h4>
- </div>
- <div class="modal-body">
- <ul class="agreement">
- <li>Обработка персональных данных Пользователя осуществляется в соответствии с законодательством
- Российской Федерации. Администрация Сайта обрабатывает персональные данные Пользователя в целях
- предоставления Пользователю услуг.
- </li>
- <li>Пользователь заполняя форму на сайте даёт согласие на обработку своих персональных данных. Под
- обработкой персональных данных понимается сбор, систематизация, накопление, уточнение
- (обновление, изменение).
- </li>
- <li>Обработка осуществляется с использованием средств автоматизации и/или без использования таких
- средств, в целях реализации мероприятий оповещения пользователя о изменениях на сайте и по
- поддержке обратной связи с пользователями сайта.
- </li>
- <li>Указанное согласие действует бессрочно с момента предоставления данных и может быть отозвано
- Вами путем подачи заявления администрации сайта с указанием данных, определенных ст. 14 Закона
- «О персональных данных».
- </li>
- <li>Отзыв согласия на обработку персональных данных может быть осуществлен путем направления
- Пользователем соответствующего распоряжения путем нажатия соотвествующей кнопки во входящем
- письме от сайта в любое время. Соглашение считается бессрочным.
- </li>
- <li>Сайт не передает данные третьим лицам.</li>
- <li>К настоящему Соглашению и отношениям между пользователем и Сайтом, возникающим в связи с
- применением Соглашения подлежит применению право Российской Федерации.
- </li>
- </ul>
- </div>
- </div>
- </div>
- </div>
- <script src="js/plugins.min.js"></script>
- <script src="js/bootstrap.min.js"></script>
- <script src="js/main.min.js"></script>
- </body>
- </html>
- <?php
- } else if($_POST['sha1_hash']) { //Обработка ответа от яндекса
- $error = '';
- //Сбор и фильтрация данных
- $notification_type = mysql_escape_string(htmlspecialchars(strip_tags($_POST['notification_type'])));
- $operation_id = mysql_escape_string(htmlspecialchars(strip_tags($_POST['operation_id'])));
- $amount = mysql_escape_string(htmlspecialchars(strip_tags($_POST['amount'])));
- $withdraw_amount = mysql_escape_string(htmlspecialchars(strip_tags($_POST['withdraw_amount'])));
- $datetime = mysql_escape_string(htmlspecialchars(strip_tags($_POST['datetime'])));
- $sender = mysql_escape_string(htmlspecialchars(strip_tags($_POST['sender'])));
- $codepro = mysql_escape_string(htmlspecialchars(strip_tags($_POST['codepro'])));
- $label = mysql_escape_string(htmlspecialchars(strip_tags($_POST['label'] )));
- $sha1_hash = mysql_escape_string(htmlspecialchars(strip_tags($_POST['sha1_hash'])));
- $CRMDomain = $label;
- // Проверяем подлинность
- $sha1 = sha1($notification_type . '&'.$operation_id. '&' . $amount . '&643&' . $datetime . '&'. $sender . '&' . $codepro . '&' . $config->ya_money_secret. '&' . $label );
- if ($sha1 != $sha1_hash) {
- //Верификация не пройдена
- file_put_contents($config->payment_log_file_path, date('Y-m-d H:i:s')."\nВерификация не пройдена\n\n\n", FILE_APPEND);
- exit();
- } else {
- //Верификация пройдена
- if (!$db_link = @mysql_connect($config->db_host, $config->db_login, $config->db_password)) {
- $error .= 'Ошибка подключения к MySQL: '.mysql_errno() . ' ' . mysql_error().' ';
- }
- mysql_query("SET NAMES 'utf8'",$db_link);
- $tbd_sql = mysql_query("SELECT `till_bought_date`, `email`, `name` FROM `{$config->db_name}`.`tickets` WHERE `domain` = '{$CRMDomain}';", $db_link);
- if (mysql_num_rows($tbd_sql) === 1) {
- $row = mysql_fetch_assoc($tbd_sql);
- $till_bought_date_timestamp = strtotime($row['till_bought_date']);
- $email = $row['email'];
- $name = $row['name'];
- } else {
- $error .= 'Не удалось получить дату действия CRM из центральной базы. Пожалуйста, обратитесь к администратору. ';
- }
- $today = strtotime(date('Y-m-d'));
- switch ($withdraw_amount){
- case $config->price['forever']:
- $new_till_bought_date_timestamp = 4102434000; //2100 год
- break;
- case $config->price['year']:
- if($till_bought_date_timestamp < time()) { // CRM просрочена
- $new_till_bought_date_timestamp = strtotime('+1 year', $today);
- } else {
- $new_till_bought_date_timestamp = strtotime('+1 year',$till_bought_date_timestamp);
- }
- break;
- default:
- $days = ($withdraw_amount/$config->price['month'])*30;
- if($days < 2) {
- $error .= 'Нельзя продлить CRM менее чем на 2 дня. ';
- } else {
- $days = round($days);
- }
- if($till_bought_date_timestamp < time()) { // CRM просрочена
- $new_till_bought_date_timestamp = strtotime('+'.$days.' days', $today);
- } else {
- $new_till_bought_date_timestamp = strtotime('+'.$days.' days',$till_bought_date_timestamp);
- }
- }
- $new_till_bought_date = date('Y-m-d H:i:s',$new_till_bought_date_timestamp);
- $result_sql = mysql_query("UPDATE `{$config->db_name}`.`tickets` SET `till_bought_date` = '{$new_till_bought_date}', `bought`='1' WHERE `domain` = '{$CRMDomain}';", $db_link);
- if ($result_sql) {
- mysql_close($db_link);
- $msg = "
- <p>Здравствуйте {$name}!</p>
- <p>Ваша crm <a href=\"".$CRMDomain.".partcrm.ru\">".$CRMDomain.".partcrm.ru</a> оплачена до ".date('d.m.Y', $new_till_bought_date_timestamp).".</p>";
- $mail = initPHPMailer($config);
- $mail->addAddress($email);
- $mail->isHTML(true);
- $mail->Subject = 'CRM оплачена';
- $mail->Body = $msg;
- if(!$mail->send()) {
- $error .= 'E-mail не отправлен! ';
- }
- $error .= 'Продление выполнено. ';
- } else {
- $error .= 'Ошибка Mysql: '.mysql_errno($db_link) . ' ' . mysql_error($db_link).' ';
- }
- file_put_contents($config->payment_log_file_path, date('Y-m-d H:i:s')." - Верификация пройдена!\nДанные от яндекса: \n".$datetime.":".$label.":".$withdraw_amount."\n\n Результаты выполнения функции продления: ".$error ."\n\n\n", FILE_APPEND);
- }
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement