Вход Регистрация
Файл: iwup.biz/wminc/test.php
Строк: 202
<?php


/// ЭТО ВЫПИСКА СЧЕТА, Я ПРОСТО ВЫДРАЛ ИЗ СКРИПТА

elseif (@$_GET['type'] == 'wm')
           {

               
$err 0;
               if (isset(
$_POST['send']))
               {
                include_once (
"includes/USD.php");
                   if (!
checkinput($_POST['amount'],"FLOAT") or $_POST['amount'] =='')
                   {
                       
$err++;
                    
$design_err err_design ("<br>Неверный формат суммы.");
                }
                if (!
checkinput($_POST['wmid'],"INT") or strlen($_POST['wmid']) != 12)
                {
                    
$err++;
                    
$design_err err_design ("<br>Неверный формат wmid.");
                   }

                   if (!
$err)
                   {
                       
# кодировка сайта
                       
define("DOC_ENCODING""utf-8");

                    
# Подключаем библиотеку, отвечающую за выполнение
                    # запросов на сервер и приём ответов
                       
include_once("includes/wm/wmxi.php");

                    
# Создаём объект класса WMXI.
                       
$wmxi = new WMXI(realpath("includes/wm/WebMoneyCA.crt"), DOC_ENCODING);

                    
# Инициализация с помощью резервной копии ключей
                       
$wmxi->Classic("125524731213""ПАРОЛЬ""ПУТЬ К ФАЙЛУ КЛЮЧЕЙ");

                       
# Подключаем парсер ответа сервера и создаём объект
                       
include_once("includes/wm/wmxiparser.php");
                    
$parser = new WMXIParser();

                    
#Получаем id платежа
                    
$orderid SQLone("SELECT count(id) FROM enterpay") + 1;

                    
#Кошелек, на который нужно перевести деньги
                    
if($_POST['vid'] == 'wmr'$wmpurse $cfg_wmpurse['wmr'];
                    elseif(
$_POST['vid'] == 'wmz'$wmpurse $cfg_wmpurse['wmz'];
                    else
                    {
                        print 
"Error";
                        exit;
                    }

                    
# Получение и обработка данных формы
                    
$response $wmxi->X1
                    
(
                        
$orderid,                         # номер счета в системе учета магазина; любое целое число без знака
                        
$_POST['wmid'],                   # WMId покупателя
                        
$wmpurse,                         # номер кошелька, на который необходимо оплатить счет
                        
floatval($_POST["amount"]),       # число с плавающей точкой без незначащих символов
                        
trim($cfg_enter_desc ' user id ' $info['id_user']),             # произвольная строка от 0 до 255 символов; пробелы в начале или конце не допускаются
                        
'',                              # произвольная строка от 0 до 255 символов; пробелы в начале или конце не допускаются
                        
0,                                 # целое число от 0 до 255; если 0 - протекция сделки при оплате счета не разрешена
                        
2                                # целое число от 0 до 255; если 0 - срок оплаты не определен
                    
);


                    
# Преобразовываем ответ сервера в структуру. Входные параметры:
                    # - XML-ответ сервера
                    # - кодировка, используемая на сайте. По умолчанию используется UTF-8
                    
$structure $parser->Parse($responseDOC_ENCODING);

                    
# преобразуем индексы структуры к более удобным для доступа.
                    # Не рекомендуется проводить такое преобразование с с результатом, если он содержит
                    # множество однотипных строк (например, список транзакций)
                    # если надобности в аттрибутах XML-тегов ответа нет, то второй параметр можно
                    # установить в false - в таком случае структура выйдет более компактной
                    
$transformed $parser->Reindex($structuretrue);

                    
#Проверяем есть ли ошибки
                    
if(@$transformed["w3s.response"]["retval"] != '0')
                    {
                        
$err++;
                        
$design_err err_design ("<br>При выписке счета произошла ошибка, еще раз правильно заполните форму и нажмите "Отправить". Если снова увидите данное сообщение, то обратитесь в службу поддержки и сообщите описание ошибки -"$transformed["w3s.response"]["retdesc"]);
                    }
                    else
                    {

                        
SQLquery("INSERT INTO enterpay SET time = '"date('U') ."', id_user = "$info['id_user'] .", wmid = "htmlspecialchars($_POST['wmid']) .", wmpurse = '"$wmpurse ."', wminvid = "htmlspecialchars(@$structure[0]["node"][1]["@"]["ID"]) .", amount = " .$transformed["w3s.response"]["invoice"]["amount"].", status = 'new'");

                        if(
$_POST['vid'] == 'wmr'$amount $transformed["w3s.response"]["invoice"]["amount"];
                        elseif(
$_POST['vid'] == 'wmz'$amount $transformed["w3s.response"]["invoice"]["amount"] * $rate;

                        
$design_head "Счет успешно выписан!";
                        
$design_text .= "Номер счета: <b>"$orderid ."</b><br>";
                        
$design_text .= "К зачислению: <b>"round($amount2) ." WMR</b><br>";
                        
$design_text .= "Для оплаты счета через GSM Keeper в меню программы выбирите:<br>";
                        
$design_text .= ""Счета" -&gt; "Счета WebMoney" -&gt; "Неоплаченные счета" - &gt; выбирите нужный счет -&gt; "Меню" -&gt; "Оплатить".<br>";
                        
$design_text .= "Если Вы пользуетесь программой WM Keeper Classic, то просто выбирете нужный счет во вкладке "Входящие" и оплатите его.<br>";
                        
$design_text .= "Деньги будут зачислены в течение 15 минут с момента оплаты.<br />";
                        
$design_text .= "<b>Внимание!</b><br> Если в течение суток Вы не оплатите счет, он автоматически будет удален из системы, при оплате просроченного счета, деньги будут списаны с Вашего кошелька, но баланс в системе пополнен не будет!";

                        
#Готовим дизайн
                         
$template_phpbb->assign_vars(array(
                        
'HEAD'             => $design_head,
                        
'TEXT'          => $design_text
                        
)
                        );

                        
head('Пополнение баланса');
                        
$template_phpbb->pparse('text.tpl');
                    }

                }
            }

            
$design_err .= err_design ("""END");
            if (!isset(
$_POST['send']) or $err 0)
            {
                
$design_head "Пополнение баланса";
                   
$design_form ShowForm(array(
                   array(
"Ваш wmid:""wmid"$profil['wmid'], "text"),
                   array(
"Сумма к пополнению (для не целых чисел разделитель - точка):","amount""","text"),
                array(
"Валюта:","vid","","select", array("wmr"=>'WMR'"wmz"=>'WMZ')),
                ),
"Отправить");
                
#Готовим дизайн
                 
$template_phpbb->assign_vars(array(
                    
'HEAD'             => $design_head,
                    
'ERR'             => $design_err,
                    
'TEXT'          => $design_form
                
)
                );

                
head('Пополнение баланса');
                
$template_phpbb->pparse('text.tpl');
            }
        }



///ЭТО ПРОВЕРКА

    
include_once("/home/ant0ha/domains/serfing.mobi/public_html/includes/config.php");
    include_once(
"/home/ant0ha/domains/serfing.mobi/public_html/includes/function.php");
    include_once(
"/home/ant0ha/domains/serfing.mobi/public_html/includes/serfing.php");
    include_once(
"/home/ant0ha/domains/serfing.mobi/public_html/includes/functionsql.php");
    include_once(
"/home/ant0ha/domains/serfing.mobi/public_html/includes/USD.php");

    
SQLconnect();

//====================================================================================================================================================
//                        ПРОВЕРКА СЧЕТОВ
//====================================================================================================================================================

    # кодировка сайта
    
define("DOC_ENCODING""windows-1251");

    
# Подключаем библиотеку, отвечающую за выполнение
    # запросов на сервер и приём ответов
    
include_once("/home/ant0ha/domains/serfing.mobi/public_html/includes/wm/wmxi.php");

    
# Создаём объект класса WMXI. Передаваемые параметры:
    # - путь к сертификату, используемому для защиты от атаки с подменой ДНС
    # - кодировка, используемая на сайте. По умолчанию используется UTF-8
    
$wmxi = new WMXI(realpath("/home/ant0ha/domains/serfing.mobi/public_html/includes/wm/WebMoneyCA.crt"), DOC_ENCODING);

    
# Инициализация с помощью резервной копии ключей
    # от Webmoney Keeper Classic. Передаваемые параметры:
    # - WMID - идентификатор пользователя
    # - пароль пользователя от резервной копии файла ключей
    # - путь к резервной копии файла ключей размером 164 байта
    #   или бинарное содержимое файла ключа
    
$wmxi->Classic("190946901339""ПАРОЛЬ""ПУТЬ К ФАЙЛУ КЛЮЧЕЙ");
    
# $kwm = file_get_contents("../keys/000000000000.kwm");
    #$wmxi->Classic("000000000000", "password", $kwm);

    # http://www.webmoney.ru/rus/developers/interfaces/xml/xml_php/index.shtml
    # Раздел "Работа с сертификатами WM Keeper Light (X.509)"
    # Инициализация с помощью сертификата
    # от Webmoney Keeper Lite. Передаваемые параметры:
    # - путь к файлу приватного ключа
    # - путь к файлу сертификата
    # - пароль от приватного ключа
    # $wmxi->Lite("keyfile.key", "keyfile.cer", "pass");

    # Подключаем парсер ответа сервера и создаём объект
    
include_once("/home/ant0ha/domains/serfing.mobi/public_html/includes/wm/wmxiparser.php");
    
$parser = new WMXIParser();


    
$res SQLquery("SELECT * FROM enterpay WHERE status = 'new'");

    while(
$data mysql_fetch_array($res))
    {

        
$response $wmxi->X4(
            
$data["wmpurse"],               # номер кошелька для оплаты на который которого выписывался счет
            
intval($data["wminvid"]),         # целое число > 0
            
'',                             # номер счета в системе учета магазина; любое целое число без знака
            
'20080101 12:00:00',             # ГГГГММДД ЧЧ:ММ:СС
            
'21000101 12:00:00'             # ГГГГММДД ЧЧ:ММ:СС
        
);

        
# Преобразовываем ответ сервера в структуру. Входные параметры:
        # - XML-ответ сервера
        # - кодировка, используемая на сайте. По умолчанию используется UTF-8
        
$structure $parser->Parse($responseDOC_ENCODING);

        
# преобразуем индексы структуры к более удобным для доступа.
        # Не рекомендуется проводить такое преобразование с с результатом, если он содержит
        # множество однотипных строк (например, список транзакций)
        # если надобности в аттрибутах XML-тегов ответа нет, то второй параметр можно
        # установить в false - в таком случае структура выйдет более компактной
        
$transformed $parser->Reindex($structurefalse);



       if(
$structure[0]['node'][1]['node'][0]['node'][6]['data'] == 2)
        {
            if(
strstr($data['wmpurse'], 'R')) $amount $structure[0]['node'][1]['node'][0]['node'][3]['data'];
              elseif(
strstr($data['wmpurse'], 'Z')) $amount $structure[0]['node'][1]['node'][0]['node'][3]['data'] * $rate;

            
#Меняем статус счета
            
SQLquery("UPDATE enterpay SET status = 'ok' WHERE id = "$data['id']);

            
#Получаем информацию о пользователе
            
$tarif_id SQLone("SELECT tarif_id FROM users WHERE id_user = "$data['id_user']);
            
$enter_bonus SQLone("SELECT enter_bonus FROM tarifs WHERE id = "$tarif_id);

            
#Находим сумму бонуса
            
$enter_bonus $amount $enter_bonus 100;

            
#Зачисляем деньги пользователю
            
$enter_summ $enter_bonus $amount;
            
SQLquery("UPDATE users SET balance=balance+$enter_summ WHERE id_user = "$data['id_user']);

            
bank ('enter_bonus'$enter_bonus);

        }
        elseif(
$structure[0]['node'][1]['node'][0]['node'][6]['data'] == 3)
        {
            
#Меняем статус счета
            
SQLquery("UPDATE enterpay SET status = 'cansel' WHERE id = "$data['id']);
        }

    }

    
//================================================================================================================================================
    //                УДАЛЕНИЕ ПРОСРОЧЕННЫХ СЧЕТОВ
    //================================================================================================================================================
    
$date date('U') - 86400;
    
SQLquery("DELETE FROM enterpay WHERE time < "$date ." AND status = 'new'");



?>
Онлайн: 2
Реклама