Перейти до

OpenPayz


Рекомендованные сообщения

ТС что из этого ты настраеваеш ? http://wiki.ubilling.net.ua/doku.php?id=o

его пытать надо ..... по слову вытягиваешь .... описать проблемму нормально никак ??? то сам фронтенд написал то уже не сам .....ни фига не понятно ((

Ссылка на сообщение
Поделиться на других сайтах

Дело было так. 

Перешел в документацию. http://wiki.ubilling.net.ua/doku.php?id=openpayz

Там есть раздел Установка. Сделал так как там описано. 

Затем в разделе Пишем свой фронтенд, скопипастил готовый код. Немного подправил под свои нужды. 

Но использую методы 

//регистрируем новую транзакцию
op_TransactionAdd($hash, $summ, $customerid, $paysys, $note);
//вызываем обработчики необработанных транзакций
op_ProcessHandlers();

 

Затем попытался выполнить несколько платежей, отправляя GET запросы. И как я описывал выше, платеж в опенпез вродибы выполняется, так как видны платежи в базе данных. И меняется баланс клиента. Но сам платеж не выполняется, так как не отправляются комманды, на NAS для включения клиента и через время баланс клиента, становится таким каким был до выполнения платежа. Если внести наличные на баланс клиента, то все нормально, и баланс меняется и клиент включается в NAS

Ссылка на сообщение
Поделиться на других сайтах

 

 

Затем в разделе Пишем свой фронтенд, скопипастил готовый код. Немного подправил под свои нужды.  Но использую методы  //регистрируем новую транзакцию op_TransactionAdd($hash, $summ, $customerid, $paysys, $note); //вызываем обработчики необработанных транзакций op_ProcessHandlers();

 

так вы создали свой фронтенд .....

можите код сюда показать ??? вашего фронтенда 

Ссылка на сообщение
Поделиться на других сайтах
Опубліковано: (відредаговано)

По поводу изменения баланса при платеже это я ошибся.  :rolleyes:

 

 

 

if (in_array($customerid, $allcustomers_login)) {

//correctionUserBalance($customerid);

//регистрируем новую транзакцию
op_TransactionAdd($hash, $summ, $customerid, $paysys, $note);
//вызываем обработчики необработанных транзакций
op_ProcessHandlers();

die(json_encode(array( 'pay' => true)));

} else {
die(json_encode(array( 'pay' => false)));
}

 

Забыл закомментить correctionUserBalance($customerid) это она обнуляет баланс клиента.

Получается что опенпейз не срабатывает.

 

 

Кстати как правильно обнулять баланс клиента, чтобы старгазер не вернул отрицательное значение. Так как получится если клиент не платил два месяца, то при пополнении на месяц, у него останется отрицательный баланс

Відредаговано tramX
Ссылка на сообщение
Поделиться на других сайтах

По поводу изменения баланса при платеже это я ошибся.  :rolleyes:

 

 

 

if (in_array($customerid, $allcustomers_login)) {

 

//correctionUserBalance($customerid);

 

//регистрируем новую транзакцию

op_TransactionAdd($hash, $summ, $customerid, $paysys, $note);

//вызываем обработчики необработанных транзакций

op_ProcessHandlers();

 

die(json_encode(array( 'pay' => true)));

 

} else {

die(json_encode(array( 'pay' => false)));

}

 

Забыл закомментить correctionUserBalance($customerid) это она обнуляет баланс клиента.

Получается что опенпейз не срабатывает.

 

 

Кстати как правильно обнулять баланс клиента, чтобы старгазер не вернул отрицательное значение. Так как получится если клиент не платил два месяца, то при пополнении на месяц, у него останется отрицательный баланс

ээээээээ

выработать правильный подход?

например научится пользоваться автоморозильником

или пересмотреть методы списания бабла

там есть метод, при котором в минуса загонит один раз и больше АП снимать не будет, пока он снова не станет положительным

 

но с другой стороны, зачем читать форум

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

когда я каждый раз при этом вопросе прошу почитать бл@#ь форум, а не задавать таких вопросов 

Ссылка на сообщение
Поделиться на других сайтах

описалибы свою проблему подробнее быстрее нашлиб решение .....)) 

возьмите на вооружение ..... а то прям как викторина угадай что у меня не так ))

Ссылка на сообщение
Поделиться на других сайтах

 

По поводу изменения баланса при платеже это я ошибся.  :rolleyes:

 

 

 

