Перейти до

Di111

Маглы
  • Всього повідомлень

    21
  • Приєднався

  • Останній візит

Сообщения додав Di111

  1. В 29.07.2019 в 16:07, igorek2003 сказал:

    пейбери подпилил, чтоб он в УКВ базу платежи заносил

    Вот мне интересно как у Вас op_transactions запись реализована, или вы без нее обходитесь? Не уверен что в модуле openpayz в таблице Транзакции OpenPayz там будет отображение пользователя с УКВ, сам использую Обработку банковских выписок 2, так конечно не удобно когда человек идет должника отрубать, а часом ранее этот должник по онлайн оплатил

  2. usr/local/www/apache24/data/billing/openpayz/backend/robokassa/index.php on line 27   в этой строке что содержится?

    ./openpayz/backend/robokassa/config/robokassa.ini логин и пароль заполнен?

    LOGIN="Ваш магазин"
    PASS1="пароль1"

    TEMPLATE_ISP="Компания"
    TEMPLATE_ISP_URL="http://"
    SERVICE_DESC="Оплатить с помощью ROBOKASSA"

    backend index.php маленько понес изменения

    Скрытый текст

    <?php
    $rkConf = parse_ini_file('config/robokassa.ini');

    $ispUrl = $rkConf['TEMPLATE_ISP_URL'];
    $ispName = $rkConf['TEMPLATE_ISP'];
    $serviceDesc = $rkConf['SERVICE_DESC'];


    function rk_PricesForm() {
        $result = '<form action="" method="GET">';
        if (!isset($_GET['customer_id'])) {
        $result.= '<H3>Введите Ваш платежный ID<br>и необходимую для пополнения сумму</H3><br>';
        $result.= 'ID<input style="margin-left:20px;width: 80px;text-align: right;" name="customer_id" type="text" title="Ваш платежный ID Вы можете найти в личном кабинете пользователя, это 8-10 значный цифровой номер" size="10" maxlength="11" required pattern="[0-9]{8,10}" placeholder="00000000"><br><br>';
        }else{
        $result.= '<H3>Ваш платежный ID'.$_GET['customer_id'].'<br>Введите необходимую для пополнения сумму</H3><br>';
        $result.= '<input name="customer_id" type="hidden" value="'.$_GET['customer_id'].'">';
        }
        $result.= 'RUB<input style="margin-left:4.5px;width: 80px;text-align: right;" name="amount" type="number" step="50" min="200" max="10000" placeholder="200" maxlength="5" required ><br><br>';
        $result.= '<input type="submit" value="Далее">';
        $result.= '</form>';

        return ($result);
    }

    function rk_PaymentForm() {
        global $rkConf;
        $mrh_login = $rkConf['LOGIN'];
        $mrh_pass1 = $rkConf['PASS1'];
        $inv_id = 0;
        $out_summ = $_GET['amount'];
        $shpa = $_GET['customer_id'];
        $inv_desc = "Оплата услуг связи ID".$shpa;
        $crc = md5("$mrh_login:$out_summ:$inv_id:$mrh_pass1:shpa=$shpa");
        $result.= '<H3><b>'.$inv_desc.'<br>На сумму '.$out_summ.'RUB</b><br>Нажимая на кнопку  «Оплатить»<br>Вы соглашаетесь с введенными данными!</H3><br>';
        $result.= '<script language=JavaScript src="https://auth.robokassa.ru/Merchant/PaymentForm/FormMS.js?MerchantLogin='.$mrh_login.'&OutSum='.$out_summ.'&InvId='.$inv_id.'&Description='.$inv_desc.'&SignatureValue='.$crc.'&shpa='.$shpa.'"></script>';

        $result.= '';

        return ($result);
    }

        if (!isset($_GET['amount'])) {
            $paymentForm = rk_PricesForm();
        } else {
            $paymentForm = rk_PaymentForm();
        }

        include('template.html');


    ?>

    в template.html    в нужное место вставь это  для вывода  <?=$paymentForm; ?>

     

    PS mc редактором глянь, при копировании лишних пробелов нет в коде?

  3. Доброго времени! Добавьте плиз Филиалы на УКВ (населенный пункт и тариф); печать предыдущих платежей,  иконку в столбце действий, как в модуле addcash; это конечно наглостью будет))) а как удаленно данные по ukv модулю вытащить))  подобием XML API в userstats, мне нужен текущий баланс абонента?

  4. В 19.11.2019 в 20:51, datakrava сказал:

    а с pppoe как быть? у меня в косах таргет - интерфейс, а линк просит на ip...

    ))

    там сверху код виден

    получится что то вроде 

    if (!ispos($bandwidthd_url, 'pppoe')) {
    // Banwidthd graphs model:
                $urls['dayr'] = $bandwidthd_url . '/' . $ip . '-1-R.png';
                $urls['days'] = $bandwidthd_url . '/' . $ip . '-1-S.png';
                $urls['weekr'] = $bandwidthd_url . '/' . $ip . '-2-R.png';
                $urls['weeks'] = $bandwidthd_url . '/' . $ip . '-2-S.png';
                $urls['monthr'] = $bandwidthd_url . '/' . $ip . '-3-R.png';
                $urls['months'] = $bandwidthd_url . '/' . $ip . '-3-S.png';
                $urls['yearr'] = $bandwidthd_url . '/' . $ip . '-4-R.png';
                $urls['years'] = $bandwidthd_url . '/' . $ip . '-4-S.png';
            } else {
                // Get user's IP array:
                $urls['dayr'] = $bandwidthd_url . $alluserips[$ip] . '>/daily.gif';
                $urls['days'] = null;
                $urls['weekr'] = $bandwidthd_url . $alluserips[$ip] . '>/weekly.gif';
                $urls['weeks'] = null;
                $urls['monthr'] = $bandwidthd_url . $alluserips[$ip] . '>/monthly.gif';
                $urls['months'] = null;
                $urls['yearr'] = $bandwidthd_url . $alluserips[$ip] . '>/yearly.gif';
                $urls['years'] = null;
            }

    и если на Mikrotik вы используете PPPoE и желаете видеть графики клиентов - можете указывать URL в виде: http://ваш_nas/graphs/queue/%3Cpppoe%2D

  5. Nas Mikrotik + Кучаген

    Доброго времени суток,  для отображения графиков через Кучаген по hotspot поправьте в  /usr/local/www/apache24/data/billing/api/libs/api.networking.php

    от строки 1575. P.S. Ссылка на Bandwidthd http://NAS/graphs/queue/%3Chotspot%2D

    КОД

     

    
    // RouterOS graph model:
        if ($nastype == 'mikrotik') {
            // Get user's IP array:
            $alluserips = zb_UserGetAllIPs();
            $alluserips = array_flip($alluserips);
            if (!ispos($bandwidthd_url, 'pppoe')) {
    // Generate graphs paths:
                $urls['dayr'] = $bandwidthd_url . '/' . $alluserips[$ip] . '/daily.gif';
                $urls['days'] = null;
                $urls['weekr'] = $bandwidthd_url . '/' . $alluserips[$ip] . '/weekly.gif';
                $urls['weeks'] = null;
                $urls['monthr'] = $bandwidthd_url . '/' . $alluserips[$ip] . '/monthly.gif';
                $urls['months'] = null;
                $urls['yearr'] = $bandwidthd_url . '/' . $alluserips[$ip] . '/yearly.gif';
                $urls['years'] = null;
            } else {
                $urls['dayr'] = $bandwidthd_url . $alluserips[$ip] . '>/daily.gif';
                $urls['days'] = null;
                $urls['weekr'] = $bandwidthd_url . $alluserips[$ip] . '>/weekly.gif';
                $urls['weeks'] = null;
                $urls['monthr'] = $bandwidthd_url . $alluserips[$ip] . '>/monthly.gif';
                $urls['months'] = null;
                $urls['yearr'] = $bandwidthd_url . $alluserips[$ip] . '>/yearly.gif';
                $urls['years'] = null;
            }
        } else {
            if (!ispos($bandwidthd_url, 'hotspot')) {
    // Banwidthd graphs model:
                $urls['dayr'] = $bandwidthd_url . '/' . $ip . '-1-R.png';
                $urls['days'] = $bandwidthd_url . '/' . $ip . '-1-S.png';
                $urls['weekr'] = $bandwidthd_url . '/' . $ip . '-2-R.png';
                $urls['weeks'] = $bandwidthd_url . '/' . $ip . '-2-S.png';
                $urls['monthr'] = $bandwidthd_url . '/' . $ip . '-3-R.png';
                $urls['months'] = $bandwidthd_url . '/' . $ip . '-3-S.png';
                $urls['yearr'] = $bandwidthd_url . '/' . $ip . '-4-R.png';
                $urls['years'] = $bandwidthd_url . '/' . $ip . '-4-S.png';
            } else {
                // Get user's IP array:
                $alluserMacs = zb_getAllUsedMac();
                $alluserMacs = array_flip($alluserMacs);
                $alluserMacs = mb_strtoupper($alluserMacs[$ip]);
                $urls['dayr'] = $bandwidthd_url . $alluserMacs . '>/daily.gif';
                $urls['days'] = null;
                $urls['weekr'] = $bandwidthd_url . $alluserMacs . '>/weekly.gif';
                $urls['weeks'] = null;
                $urls['monthr'] = $bandwidthd_url . $alluserMacs . '>/monthly.gif';
                $urls['months'] = null;
                $urls['yearr'] = $bandwidthd_url . $alluserMacs . '>/yearly.gif';
                $urls['years'] = null;
            }
        }

     

     

    • Like 1
  6. 20 часов назад, a_n_h сказал:

    а нужно:

     

     

    )) Докопался ведь же, я взял отсюда, просто давно об этом читал и решил сделать рестарт биллингу

     

    и то что я об этом вспомнил напомнило мне об создании NAS и рестарта stargazer )) цепочка мысли))

     

     

  7. Приветствую, разрешите и мне потупить, настроен удаленный NAS все работает, добавил услуги белых адресов, тоже все работает и раздает, но вот в таблицы 3 и 4 белые адреса не записываются, 

    между биллингом и NAS туннель tap 172.16.0.1(billing) и 172.16.0.2(NAS)

     NAS      lan1:10.0.0.1/24    lan2: w.w.w.w/w

    в биллинге настроил нас для серых адресов сеть 10.0.0.0/24 rscriptd ip 172.16.0.2

    для белых адресов сеть w.w.w.w/w rscriptd ip17216.0.2

    что делать, что бы NAS добавлял в таблички 3 и 4  белые адреса?

  8. После добавление новой необязательной опции SC_DAILY_FIX для улучшения самочувствия сетей с посуточной тарификацией, корректно стало работать кредитование, а в накопительных скидках с посуточной тарификацией суммы теперь тоже будут корректно начисляться?

     

    Пока что обхожусь так, в файле /api/libs/api.cudiscounts.php добавляю при каждом обновлении 228 строкой 

    $tariffPrice = round($tariffPrice * 30);

     

    абонентский тариф рассчитан на 30 дней с ежедневным списанием

     

    и как теперь разом округлить всем сумму по сотые числа, а то при первых начисления скидок суммы стали с десятитысячными числами?

  9. Если карточку отключить, дождаться когда сработает disconnect, заменить мак адрес, а потом включить, такого не происходит, а если манипуляции эти не проделать, то спокойно подключается. Произвел само активацию, выставил вручную ip адреса из пула, результат два компа в сети под одним тарифом...

     

     

    ИТОГ:

    Добавил пару атрибутов для ужесточения правил

    Активный check Framed-IP-Address = {IP}

    Активный reply Mikrotik-Address-List = ACTIVE

  10. Привет всем, все жалуются что не работает связка hotspot(MAC авторизация, активные клиенты, Mikrotik-Rate-Limit, Cleartext-Password), а у меня тупик, все работает, даже когда мак абонента удаляю из карточки, авторизация все равно идет, с тем же назначением скорости, получается подделал ip - авторизацию получил, что не так?? 

  11. Привет, простите что не по правилам, не проверял, но должно работать ))

    backend

     

    <?php
    $rkConf = parse_ini_file('config/robokassa.ini');

    $ispUrl = $rkConf['TEMPLATE_ISP_URL'];
    $ispName = $rkConf['TEMPLATE_ISP'];
    $serviceDesc = $rkConf['SERVICE_DESC'];


    function rk_PricesForm() {
        $result = '<form action="" method="GET">';
        if (!isset($_GET['customer_id'])) {
        $result.= '<H3>Введите Ваш платежный ID<br>и необходимую для пополнения сумму</H3><br>';
        $result.= 'ID&nbsp;<input name="customer_id" type="text" title="Ваш платежный ID Вы можете найти в личном кабинете пользователя, это 10-значный цифровой номер" size="10" maxlength="10" required pattern="[0-9]{10}" placeholder="0000000000"><br><br>';
        }else{
        $result.= '<H3>Ваш платежный ID'.$_GET['customer_id'].'<br>Введите необходимую для пополнения сумму</H3><br>';
        $result.= '<input name="customer_id" type="hidden" value="'.$_GET['customer_id'].'"> ';
        }
        $result.= '<input style="margin: 0 0 0 16px;width: 6em;" name="amount" type="number" step="50" min="150" max="10000" placeholder="150" maxlength="5" required ><br><br>';
        $result.= '<input type="submit" value="Далее">';
        $result.= '</form>';

        return ($result);
    }

    function rk_PaymentForm() {
        global $rkConf;
        $mrh_login = $rkConf['LOGIN'];
        $mrh_pass1 = $rkConf['PASS1']; 
        $inv_id = 0;
        $out_summ = $_GET['amount'];
        $shpa = $_GET['customer_id'];
        $inv_desc = "Оплата услуг связи ID".$shpa;
        $crc = md5("$mrh_login:$out_summ:$inv_id:$mrh_pass1:shpa=$shpa");
        $result.= '<H3><b>'.$inv_desc.'<br>На сумму '.$out_summ.'&#x20bd;</b><br>Нажимая на кнопку  «Оплатить»<br>Вы соглашаетесь с введенными данными!</H3><br>';
        $result.= '<script language=JavaScript src="https://auth.robokassa.ru/Merchant/PaymentForm/FormMS.js?MerchantLogin='.$mrh_login.'&OutSum='.$out_summ.'&InvId='.$inv_id.'&Description='.$inv_desc.'&SignatureValue='.$crc.'&shpa='.$shpa.'"></script>';

        $result.= '';

        return ($result);
    }

        if (!isset($_GET['amount'])) {
            $paymentForm = rk_PricesForm();
        } else {
            $paymentForm = rk_PaymentForm();
        }

        include('template.html');


    ?>

    robokassa.ini

     

     


    LOGIN="Ваш магазин"
    PASS1="пароль1"

    TEMPLATE_ISP="Компания"
    TEMPLATE_ISP_URL="http://"
    SERVICE_DESC="Оплатить с помощью ROBOKASSA"
     

     

    frontend - метод отсылки данных POST, если используете GET , меняем ниже $_POST на $_REQUEST

     

    <?php

    //достаем конфиг
    $rkConf = parse_ini_file('config/robokassa.ini');

    // подключаем API OpenPayz
    include ("../../libs/api.openpayz.php");

    /**
     *
     * Check for POST have needed variables
     *
     * @param   $params array of POST variables to check
     * @return  bool
     *
     */
    function rk_CheckPost($params) {
        $result = true;
        if (!empty($params)) {
            foreach ($params as $eachparam) {
                if (isset($_POST[$eachparam])) {
                    if (empty($_POST[$eachparam])) {
                        $result = false;
                    }
                } else {
                    $result = false;
                }
            }
        }
        return ($result);
    }

    /*
     * Check is transaction unique?
     * 
     * @param $hash - transaction hash
     * 
     * @return bool
     */

    function rk_CheckTransaction($hash) {
        $hash = mysql_real_escape_string($hash);
        $query = "SELECT `id` from `op_transactions` WHERE `hash`='" . $hash . "'";
        $data = simple_query($query);
        if (!empty($data)) {
            return (false);
        } else {
            return (true);
        }
    }

    if (rk_CheckPost(array('OutSum', 'InvId', 'shpa'))) {
        $mrh_pass2 = $rkConf['PASS2'];
        $out_summ = $_POST['OutSum'];
        $inv_id = $_POST['InvId'];
        $shpa = $_POST['shpa'];
        $crc = strtoupper($_POST['SignatureValue']);
        $my_crc = strtoupper(md5("$out_summ:$inv_id:$mrh_pass2:shpa=$shpa"));
        if ($my_crc == $crc) {
                $paysys = "ROBOKASSA";
                $note = "TRANSACTION ID: " . $inv_id;
                if (rk_CheckTransaction($inv_id)) {
                    $allcustomers = op_CustomersGetAll();
                    if (isset($allcustomers[$shpa])) {
                        //регистрируем новую транзакцию
                        op_TransactionAdd($inv_id, $out_summ, $shpa, $paysys, $note);
                        //вызываем обработчики необработанных транзакций
                        op_ProcessHandlers();
                        //тихонько помираем
                        die('OK'.$inv_id);
                    } else {
                        die('ERROR_NO_SUCH_USER');
                    }
                } else {
                    die('DOUBLE_PAYMENT');
                }
        } else {
            die('MISSING_HASH');
        }
    } else {
        die('ERROR_NO_POST_DATA');
    }
    ?>

    robokassa.ini

    PASS2="пароль2"

×
×
  • Створити нове...