Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
  • Данный раздел создан исключительно для релизов! Вопросы по лаунчеру или обвязке задавайте ТОЛЬКО в соответсвующей теме автора. Любые другие темы будут удалены, а авторы понесут наказание.

Идея Свой платежный шлюз (почти)

zuma2

Старожил
Заблокирован
Пользователь
Баллы
173
Имя в Minecraft
zuma2
есть скрипт Lazypay (типо как рентшоп)
Есть ли тут знающие люди которые могли бы разобрать этот скрипт?
и почти не пондобится всякие робокассы, интеркассы и т.д
вот собсна ниже, я в php нуб, но как можно было бы впилить в лк?

PHP:
<?php
class order extends FE_Controller {
    function __Construct() {
        parent::__construct();
        $this->load->model('order_model');
        $this->load->model('goods_model');
    }
    public function index()
    {
        $rules = $this->order_model->rules;
        $this->form_validation->set_rules($rules);
   
        if ($this->form_validation->run() == TRUE) {
            $data = $this->order_model->array_from_post(array('email','count','type','fund'));
            $item = $this->goods_model->get($data['type']);
           
            //Проверка ID товара
            if(!count($item)){
                $resp['error'] =  'Такого товара не существует!';
                echo json_encode($resp);
                return false;
            }
           
            //Проверка кол-ва товара, если товар - файл, то не проверяем!
            if($item->sell_method == 0)
            {
                $encdata = $this->encrypt->decode($item->goods);
                if(empty($encdata))
                {
                    $item->count = '0';
                }
                else
                {
                    $item->count = count(explode("\n",$encdata));
                    $item->goods = "";
                }
                if($item->count < $data['count'])
                {
                    $resp['error'] =  'Такого количества товара нет!';
                    echo json_encode($resp);
                    return false;
                }
                if($item->min_order > $data['count'])
                {
                    $resp['error'] = 'Мин. кол-во для заказа: '.$item->min_order;
                    echo json_encode($resp);
                    return false;
                }
            }
            elseif($item->sell_method == 1)
            {
                $item->count = 'Файл';
                $data['count'] = 'Файл';
                $item->goods = "";
            }
           
        //Проверка метода оплаты
            if($data['fund'] == 1)
            {
                $pay = 'WMR';
                $fund = $this->config->item('WMR');
                if($item->sell_method == 0 or $item->sell_method == 2)
                $price = ($data['count']) * $item->price_rub;
                else
                $price = $item->price_rub;
            }
            elseif($data['fund'] == 2)
            {
                $pay = 'WMZ';
                $fund = $this->config->item('WMZ');
                if($item->sell_method == 0 or $item->sell_method == 2)
                $price = ($data['count']) * $item->price_dlr;
                else
                $price = $item->price_dlr;
            }
            elseif($data['fund'] == 3)
            {
                $pay = 'YAD';
                $fund = $this->config->item('yad_wallet');
                if($item->sell_method == 0 or $item->sell_method == 2)
                $price = ($data['count']) * $item->price_rub;
                else
                $price = $item->price_rub;
            }
            elseif($data['fund'] == 4)
            {
                $pay = 'QIWI';
                $fund = $this->config->item('qiwi_num');
                if($item->sell_method == 0 or $item->sell_method == 2)
                $price = $data['count'] * $item->price_rub;
                else
                $price = $item->price_rub;
            }
            else
            {
                echo 'Выбран неверный метод оплаты!';
                return false;
            }
            $rand = random_string('alnum',15);
            if($data['fund'] == 1 or $data['fund'] == 2)
            {
                $this->load->helper('wm_helper');
                $wmid = $this->config->item('wmid');
                $wm_pass = $this->encrypt->decode($this->config->item('wm_pass'));
                $wmk_file = unserialize($this->encrypt->decode($this->config->item('wmk_file')));
                $wmk_file = $wmk_file['name'];
                $wmk_path = './assets/uploads/'.preg_replace('/[^\p{L}\p{N}\s]/u','', md5(config_item('encryption_key').site_url())).'/'.$wmk_file;
                checkwm($wmid,$wm_pass,$wmk_path,$fund);
            }
            elseif($data['fund'] == 3)
            {
                $this->load->helper('yad_helper');
                $clid = config_item('yad_client_id');
                $token = config_item('yad_token');
                check_yad($clid,$token);
            }
            elseif($data['fund'] == 4)
            {
                $this->load->helper('qiwi_helper');
                $qiwi_num = config_item('qiwi_num');
                $qiwi_pass = $this->encrypt->decode(config_item('qiwi_pass'));
                check_qiwi($qiwi_num,$qiwi_pass);
            }
            $price = number_format($price, 2, '.', '');
            //Если все данные верные, то собираем запрос к БД
            $order['bill'] = 'bill['.$rand.']';
            $order['email'] = $data['email'];
            $order['date'] = microtime(true);
            $order['item_id'] = $item->id;
            $order['count'] = $data['count'];
            $order['price'] = $price;
            $order['session_key'] = $this->session->userdata('session_id');
            $order['ip_address'] = $this->session->userdata('ip_address');
            $order['fund'] = $pay;
            $order['redeemed'] = FALSE;
            $order['paid'] = FALSE;
           
            $this->order_model->save($order);
           
            //Собираем форму платежа
            $form['ok'] = 'TRUE';
            $form['bill'] = '<b> bill['.$rand.']</b>';
            $form['name'] = $item->name;
            $form['count'] = $data['count'];
            $form['price'] = $price.' '.$pay;
            $form['fund'] = '<b>'.$fund.'</b>';
            $form['check_url'] = site_url('/order/'.$rand);
           
            echo json_encode($form);
        }
        else {
            $res['error'] = validation_errors('<div>', '</div>');
            print_r($res);
        }           
    }
   
