Тип контенту
Профили
Форум
Календарь
Сообщения додав Di111
-
-
Модуль OpenPayz для UKV, подобие транзакций OpenPayz для интернета в планах?
-
это к слову цены дорожают))
-
Хотелка SemySMS
-
1 час назад, l1ght сказал:
на гитхаб в виде пул реквеста слабо?
ага)), но надо учится)), уже читаю
- 1
-
Ну не знал куда наср., г. по стенке все измазал уже))
Изменения в шаблоне печати чеков, тему унес в гитхаб
-
В 29.07.2019 в 16:07, igorek2003 сказал:
пейбери подпилил, чтоб он в УКВ базу платежи заносил
Вот мне интересно как у Вас op_transactions запись реализована, или вы без нее обходитесь? Не уверен что в модуле openpayz в таблице Транзакции OpenPayz там будет отображение пользователя с УКВ, сам использую Обработку банковских выписок 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 редактором глянь, при копировании лишних пробелов нет в коде?
-
Доброго времени! Добавьте плиз Филиалы на УКВ (населенный пункт и тариф); печать предыдущих платежей, иконку в столбце действий, как в модуле addcash; это конечно наглостью будет))) а как удаленно данные по ukv модулю вытащить)) подобием XML API в userstats, мне нужен текущий баланс абонента?
-
В 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
-
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; } }
- 1
-
20 часов назад, a_n_h сказал:
а нужно:
)) Докопался ведь же, я взял отсюда, просто давно об этом читал и решил сделать рестарт биллингу
и то что я об этом вспомнил напомнило мне об создании NAS и рестарта stargazer )) цепочка мысли))
-
простите, неправильно выразился, я так и сделал, рестарт биллинга /etc/rc.d/billing restart
-
Нужно было биллинг перезагрузить
-
Приветствую, разрешите и мне потупить, настроен удаленный 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 белые адреса?
-
После добавление новой необязательной опции SC_DAILY_FIX для улучшения самочувствия сетей с посуточной тарификацией, корректно стало работать кредитование, а в накопительных скидках с посуточной тарификацией суммы теперь тоже будут корректно начисляться?
Пока что обхожусь так, в файле /api/libs/api.cudiscounts.php добавляю при каждом обновлении 228 строкой
$tariffPrice = round($tariffPrice * 30);
абонентский тариф рассчитан на 30 дней с ежедневным списанием
и как теперь разом округлить всем сумму по сотые числа, а то при первых начисления скидок суммы стали с десятитысячными числами?
-
))) igorek такая же потребность в удаление ошибочных оплат и онлайн платежей, и еще, печать чеков в ктв отсутствует
-
Страшно, очень страшно! Мы не знаем что это такое, если бы мы знали что это такое, мы не знаем что это такое!
- 3
-
Если карточку отключить, дождаться когда сработает disconnect, заменить мак адрес, а потом включить, такого не происходит, а если манипуляции эти не проделать, то спокойно подключается. Произвел само активацию, выставил вручную ip адреса из пула, результат два компа в сети под одним тарифом...
ИТОГ:
Добавил пару атрибутов для ужесточения правил
Активный check Framed-IP-Address = {IP}
Активный reply Mikrotik-Address-List = ACTIVE
-
Привет всем, все жалуются что не работает связка hotspot(MAC авторизация, активные клиенты, Mikrotik-Rate-Limit, Cleartext-Password), а у меня тупик, все работает, даже когда мак абонента удаляю из карточки, авторизация все равно идет, с тем же назначением скорости, получается подделал ip - авторизацию получил, что не так??
-
Привет, простите что не по правилам, не проверял, но должно работать ))
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 <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.'₽</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"
Возможности УКВ модуля
в Stargazer Ubilling
Опубліковано:
А планы то большие))) Наполеоновские)))