if (in_array($customerid, $allcustomers_login)) {

 

//correctionUserBalance($customerid);

 

//регистрируем новую транзакцию

op_TransactionAdd($hash, $summ, $customerid, $paysys, $note);

//вызываем обработчики необработанных транзакций

op_ProcessHandlers();

 

die(json_encode(array( 'pay' => true)));

 

} else {

die(json_encode(array( 'pay' => false)));

}

 

Забыл закомментить correctionUserBalance($customerid) это она обнуляет баланс клиента.

Получается что опенпейз не срабатывает.

 

 

Кстати как правильно обнулять баланс клиента, чтобы старгазер не вернул отрицательное значение. Так как получится если клиент не платил два месяца, то при пополнении на месяц, у него останется отрицательный баланс

ээээээээ

выработать правильный подход?

например научится пользоваться автоморозильником

или пересмотреть методы списания бабла

там есть метод, при котором в минуса загонит один раз и больше АП снимать не будет, пока он снова не станет положительным

 

но с другой стороны, зачем читать форум

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

когда я каждый раз при этом вопросе прошу почитать бл@#ь форум, а не задавать таких вопросов 

 

 

 

если все кинутся читать форум .. с кем тогда  ...  а поговорить ???? .....)) иногда полезно вспомнить все ))

Ссылка на сообщение
Поделиться на других сайтах

Единственный момент с функцией correctionUserBalance($customerid)  оплошал. Но в целом проблему описал. Что еще необходимо описать? Создаю клиента и произвожу оплаты, в логе это видно.

 

2016-07-07 07:49:35 -- Admin 'admin', 127.0.0.1: User 'akal4apa55ap88_oy39' added.
2016-07-07 07:49:35 -- Admin 'admin', 127.0.0.1: User 'akal4apa55ap88_oy39': 'password' parameter changed from '******' to '******'.
2016-07-07 07:49:35 -- Admin 'admin', 127.0.0.1: User 'akal4apa55ap88_oy39': 'ips' parameter changed from '*' to '172.16.9.224'.
2016-07-07 07:49:36 -- Admin 'admin', 127.0.0.1: User 'akal4apa55ap88_oy39': 'alwaysOnline' parameter changed from '0' to '1'.
2016-07-07 07:49:36 -- Admin 'admin', 127.0.0.1: User 'akal4apa55ap88_oy39': 'DisabledDetailStat' parameter changed from '0' to '1'.
2016-07-07 07:49:54 -- Admin 'admin', 127.0.0.1: User 'akal4apa55ap88_oy39': 'tariffName' parameter changed from '*_NO_TARIFF_*' to 'Unlim30'.
2016-07-07 07:49:55 -- Admin 'admin', 127.0.0.1: User 'akal4apa55ap88_oy39': 'disabled' parameter changed from '0' to '1'.
2016-07-07 07:49:57 -- Admin 'admin', 127.0.0.1: User 'akal4apa55ap88_oy39': 'disabled' parameter changed from '1' to '0'.
2016-07-07 07:50:25 -- Admin 'admin', 127.0.0.1: User 'akal4apa55ap88_oy39': 'cash' parameter changed from '0.000000' to '-80.000000'.
 
 
Следом выполняю оплату openpayz, влогах ничего нет. 
Ссылка на сообщение
Поделиться на других сайтах

error_reporting(E_ALL);

include ("../../libs/api.openpayz.php");

if ( (isset($_GET['user'])) AND (isset($_GET['paymentid'])) AND (isset($_GET['cash'])) ) {

$allcustomers= op_CustomersGetAll();

$hash='FC'.$_GET['paymentid'];
$summ=$_GET['cash'];
$customerid=trim($_GET['user']);
$paysys='FC';
$note='';
header('Content-type: application/json');

$allcustomers_login = array();
foreach ($allcustomers as $key=>$value){
array_push($allcustomers_login, $allcustomers[$key]);
}

if (in_array($customerid, $allcustomers_login)) {
op_TransactionAdd($hash, $summ, $customerid, $paysys, $note);

op_ProcessHandlers();

die(json_encode(array( 'pay' => true)));

} else {
die(json_encode(array( 'pay' => false)));
}
}
Ссылка на сообщение
Поделиться на других сайтах
$allcustomers_login = array(); foreach ($allcustomers as $key=>$value){ array_push($allcustomers_login, $allcustomers[$key]); } if (in_array($customerid, $allcustomers_login)) { op_TransactionAdd($hash, $summ, $customerid, $paysys, $note); op_ProcessHandlers(); die(json_encode(array( 'pay' => true))); } else { die(json_encode(array( 'pay' => false))); }

 

а что вы ентим добивались ??? объясните тупику ..,)) 

Відредаговано seversever404
Ссылка на сообщение
Поделиться на других сайтах

Вызывая два этих метода,

 