    public function checkpay() {
        if(preg_match('/^[a-zA-Z0-9]{15}+$/',$this->uri->segment(2),$bill))
        {   
            $resp['status'] = 'false';
            $retname = $bill[0].'.txt';
            $savebill = $bill[0];
            $bill = 'bill['.$bill[0].']';
            $order = $this->order_model->get_by(array('bill' => $bill),TRUE);
            if(count($order)) {
                $item = $this->goods_model->get($order->item_id);
                if(count($item)) {
                    $this->load->helper('wm_helper');
                    $this->load->helper('qiwi_helper');
                    $this->load->helper('download');
                    if($order->paid == FALSE) {
                      if($order->fund == "WMR" or $order->fund == "WMZ")
                        {
                        $wmid = $this->config->item('wmid');
                        $wm_pass = $this->encrypt->decode($this->config->item('wm_pass'));
                        $wmk_file = unserialize($this->encrypt->decode($this->config->item('wmk_file')));
                        $wmk_file = $wmk_file['name'];
                        $wmk_path = './assets/uploads/'.preg_replace('/[^\p{L}\p{N}\s]/u','', md5(config_item('encryption_key').site_url())).'/'.$wmk_file;
                        $price = $order->price;
                        if($order->fund == "WMR")
                        {
                            $fund = $this->config->item('WMR');
                        }
                        elseif($order->fund == "WMZ")
                        {
                            $fund = $this->config->item('WMZ');
                        }
                        else
                        {
                            return false;
                        }                   
                        $chkpay = check_payment($wmid,$wm_pass,$fund,$wmk_path,$bill,$price);
                        }
                        elseif($order->fund == "QIWI")
                        {
                            $qiwi_num = config_item('qiwi_num');
                            $qiwi_pass = $this->encrypt->decode(config_item('qiwi_pass'));
                            $price = $order->price;
                            $chkpay = qiwi_pay($qiwi_num,$qiwi_pass,$bill,$price);
                        }
                        if($chkpay == TRUE)
                        {   
                            if($item->sell_method == 0)
                            {
                                $count = $order->count;
                                $goods = explode("\n",$this->encrypt->decode($item->goods));
                                $paidgoods = implode("\n",array_splice($goods, 0, $count));
                                $goods = implode("\n",$goods);
                                $savegood['goods'] = $this->encrypt->encode($goods);
                                $saveord['goods'] = $this->encrypt->encode($paidgoods);
                            }
                            elseif($item->sell_method == 1)
                            {
                                $uppath = './assets/uploads/'.preg_replace('/[^\p{L}\p{N}\s]/u','', md5(config_item('encryption_key').$item->goods.$item->name)).'/'.$item->goods;
                                $retname = $item->goods;
                                $paidgoods = file_get_contents($uppath);
                            }
                            $saveord['paid'] = TRUE;
                            $this->order_model->save($saveord,$order->id);
                            $this->goods_model->save($savegood,$order->item_id);
                            $from = parse_url(site_url());
                            $from = $from['host'];
                            $this->load->library('email');
                            $this->email->from('admin@'.$from, 'admin');
                            $this->email->to($order->email);
                            $this->email->subject('Покупка на сайте '.site_url());
                            $this->email->message("Спасибо за покупку на нашем сайте! \n Вы можете получить свой заказ по этой ссылке: ".site_url('order/'.$savebill));   
                            $this->email->send();
                            if (!$this->input->is_ajax_request()) {
                                force_download($retname, $paidgoods);
                            }
                            $resp['status'] = 'ok';
                            $resp['chkurl'] = site_url('order/'.$savebill);
                        }
                        else {
                            $resp['status'] = 'false';
                        }
                    }
                    elseif($order->paid == TRUE)
                    {
                        if($item->sell_method == 0)
                        {
                            $paidgoods = $this->encrypt->decode($order->goods);
                            if (!$this->input->is_ajax_request()) {
                                force_download($retname, $paidgoods);
                            }
                        }
                        elseif($item->sell_method == 1)
                        {
                            $uppath = './assets/uploads/'.preg_replace('/[^\p{L}\p{N}\s]/u','', md5(config_item('encryption_key').$item->goods.$item->name)).'/'.$item->goods;
                            if (!$this->input->is_ajax_request()) {
                                force_download($item->goods, file_get_contents($uppath));
                            }
                        }
                        $resp['status'] = 'ok';
                        $resp['chkurl'] = site_url('order/'.$savebill);
                    }
                    else
                    {
                        $resp['status'] = 'false';
                    }
                   
                }
                echo json_encode($resp);
           
            }
        }
    }
 
Последнее редактирование:
есть скрипт Lazypay (типо как рентшоп)
Есть ли тут знающие люди которые могли бы разобрать этот скрипт?
и почти не пондобится всякие робокассы, интеркассы и т.д
(P.s - дам говнокод)
payyer юзай.
 
Не ну смысл через людей кидать когда через этот скрипт падает копейка прямо в кошелек?
 
Переписывал лк геймлакса под него. За копейку могу сделать. Скайп слева.
 
дырявей лэйзишопа наверное только друшлак
 
Дырявей "лэйзишопа" наверное, только дуршлаг.
Согласен.
Ну, или в крайнем случае, Саша Грей.
PHP:
<?php
class order extends FE_Controller {
    function __Construct() {
        parent::__construct();
        $this->load->model('order_model');
        $this->load->model('goods_model');
    }
    public function index()
    {
        $rules = $this->order_model->rules;
        $this->form_validation->set_rules($rules);
 
        if ($this->form_validation->run() == TRUE) {
            $data = $this->order_model->array_from_post(array('email','count','type','fund'));
            $item = $this->goods_model->get($data['type']);
         
            //Проверка ID товара
            if(!count($item)){
                $resp['error'] =  'Такого товара не существует!';
                echo json_encode($resp);
                return false;
            }
         
            //Проверка кол-ва товара, если товар - файл, то не проверяем!
            if($item->sell_method == 0)
            {
                $encdata = $this->encrypt->decode($item->goods);
                if(empty($encdata))
                {
                    $item->count = '0';
                }
                else
                {
                    $item->count = count(explode("\n",$encdata));
                    $item->goods = "";
                }
                if($item->count < $data['count'])
                {
                    $resp['error'] =  'Такого количества товара нет!';
                    echo json_encode($resp);
                    return false;
                }
                if($item->min_order > $data['count'])
                {
                    $resp['error'] = 'Мин. кол-во для заказа: '.$item->min_order;
                    echo json_encode($resp);
                    return false;
                }
            }
            elseif($item->sell_method == 1)
            {
                $item->count = 'Файл';
                $data['count'] = 'Файл';
                $item->goods = "";
            }
         
        //Проверка метода оплаты
            if($data['fund'] == 1)
            {
                $pay = 'WMR';
                $fund = $this->config->item('WMR');
                if($item->sell_method == 0 or $item->sell_method == 2)
                $price = ($data['count']) * $item->price_rub;
                else
                $price = $item->price_rub;
            }
            elseif($data['fund'] == 2)
            {
                $pay = 'WMZ';
                $fund = $this->config->item('WMZ');
                if($item->sell_method == 0 or $item->sell_method == 2)
                $price = ($data['count']) * $item->price_dlr;
                else
                $price = $item->price_dlr;
            }
            elseif($data['fund'] == 3)
            {
                $pay = 'YAD';
                $fund = $this->config->item('yad_wallet');
                if($item->sell_method == 0 or $item->sell_method == 2)
                $price = ($data['count']) * $item->price_rub;
                else
                $price = $item->price_rub;
            }
            elseif($data['fund'] == 4)
            {
                $pay = 'QIWI';
                $fund = $this->config->item('qiwi_num');
                if($item->sell_method == 0 or $item->sell_method == 2)
                $price = $data['count'] * $item->price_rub;
                else
                $price = $item->price_rub;
            }
            else
            {
                echo 'Выбран неверный метод оплаты!';
                return false;
            }
            $rand = random_string('alnum',15);
            if($data['fund'] == 1 or $data['fund'] == 2)
            {
                $this->load->helper('wm_helper');
                $wmid = $this->config->item('wmid');
                $wm_pass = $this->encrypt->decode($this->config->item('wm_pass'));
                $wmk_file = unserialize($this->encrypt->decode($this->config->item('wmk_file')));
                $wmk_file = $wmk_file['name'];
                $wmk_path = './assets/uploads/'.preg_replace('/[^\p{L}\p{N}\s]/u','', md5(config_item('encryption_key').site_url())).'/'.$wmk_file;
                checkwm($wmid,$wm_pass,$wmk_path,$fund);
            }
            elseif($data['fund'] == 3)
            {
                $this->load->helper('yad_helper');
                $clid = config_item('yad_client_id');
                $token = config_item('yad_token');
                check_yad($clid,$token);
            }
            elseif($data['fund'] == 4)
            {
                $this->load->helper('qiwi_helper');
                $qiwi_num = config_item('qiwi_num');
                $qiwi_pass = $this->encrypt->decode(config_item('qiwi_pass'));
                check_qiwi($qiwi_num,$qiwi_pass);
            }
            $price = number_format($price, 2, '.', '');
            //Если все данные верные, то собираем запрос к БД
            $order['bill'] = 'bill['.$rand.']';
            $order['email'] = $data['email'];
            $order['date'] = microtime(true);
            $order['item_id'] = $item->id;
            $order['count'] = $data['count'];
            $order['price'] = $price;
            $order['session_key'] = $this->session->userdata('session_id');
            $order['ip_address'] = $this->session->userdata('ip_address');
            $order['fund'] = $pay;
            $order['redeemed'] = FALSE;
            $order['paid'] = FALSE;
         
            $this->order_model->save($order);
         
            //Собираем форму платежа
            $form['ok'] = 'TRUE';
            $form['bill'] = '<b> bill['.$rand.']</b>';
            $form['name'] = $item->name;
            $form['count'] = $data['count'];
            $form['price'] = $price.' '.$pay;
            $form['fund'] = '<b>'.$fund.'</b>';
            $form['check_url'] = site_url('/order/'.$rand);
         
            echo json_encode($form);
        }
        else {
            $res['error'] = validation_errors('<div>', '</div>');
            print_r($res);
        }         
    }
 
    public function checkpay() {
        if(preg_match('/^[a-zA-Z0-9]{15}+$/',$this->uri->segment(2),$bill))
        { 
            $resp['status'] = 'false';
            $retname = $bill[0].'.txt';
            $savebill = $bill[0];
            $bill = 'bill['.$bill[0].']';
            $order = $this->order_model->get_by(array('bill' => $bill),TRUE);
            if(count($order)) {
                $item = $this->goods_model->get($order->item_id);
                if(count($item)) {
                    $this->load->helper('wm_helper');
                    $this->load->helper('qiwi_helper');
                    $this->load->helper('download');
                    if($order->paid == FALSE) {
                      if($order->fund == "WMR" or $order->fund == "WMZ")
                        {
                        $wmid = $this->config->item('wmid');
                        $wm_pass = $this->encrypt->decode($this->config->item('wm_pass'));
                        $wmk_file = unserialize($this->encrypt->decode($this->config->item('wmk_file')));
                        $wmk_file = $wmk_file['name'];
                        $wmk_path = './assets/uploads/'.preg_replace('/[^\p{L}\p{N}\s]/u','', md5(config_item('encryption_key').site_url())).'/'.$wmk_file;
                        $price = $order->price;
                        if($order->fund == "WMR")
                        {
                            $fund = $this->config->item('WMR');
                        }
                        elseif($order->fund == "WMZ")
                        {
                            $fund = $this->config->item('WMZ');
                        }
                        else
                        {
                            return false;
                        }                 
                        $chkpay = check_payment($wmid,$wm_pass,$fund,$wmk_path,$bill,$price);
                        }
                        elseif($order->fund == "QIWI")
                        {
                            $qiwi_num = config_item('qiwi_num');
                            $qiwi_pass = $this->encrypt->decode(config_item('qiwi_pass'));
                            $price = $order->price;
                            $chkpay = qiwi_pay($qiwi_num,$qiwi_pass,$bill,$price);
                        }
                        if($chkpay == TRUE)
                        { 
                            if($item->sell_method == 0)
                            {
                                $count = $order->count;
                                $goods = explode("\n",$this->encrypt->decode($item->goods));
                                $paidgoods = implode("\n",array_splice($goods, 0, $count));
                                $goods = implode("\n",$goods);
                                $savegood['goods'] = $this->encrypt->encode($goods);
                                $saveord['goods'] = $this->encrypt->encode($paidgoods);
                            }
                            elseif($item->sell_method == 1)
                            {
                                $uppath = './assets/uploads/'.preg_replace('/[^\p{L}\p{N}\s]/u','', md5(config_item('encryption_key').$item->goods.$item->name)).'/'.$item->goods;
                                $retname = $item->goods;
                                $paidgoods = file_get_contents($uppath);
                            }
                            $saveord['paid'] = TRUE;
                            $this->order_model->save($saveord,$order->id);
                            $this->goods_model->save($savegood,$order->item_id);
                            $from = parse_url(site_url());
                            $from = $from['host'];
                            $this->load->library('email');
                            $this->email->from('admin@'.$from, 'admin');
                            $this->email->to($order->email);
                            $this->email->subject('Покупка на сайте '.site_url());
                            $this->email->message("Спасибо за покупку на нашем сайте! \n Вы можете получить свой заказ по этой ссылке: ".site_url('order/'.$savebill)); 
                            $this->email->send();
                            if (!$this->input->is_ajax_request()) {
                                force_download($retname, $paidgoods);
                            }
                            $resp['status'] = 'ok';
                            $resp['chkurl'] = site_url('order/'.$savebill);
                        }
                        else {
                            $resp['status'] = 'false';
                        }
                    }
                    elseif($order->paid == TRUE)
                    {
                        if($item->sell_method == 0)
                        {
                            $paidgoods = $this->encrypt->decode($order->goods);
                            if (!$this->input->is_ajax_request()) {
                                force_download($retname, $paidgoods);
                            }
                        }
                        elseif($item->sell_method == 1)
                        {
                            $uppath = './assets/uploads/'.preg_replace('/[^\p{L}\p{N}\s]/u','', md5(config_item('encryption_key').$item->goods.$item->name)).'/'.$item->goods;
                            if (!$this->input->is_ajax_request()) {
                                force_download($item->goods, file_get_contents($uppath));
                            }
                        }
                        $resp['status'] = 'ok';
                        $resp['chkurl'] = site_url('order/'.$savebill);
                    }
                    else
                    {
                        $resp['status'] = 'false';
                    }
                 
                }
                echo json_encode($resp);
         
            }
        }
    }
что за убогость?!
зачем вся эта бредня?!
откуда берется наследование?!
тут ООП неуместно, имхо.
 
по-моему уже где-то здесь на форуме про него писали, поищи.
Я наслышан был (из сайтов хацкиров) XSS уязвимость.

Согласен.
Ну, или в крайнем случае, Саша Грей.

что за убогость?!
зачем вся эта бредня?!
откуда берется наследование?!
тут ООП неуместно, имхо.
Ну, вот допустим если оплата webmoney то заходим в кипер и собираем инфу платежей.
(я возможно ошибся, но все же)

PHP:
<?
error_reporting(0);
if (!isset($class)) { $class = 'WMXI'; }
require_once("wm/$class.php");
function checkwm($wmid,$wm_pass,$wm_path,$fund) {
            # Форсирование использования библиотек
        //define('WMXI_MATH', 'bcmath4'); # Варианты: gmp, bcmath4, bcmath5
        define('WMXI_MD4', 'hash'); # Варианты: mhash, hash, class


        # Создаём объект класса. Передаваемые параметры:
        $wmxi = new WMXI(realpath('../WMXI.crt'), 'UTF-8');

        # Параметры инициализации ключем Webmoney Keeper Classic
        define('WMID', $wmid);
        define('PASS', $wm_pass);
        define('KWMFILE', $wm_path);

        $wmkey = array('pass' => PASS, 'file' => KWMFILE);
        if($wmxi->Classic(WMID, $wmkey))
        echo '123';
        date_default_timezone_set('Europe/Moscow');
        $res = $wmxi->X3(
            $fund,  # номер кошелька для которого запрашивается операция
            0,              # номер операции (в системе WebMoney)
            0,              # номер перевода
            0,              # номер счета (в системе WebMoney) по которому выполнялась операция
            0,              # номер счета
            date('Ymd',strtotime('+1 day')),      # минимальное время и дата выполнения операции
            date('Ymd',strtotime('+1 day'))          # максимальное время и дата выполнения операции
        );
        $resp = $res->Sort(false);
        if($resp['retval'] != 0)
        {
            die('Данные неверны!');
        }
}
function testwm($wmid,$wm_pass,$wm_path,$fund)
{
        # Форсирование использования библиотек
        // define('WMXI_MATH', 'bcmath4'); # Варианты: gmp, bcmath4, bcmath5
        define('WMXI_MD4', 'hash'); # Варианты: mhash, hash, class


        # Создаём объект класса. Передаваемые параметры:
        $wmxi = new WMXI(realpath('../WMXI.crt'), 'UTF-8');

        # Параметры инициализации ключем Webmoney Keeper Classic
        define('WMID', $wmid);
        define('PASS', $wm_pass);
        define('KWMFILE', $wm_path);

        $wmkey = array('pass' => PASS, 'file' => KWMFILE);
        if($wmxi->Classic(WMID, $wmkey))
        echo '123';
        date_default_timezone_set('Europe/Moscow');
        $res = $wmxi->X3(
            $fund,  # номер кошелька для которого запрашивается операция
            0,              # номер операции (в системе WebMoney)
            0,              # номер перевода
            0,              # номер счета (в системе WebMoney) по которому выполнялась операция
            0,              # номер счета
            date('Ymd',strtotime('+1 day')),      # минимальное время и дата выполнения операции
            date('Ymd',strtotime('+1 day'))          # максимальное время и дата выполнения операции
        );
        $resp = $res->Sort(false);
        print_r($resp);
}
function check_payment($wmid,$wm_pass,$fund,$wm_path,$desc,$amount)
{
    if(!empty($wmid) && !empty($wm_pass) && !empty($fund) && !empty($wm_path) && !empty($desc) && !empty($amount))
    {
        # Форсирование использования библиотек
        //define('WMXI_MATH', 'bcmath4'); # Варианты: gmp, bcmath4, bcmath5
        define('WMXI_MD4', 'hash'); # Варианты: mhash, hash, class


        # Создаём объект класса. Передаваемые параметры:
        $wmxi = new WMXI(realpath('../WMXI.crt'), 'UTF-8');

        # Параметры инициализации ключем Webmoney Keeper Classic
        define('WMID', $wmid);
        define('PASS', $wm_pass);
        define('KWMFILE', $wm_path);

        if (defined('EKEY') && defined('NKEY')) { $wmkey = array('ekey' => EKEY, 'nkey' => NKEY); }
        elseif (defined('KWMDATA')) { $wmkey = array('pass' => PASS, 'data' => KWMDATA); }
        elseif (defined('KWMFILE')) { $wmkey = array('pass' => PASS, 'file' => KWMFILE); }
        if (isset($wmkey)) { $wmxi->Classic(WMID, $wmkey); }
        date_default_timezone_set('Europe/Moscow');
        $res = $wmxi->X3(
            $fund,  # номер кошелька для которого запрашивается операция
            0,              # номер операции (в системе WebMoney)
            0,              # номер перевода
            0,              # номер счета (в системе WebMoney) по которому выполнялась операция
            0,              # номер счета
            date('Ymd',strtotime('Yesterday')),      # минимальное время и дата выполнения операции
            date('Ymd',strtotime('Tomorrow'))          # максимальное время и дата выполнения операции
        );

        $resp = $res->Sort(false);
        if($resp['operations']['@attributes']['cnt'] == 1) {
            if($resp['operations']['operation']['desc'] == $desc && round($resp['operations']['operation']['amount'],1) == $amount && $resp['operations']['operation']['opertype'] == 0)
            {
                return TRUE;
            }
        }
        elseif (count($resp['operations']['operation']) > 1)
        {
            foreach($resp['operations']['operation'] as $oper)
            {
                if($oper['desc'] == $desc && round($oper['amount'],1) == $amount && $oper['opertype'] == 0)
                {
                    return TRUE;
                }
            }
        }
        else
        {
            return FALSE;
        }
    }
    else
    {
        return FALSE;
    }
}
?>
или для вас такой код уже слишком?
 
Последнее редактирование:
Я наслышан был (из сайтов хацкиров) XSS уязвимость.


Ну, вот допустим если оплата webmoney то заходим в кипер и собираем инфу платежей.
(я возможно ошибся, но все же)

PHP:
<?
error_reporting(0);
if (!isset($class)) { $class = 'WMXI'; }
require_once("wm/$class.php");
function checkwm($wmid,$wm_pass,$wm_path,$fund) {
            # Форсирование использования библиотек
        //define('WMXI_MATH', 'bcmath4'); # Варианты: gmp, bcmath4, bcmath5
        define('WMXI_MD4', 'hash'); # Варианты: mhash, hash, class


        # Создаём объект класса. Передаваемые параметры:
        $wmxi = new WMXI(realpath('../WMXI.crt'), 'UTF-8');

        # Параметры инициализации ключем Webmoney Keeper Classic
        define('WMID', $wmid);
        define('PASS', $wm_pass);
        define('KWMFILE', $wm_path);

        $wmkey = array('pass' => PASS, 'file' => KWMFILE);
        if($wmxi->Classic(WMID, $wmkey))
        echo '123';
        date_default_timezone_set('Europe/Moscow');
        $res = $wmxi->X3(
            $fund,  # номер кошелька для которого запрашивается операция
            0,              # номер операции (в системе WebMoney)
            0,              # номер перевода
            0,              # номер счета (в системе WebMoney) по которому выполнялась операция
            0,              # номер счета
            date('Ymd',strtotime('+1 day')),      # минимальное время и дата выполнения операции
            date('Ymd',strtotime('+1 day'))          # максимальное время и дата выполнения операции
        );
        $resp = $res->Sort(false);
        if($resp['retval'] != 0)
        {
            die('Данные неверны!');
        }
}
function testwm($wmid,$wm_pass,$wm_path,$fund)
{
        # Форсирование использования библиотек
        // define('WMXI_MATH', 'bcmath4'); # Варианты: gmp, bcmath4, bcmath5
        define('WMXI_MD4', 'hash'); # Варианты: mhash, hash, class


        # Создаём объект класса. Передаваемые параметры:
        $wmxi = new WMXI(realpath('../WMXI.crt'), 'UTF-8');

        # Параметры инициализации ключем Webmoney Keeper Classic
        define('WMID', $wmid);
        define('PASS', $wm_pass);
        define('KWMFILE', $wm_path);

        $wmkey = array('pass' => PASS, 'file' => KWMFILE);
        if($wmxi->Classic(WMID, $wmkey))
        echo '123';
        date_default_timezone_set('Europe/Moscow');
        $res = $wmxi->X3(
            $fund,  # номер кошелька для которого запрашивается операция
            0,              # номер операции (в системе WebMoney)
            0,              # номер перевода
            0,              # номер счета (в системе WebMoney) по которому выполнялась операция
            0,              # номер счета
            date('Ymd',strtotime('+1 day')),      # минимальное время и дата выполнения операции
            date('Ymd',strtotime('+1 day'))          # максимальное время и дата выполнения операции
        );
        $resp = $res->Sort(false);
        print_r($resp);
}
function check_payment($wmid,$wm_pass,$fund,$wm_path,$desc,$amount)
{
    if(!empty($wmid) && !empty($wm_pass) && !empty($fund) && !empty($wm_path) && !empty($desc) && !empty($amount))
    {
        # Форсирование использования библиотек
        //define('WMXI_MATH', 'bcmath4'); # Варианты: gmp, bcmath4, bcmath5
        define('WMXI_MD4', 'hash'); # Варианты: mhash, hash, class


        # Создаём объект класса. Передаваемые параметры:
        $wmxi = new WMXI(realpath('../WMXI.crt'), 'UTF-8');

        # Параметры инициализации ключем Webmoney Keeper Classic
        define('WMID', $wmid);
        define('PASS', $wm_pass);
        define('KWMFILE', $wm_path);

        if (defined('EKEY') && defined('NKEY')) { $wmkey = array('ekey' => EKEY, 'nkey' => NKEY); }
        elseif (defined('KWMDATA')) { $wmkey = array('pass' => PASS, 'data' => KWMDATA); }
        elseif (defined('KWMFILE')) { $wmkey = array('pass' => PASS, 'file' => KWMFILE); }
        if (isset($wmkey)) { $wmxi->Classic(WMID, $wmkey); }
        date_default_timezone_set('Europe/Moscow');
        $res = $wmxi->X3(
            $fund,  # номер кошелька для которого запрашивается операция
            0,              # номер операции (в системе WebMoney)
            0,              # номер перевода
            0,              # номер счета (в системе WebMoney) по которому выполнялась операция
            0,              # номер счета
            date('Ymd',strtotime('Yesterday')),      # минимальное время и дата выполнения операции
            date('Ymd',strtotime('Tomorrow'))          # максимальное время и дата выполнения операции
        );

        $resp = $res->Sort(false);
        if($resp['operations']['@attributes']['cnt'] == 1) {
            if($resp['operations']['operation']['desc'] == $desc && round($resp['operations']['operation']['amount'],1) == $amount && $resp['operations']['operation']['opertype'] == 0)
            {
                return TRUE;
            }
        }
        elseif (count($resp['operations']['operation']) > 1)
        {
            foreach($resp['operations']['operation'] as $oper)
            {
                if($oper['desc'] == $desc && round($oper['amount'],1) == $amount && $oper['opertype'] == 0)
                {
                    return TRUE;
                }
            }
        }
        else
        {
            return FALSE;
        }
    }
    else
    {
        return FALSE;
    }
}
?>
или для вас такой код уже слишком?
я бог PHP.
Для меня ничего не слишком, ибо я знаком с такими функциями и такими фичами, о которых вы явно не слышали.
Данный код, по сути, связан лишь с дэйттайм, проверками на действительность покупки несколькими способами.
 
я бог PHP.
Для меня ничего не слишком, ибо я знаком с такими функциями и такими фичами, о которых вы явно не слышали.
Данный код, по сути, связан лишь с дэйттайм, проверками на действительность покупки несколькими способами.
Ну таки вот, ну сделать вместо выбора товара, ввод пополнения, потом формировался счет, после оплаты, отправлялся запрос в бд, мол все пополнено и начислялись бабули.
я бог PHP.
Для меня ничего не слишком, ибо я знаком с такими функциями и такими фичами, о которых вы явно не слышали.
Данный код, по сути, связан лишь с дэйттайм, проверками на действительность покупки несколькими способами.
ну раз лайкнул так помоги.
 

Поделиться этой страницей

Назад
Верх