//регистрируем новую транзакцию
op_TransactionAdd($hash, $summ, $customerid, $paysys, $note);
//вызываем обработчики необработанных транзакций
op_ProcessHandlers();

я надеялся что произойдет пополнение баланса клиента.

 

Еще вопрос. В api.payments.php есть метод zb_CashAdd, это же он отвечает за пополнение счета? Как его правильно подключить чтобы Установить счет клиенту?

Ссылка на сообщение
Поделиться на других сайтах

Вызывая два этих метода,

 

//регистрируем новую транзакцию

op_TransactionAdd($hash, $summ, $customerid, $paysys, $note);

//вызываем обработчики необработанных транзакций

op_ProcessHandlers();

я надеялся что произойдет пополнение баланса клиента.

 

Еще вопрос. В api.payments.php есть метод zb_CashAdd, это же он отвечает за пополнение счета? Как его правильно подключить чтобы Установить счет клиенту?

Никак. op_ProcessHandlers какраз и занят этим, при включенной STG_DIRECT.

 

Ваша проблема - в том, что вы пытаетесь кустарить, что-то стремное (прямая запись в базу, ога) не понимая в принципе, что происходит.

Відредаговано nightfly
Ссылка на сообщение
Поделиться на других сайтах

Вызывая два этих метода,

 

//регистрируем новую транзакцию

op_TransactionAdd($hash, $summ, $customerid, $paysys, $note);

//вызываем обработчики необработанных транзакций

op_ProcessHandlers();

я надеялся что произойдет пополнение баланса клиента.

 

Еще вопрос. В api.payments.php есть метод zb_CashAdd, это же он отвечает за пополнение счета? Как его правильно подключить чтобы Установить счет клиенту?

 

сделайте как описано в манах ... ТУТ ... и не изобретайте велосипед . типа как ентот . с проверкой на совпадение в масиве этим занимается OPENPAYZ .. и будетт работать .... у нас работает  .... 

Відредаговано seversever404
Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.

  • Схожий контент

    • Від sanyadnepr
      Приветствую всех.
      Подскажите пожалуйста где копнуть и нет ли проблемы со стороны протокола взаимодействия сити24 или возможно не учтена необходимая проверка в модуле сити24 в Ubilling, пока писал понял что похоже в проверке payID, но это не точно.  
      Недавно обнаружилось с сити24 начали прилетать дубликаты платежей, в целом платежей мало, два одинаковых запроса Pay с одинаковым transactionID и payID в одну секунду одному платежному ID при этом биллинг "думает" примерно чуть больше минуты и отвечает одним ответом <result>0</result>, сити24 утверждает что ответ они не получили и по протоколу дальше повторяет запросы дублем, биллинг ответ и так по кругу, сити24 спрашивает каким образом с одинаковым payID от сити24 билл продолжает обрабатывать запросы и пополнять абоненту счет раз в 5 минут примерно, на одну и туже сумму, ведь этот payID уже был обработан предполагают сити24 согласно протоколу.
      Конечно есть вопрос к сити24 зачем они дублем присылают два запроса, но они отвечают что эта ситуация учтена в протоколе и проблема на стороне биллинга, потому что он пополняет счет по уже обработанному одинаковому payID.
      При этом transactionID в дублях одинаковый, но с каждым новым дублем разный.
      Если зафаерволить запросы от сити24, но оставить возможность отвечать то после блокировки билл отправляет 2-3 минуты 6 ответов <account>0001</account>  <result>0</result>.
      После снятия блокировки, дубли и платежи нескольких проблемных абонентов прилетают так же по кругу, при этом и с некоторыми новыми пополнениями происходит аналогичная ситуация.
      В openpayz в платежах transactionID и не видно payID.
    • Від nightfly
      Ubilling 1.4.3 rev 9058 The Bladewood Grove
       
      Зміни в структурі БД. alter.ini: нові опції OPHANIMFLOW_ENABLED та OPHANIMFLOW_URLS котрі вмикають та керують інтеграцією з OphanimFlow. alter:ini: нова опція PHOTOSTORAGE_POSTPROCESSING, що вмикає післяобробку зображень при завантаженні в Сховище зображень. alter:ini: нова опція PHOTOSTORAGE_WATERMARK, що вмикає розміщення вотермарки на всіх зображеннях, що завантажуються. alter:ini: нова опція PHOTOSTORAGE_RECOMPRESS, що вмикає зміну компрессії завантажених зображень. alter:ini: нова опція PHOTOSTORAGE_AUTORESIZE, що вмикає автоматичне та лагідне масштабування зображень конячих розмірів. alter:ini: нова опція PHOTOSTORAGE_DRAWIMGINFO, що вмикає вдруковування в зображення відлагоджувальної інформації. alter.ini: нова опція ONDEMAND_CHARTS, що вмикає відкладене завантаження графіків завантаження користувацької смуги. userstats.ini: нова опція OPHANIM_ENABLED, що вмикає інтеграцію OphanimFlow в кабінеті користувача. Модуль Заздрість: тепер авторизаційні дані пристроїв, не відображаються в списку пристроїв. Модуль “Заздрість”: при створенні та редагуванні пристроїв, для полів “пароль” та “enable пароль” тепер використовуються інпути паролів. Модуль “Заздрість”: заздрісним пристроям додано нове поле “Порт”. Тепер в скриптах можна використовувати, відповідний макрос {PORT}. Модуль “Статистика трафіку користувача”: проведено радикальний рефакторинг. Модуль “Статистика трафіку користувача”: додано опційну можливість, відображення трафіку отриманого з OphanimFlow. Модуль “Статистика трафіку користувача”: виправлено проблему невірного відображення залишку коштів на кінець місяця, при використанні Ішимури. Модуль “Статистика трафіку користувача”: додано можливість відображення графіків за останню годину з OphanimFlow. Модуль “Користувачі”: додано опційну можливість, відображення трафіку отриманого з OphanimFlow. Модуль “Сховище зображень”: тепер додатково перевіряє завантажувані зображення на тему їх валідності. Модуль “Фінансові операції”: виправлено відображення суми платежів користувача. Remote API: новий виклик ophanimtraff, який просто бере і синхронізує локальну БД з віддаленими джерелами OphanimFlow. Remote API: виклик userbynum тепер також опційно містить поле з “Платіжним ID” користувача. Глобально: у всіх полях вводу паролів, окрім форми входу, тепер відображається елемент керування “показати/приховати” пароль. Кабінет користувача: в модулі “Трафік” додано опційну можливість, відображення трафіку отриманого з OphanimFlow. Кабінет користувача: в модулі “Трафік” виправлено проблему невірного відображення залишку коштів на кінець місяця, при використанні Ішимури. Кабінет користувача: в модулі “Відеоспостереження” для NVR WolfRecorder замінено розділювач попередньо заповнених даних авторизації. OpenPayz: додано frontend portmonemulti, для отримання платежів від різних контрагентів. Інформацію по контрагентам бере з біллінгу, також використовую розширену інформацію контрагента. Платіжна система в контрагенті мусить бути створена, як PORTMONE 1984tech: додано функціонал генерації RPZ для isc-bind, спасибі @misterromanbush  
      Повний чейнджлог
      Оновлена демка
       

    • Від mac
      Здається, після оновлення PHP 7.4 до PHP 8.2 feesharvester припинив працювати:
       
      /usr/local/bin/curl "http://127.0.0.1/billing/?module=remoteapi&key={SERIAL}&action=feesharvester" <br /> <b>Fatal error</b>: Uncaught TypeError: Unsupported operand types: string - string in {UBPATH}/billing/api/libs/api.fundsflow.php:570 Stack trace: #0 {UBPATH}/billing/modules/remoteapi/feesharvester.php(22): FundsFlow-&gt;harvestFees('2024-01') ...  
      Невеличке розслідування врешті з'ясувало, що це через наявність пробілу у деяких логінах абонентів. Як так сталося? Тому що інколи був неуважно додан трейлінг пробіл до номеру будинка і цей пробіл потрапив до логіну абоненту. Логін абоненту неможливо змінити ніяким чином штатними засобами. Я не розглядаю створення нового абонента для усунення помілки.

      Був обран такий шлях вирішення проблеми. Заміну функції php explode() знайшов у мережі. Мабуть це станеться в нагоді:

       
      diff api.fundsflow.php.bak api.fundsflow.php.new 559c559 < $eachfee = explode(' ', $eachline); --- > $eachfee = preg_split("~(?<!\\\\)(?:\\\\{2})*'[^'\\\\]*(?:\\\\.[^'\\\\]*)*'(*SKIP)(*F)|\s+~s" , $eachline);  
    • Від Dilan
      Собственно ищу кто сделает такую связку с нуля под ключ. Тз высылаю в личку. Заранее спасибо.
    • Від ukrtelekom
      Доброго часу!
      Шукається адміністратор віддалений для разової роботи по коригуванню працюючого Ubilling з мікротами. Якщо стосунки зклєяться- то до постійної додаткової копійки. 
      Всім заздалегідь дякую. Хейти, бажано не писати. Контакти в приватні повідомлення або O73283344O
×
×
  • Створити нове...