BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 19 июн 2025, 03:11

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 46 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: API обещанного платежа
СообщениеДобавлено: 25 дек 2015, 16:43 
Не в сети

Зарегистрирован: 11 авг 2015, 19:08
Сообщения: 44
Карма: 5
Здравствуйте.

Хотим сделать с сайта виджет для взятия обещанного платежа. Для этого нужно отправить от имени пользователя запрос по HTTP API. Вопрос заключается в том, где взять параметры запроса.

Для получения параметров API, которые вызываются клиентом биллинга запускаем клиент в режиме debug и повторяем запросы, которые совершает оператор. Существует ли способ вытащить параметры API, которые передаются серверу при работе пользователя в личном кабинете и повторять эти запросы от имени пользователя?

_________________
Биллинг: 6.1.895
ОС: Debian GNU/Linux
Java: 1.8.0


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: API обещанного платежа
СообщениеДобавлено: 25 дек 2015, 17:07 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4494
Откуда: Уфа, Россия
Карма: 187
версия биллинга?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: API обещанного платежа
СообщениеДобавлено: 25 дек 2015, 18:50 
Не в сети

Зарегистрирован: 11 авг 2015, 19:08
Сообщения: 44
Карма: 5
6.1.895, добавил в подпись

_________________
Биллинг: 6.1.895
ОС: Debian GNU/Linux
Java: 1.8.0


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: API обещанного платежа
СообщениеДобавлено: 25 дек 2015, 19:20 
Не в сети

Зарегистрирован: 05 окт 2007, 13:36
Сообщения: 1073
Карма: 46
В дебаге запусти клиент биллинга. Вызови нужное действие в клиенте. потом в логе найди как выглядит запрос

_________________
интеграция биллинга с 1с http://bgbilling-1c.ru/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: API обещанного платежа
СообщениеДобавлено: 25 дек 2015, 23:40 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4494
Откуда: Уфа, Россия
Карма: 187
в 6.1 смотри запросы в браузере, какие акшены вызываются, с какими параметрами и разбирать ответ
в 6.2 можно сделать через Web API


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: API обещанного платежа
СообщениеДобавлено: 28 дек 2015, 12:18 
Не в сети

Зарегистрирован: 11 авг 2015, 19:08
Сообщения: 44
Карма: 5
Akhmat писал(а):
В дебаге запусти клиент биллинга. Вызови нужное действие в клиенте. потом в логе найди как выглядит запрос


Так не получится. В клиенте биллинга нет операции, взятия обещанного платежа от имени абонента. Или я не нашел?

_________________
Биллинг: 6.1.895
ОС: Debian GNU/Linux
Java: 1.8.0


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: API обещанного платежа
СообщениеДобавлено: 28 дек 2015, 12:29 
Не в сети

Зарегистрирован: 11 авг 2015, 19:08
Сообщения: 44
Карма: 5
skn писал(а):
в 6.1 смотри запросы в браузере, какие акшены вызываются, с какими параметрами и разбирать ответ
в 6.2 можно сделать через Web API


В лк BGBilling при взятии обещанного платежа делается POST запрос на адрес "/webexecuter?action=ContractLimit&mid=0&module=contract&contractId=..." с параметрами
action:"ContractLimit"
summ:"сумма"
days:"кол-во дней"

Перед этом пользователь должен быть авторизован, т.е. должна быть установлена кука авторизации. Для эмуляции действий пользователя придется каждый раз отправлять его логин и пароль в форму авторизации, получать куку авторизации, передавать его в форму взятия обещанного платежа с другими заполненными параметрами? Слишком сложно, попроще не получится?

_________________
Биллинг: 6.1.895
ОС: Debian GNU/Linux
Java: 1.8.0


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: API обещанного платежа
СообщениеДобавлено: 28 дек 2015, 13:07 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 16 сен 2010, 11:53
Сообщения: 501
Карма: 15
в клиенте биллинга есть временное понижение лимита

_________________
Клиент: вер. 7.0.806 / 29.04.2016 13:18:28 os: Windows 7; java: Java HotSpot(TM) Client VM, v.1.8.0_66
Сервер: вер. 7.0.1035 / 29.04.2016 13:17:38 os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_92


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: API обещанного платежа
СообщениеДобавлено: 28 дек 2015, 13:37 
Не в сети

Зарегистрирован: 11 авг 2015, 19:08
Сообщения: 44
Карма: 5
Yarlan Zey писал(а):
в клиенте биллинга есть временное понижение лимита


Да, этот вариант я рассматриваю, но если по-другому никак не получится сделать. Потому что временное понижение лимита не есть обещанный платеж, который берется в лк. Во-первых, он берется от имени оператора, а во-вторых, не попадает в таблицу contract_limit_manage и, соответственно, не выводится в личном кабинете. Если я не прав, поправьте меня, пожалуйста.

_________________
Биллинг: 6.1.895
ОС: Debian GNU/Linux
Java: 1.8.0


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: API обещанного платежа
СообщениеДобавлено: 28 дек 2015, 13:41 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
А что вы вообще хотите, если не секрет?
Как вы от имени пользователя будете отправлять данные? Форма на сайте где нужно вбить номер договора и сумму?
P.S. Да я про виджет прочитал. Но как вы будете удостоверять пользователя? Или любой может отправить запрос на любой номер договора?

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Последний раз редактировалось Phricker 28 дек 2015, 13:57, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: API обещанного платежа
СообщениеДобавлено: 28 дек 2015, 13:57 
Не в сети

Зарегистрирован: 11 авг 2015, 19:08
Сообщения: 44
Карма: 5
Phricker писал(а):
А что вы вообще хотите, если не секрет?
Как вы от имени пользователя будете отправлять данные? Форма на сайте где нужно вбить номер договора и сумму?


Кнопочка на сайте "взять обещанный платеж", потому что люди имеют затруднения с выходом в ЛК, нагружают саппорт. А на праздники хотелось бы их разгрузить немного.

Привязка IP - абонент у нас жесткая, поэтому по IP клиента можно из базы взять логин пароль абонента и уже от его имени выполнять запросы к API.

В дальнейшем хотелось бы научиться выносить и другие популярные функции из ЛК на сайт в виде виджета.

_________________
Биллинг: 6.1.895
ОС: Debian GNU/Linux
Java: 1.8.0


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: API обещанного платежа
СообщениеДобавлено: 28 дек 2015, 13:59 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
viewtopic.php?f=19&t=7254
Рисуете свой класс.
Обращаетесь к нему по кнопке - передаете IP.
По IP ищите сервис к которому он привязан.
Активируете что хотите.
Возвращаете результат пользователю на виджет / API добавляет в ЛК.
Профит.

Как я себе это представляю в текущий момент :)

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: API обещанного платежа
СообщениеДобавлено: 28 дек 2015, 14:16 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4494
Откуда: Уфа, Россия
Карма: 187
Nyan писал(а):
Перед этом пользователь должен быть авторизован, т.е. должна быть установлена кука авторизации. Для эмуляции действий пользователя придется каждый раз отправлять его логин и пароль в форму авторизации, получать куку авторизации, передавать его в форму взятия обещанного платежа с другими заполненными параметрами? Слишком сложно, попроще не получится?


кука не обязательна, можно в каждом запросе передавать логин и пароль или есть возможность авторизировать клиента с помощью самописного кода (например по ip)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: API обещанного платежа
СообщениеДобавлено: 28 дек 2015, 14:19 
Не в сети

Зарегистрирован: 11 авг 2015, 19:08
Сообщения: 44
Карма: 5
Phricker писал(а):
http://forum.bitel.ru/viewtopic.php?f=19&t=7254
Рисуете свой класс.
Обращаетесь к нему по кнопке - передаете IP.
По IP ищите сервис к которому он привязан.
Активируете что хотите.
Возвращаете результат пользователю на виджет / API добавляет в ЛК.
Профит.

Как я себе это представляю в текущий момент :)


Звучит интересно, спасибо за наводку, попробую, отпишусь.

_________________
Биллинг: 6.1.895
ОС: Debian GNU/Linux
Java: 1.8.0


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: API обещанного платежа
СообщениеДобавлено: 28 дек 2015, 14:26 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
Nyan писал(а):
Звучит интересно, спасибо за наводку, попробую, отпишусь.

Если получится - отпишите скрипт :)
Он будет интересен и не только тем у кого жесткая привязка к IP в сервисах.
Можно организовать поиск текущих сессий по IP, и от этого плясать.

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: API обещанного платежа
СообщениеДобавлено: 28 дек 2015, 20:12 
Не в сети

Зарегистрирован: 11 авг 2015, 19:08
Сообщения: 44
Карма: 5
Попробовал отправить такой запрос:
Код:
POST http://SERVER/bgbilling/webexecuter

с параметрами:
Код:
action=ContractLimit
mid=0
module=contract
contractId={{ contract_id }}
user={{ title }}
pswd={{ pswd }}
summ=10
days=1


Пользователю выдался обещанный платеж. В принципе, как раз то, что я хотел, только запрос ответ имеет не самый читаемый формат. Так как быстро разобраться с JAVA и API не получится, а результат нужен вчера, то как временный костыль я вижу такое решение:

1. Пользователь заходит на сайт, скрипт, который крутится на сайте определяет его ip, определяет логин, идет в базу BG, берет оттуда {{ contract_id }}, {{ title }}, {{ pswd }}.

2. curl-ом делается POST запрос с параметрами, описанными выше.

3. Ответ парсится, пользователю дается ответ, успешно прошла операция или возникла ошибка.

Пожалуйста, уважаемые гуру, ткните носом, если это решение абсолютно непригодно. В противном случае просто поругайте за криворукость =)

_________________
Биллинг: 6.1.895
ОС: Debian GNU/Linux
Java: 1.8.0


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: API обещанного платежа
СообщениеДобавлено: 29 дек 2015, 02:56 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4494
Откуда: Уфа, Россия
Карма: 187
попробуйте в запрос добавить параметр
Код:
ct=xml


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: API обещанного платежа
СообщениеДобавлено: 29 дек 2015, 14:23 
Не в сети

Зарегистрирован: 11 авг 2015, 19:08
Сообщения: 44
Карма: 5
skn писал(а):
попробуйте в запрос добавить параметр
Код:
ct=xml

Не работает, по-прежнему отдается WEB-страница

_________________
Биллинг: 6.1.895
ОС: Debian GNU/Linux
Java: 1.8.0


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: API обещанного платежа
СообщениеДобавлено: 29 дек 2015, 15:25 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4494
Откуда: Уфа, Россия
Карма: 187
в крайнюю сборку 6.1 добавили поддержку параметра contentType=xml для веб-акшена ActionContractLimit


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: API обещанного платежа
СообщениеДобавлено: 30 дек 2015, 16:04 
Не в сети

Зарегистрирован: 11 авг 2015, 19:08
Сообщения: 44
Карма: 5
skn писал(а):
в крайнюю сборку 6.1 добавили поддержку параметра contentType=xml для веб-акшена ActionContractLimit

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

_________________
Биллинг: 6.1.895
ОС: Debian GNU/Linux
Java: 1.8.0


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: API обещанного платежа
СообщениеДобавлено: 29 авг 2016, 19:41 
Не в сети

Зарегистрирован: 14 апр 2011, 19:55
Сообщения: 74
Карма: 0
Немного продолжу тему...

Делаю такой запрос:

Код:
POST http://SERVER/bgbilling/webexecuter


с параметрами:

Код:
action=ContractLimit
mid=0
module=contract
contractId={cid}
user={user}
pswd={pswd}
summ=150
days=3


В ответ прилетает:
Код:
HTTP/1.1 200 OK
Cache-Control: no-cache, no-store, must-revalidate
Connection: close
Date: Mon, 29 Aug 2016 13:06:02 GMT
Server: Apache-Coyote/1.1
Content-Type: text/xml;charset=UTF-8
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Last-Modified: Thu, 01 Jan 1970 00:00:01 GMT
Client-Date: Mon, 29 Aug 2016 13:07:24 GMT
Client-Peer: 192.168.xxx.xxx:8080
Client-Response-Num: 1
Client-Transfer-Encoding: chunked
Set-Cookie: JSESSIONID=A20757939275103DD28724024FF3A27E; Path=/; HttpOnly

<?xml version="1.0" encoding="UTF-8"?><data status="ok"/>



И никакого понижения лимита не происходит. В логах сервера обращение видно, больше никаких сообщений касательно события в логах не нашел..

Версия биллинга: 6.2.1108 / 24.08.2016.

Возможно, как где-то писали, надо сначала авторизоваться, отловить куки, а потом уже выполнять action=ContractLimit? Если да, то каким запросом авторизоваться?..


Последний раз редактировалось Andr-232 29 авг 2016, 21:10, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: API обещанного платежа
СообщениеДобавлено: 29 авг 2016, 19:57 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4494
Откуда: Уфа, Россия
Карма: 187
статус договора дебетовый?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: API обещанного платежа
СообщениеДобавлено: 29 авг 2016, 20:08 
Не в сети

Зарегистрирован: 14 апр 2011, 19:55
Сообщения: 74
Карма: 0
Да, дебетовый.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: API обещанного платежа
СообщениеДобавлено: 29 авг 2016, 23:25 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4494
Откуда: Уфа, Россия
Карма: 187
А из ЛК этого договора обещанный платёж работает?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: API обещанного платежа
СообщениеДобавлено: 30 авг 2016, 15:52 
Не в сети

Зарегистрирован: 14 апр 2011, 19:55
Сообщения: 74
Карма: 0
Заглянул в дефолтный ЛК: меню Управление лимитом не отображается. Никаких настроек в биллинге касательно ЛК я не делал.

Может надо немного прояснить ситуацию... Если вкратце, то у нас "самописный" ЛК. Т.е. на отдельном сервере крутится нджинкс, который редиректит абонента на си-джи-ай враппер. Последний, в свою очередь, берет шаблоны, заполняет соответствующие поля данными из биллинга и все это отдает клиенту. Когда клиент хочет "доверительный платеж"(понижение лимита), он нажимает соответствующую кнопочку, враппер запрашивает биллинг возможно ли такое действие для клиента, и если да - то хотелось бы ему этот лимит понизить.
Враппер обращается в биллинг от имени своей учетной записи (завел в биллинге отдельную учетку и предоставил ей право управлять лимитами всех пользователей) и дает команду на временное понижение лимита (как из клиентской программы). Именно как подать эту команду посредством хттп(с) и интересует. Никакие дефолтные ЛК и возможности управления лимитом через них не используются.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: API обещанного платежа
СообщениеДобавлено: 30 авг 2016, 21:09 
Не в сети

Зарегистрирован: 14 апр 2011, 19:55
Сообщения: 74
Карма: 0
Экспериментальным путем выяснилось следующее:

1.
Код:
POST http://SERVER/bgbilling/webexecuter

в версии 6.2.1108 не работает (мне по крайней мере не удалось заставить работать).
2. Взаимодействие клиентского приложения с биллингом реализовано по протоколу SOAP поверх http(s).
3. Web-сервис через JSON RPC не реализован.

Выходит что Интеграция с внешними системами (для версии 6.2.1108) возможна только средствами Web-сервис через SOAP RPC. Очень помогла статья с вики:

http://wiki.bitel.ru/index.php/SOAP_%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81_%D0%B8%D0%B7_Perl

Теперь ясно куда копать. Ну и wireshark конечно же...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: API обещанного платежа
СообщениеДобавлено: 30 ноя 2016, 15:06 
Не в сети

Зарегистрирован: 29 июл 2008, 13:57
Сообщения: 94
Карма: 0
Может кто-то разобрался и реализовал кнопку обещанного платежа без входа в личный кабинет?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: API обещанного платежа
СообщениеДобавлено: 01 дек 2016, 01:36 
Не в сети

Зарегистрирован: 29 янв 2014, 11:32
Сообщения: 365
Карма: 10
Пытаюсь через JSON вызвать метод "searchContractLimitLogList" интерфейса ContractLimitService.
Код:
{"method" : "searchContractLimitLogList", "user" :{ "user" : "user", "pswd" : "password" }, "params" : { "contractId" : "1", "period" : "" } }


Ответ:
Код:
{"status":"error","exception":"java.lang.IllegalArgumentException","message":"Can not instantiate value of type [simple type, class ru.bitel.common.model.Period] from String value (''); no single-String constructor/factory method\n at [Source: N/A; line: -1, column: -1]","tag":null,"data":{}}

В каком формате нужно задавать Period?

И еще вопрос. Метод updateContractLimitPeriod делает апдейт какого-то уже существующего лимита или может создавать новый лимит?
Если только апдейт, существуют ли методы по добавлению новых лимитов?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: API обещанного платежа
СообщениеДобавлено: 05 дек 2016, 19:05 
Не в сети

Зарегистрирован: 29 янв 2014, 11:32
Сообщения: 365
Карма: 10
spectrum писал(а):
Пытаюсь через JSON вызвать метод "searchContractLimitLogList" интерфейса ContractLimitService.
Код:
{"method" : "searchContractLimitLogList", "user" :{ "user" : "user", "pswd" : "password" }, "params" : { "contractId" : "1", "period" : "" } }


Ответ:
Код:
{"status":"error","exception":"java.lang.IllegalArgumentException","message":"Can not instantiate value of type [simple type, class ru.bitel.common.model.Period] from String value (''); no single-String constructor/factory method\n at [Source: N/A; line: -1, column: -1]","tag":null,"data":{}}

В каком формате нужно задавать Period?

И еще вопрос. Метод updateContractLimitPeriod делает апдейт какого-то уже существующего лимита или может создавать новый лимит?
Если только апдейт, существуют ли методы по добавлению новых лимитов?

Уважаемые разработчики, прокомментируйте пожалуйста.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: API обещанного платежа
СообщениеДобавлено: 07 дек 2016, 21:54 
Не в сети

Зарегистрирован: 29 июл 2008, 13:57
Сообщения: 94
Карма: 0
Да, прокомментируйте, а...


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 46 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
POWERED_BY
Русская поддержка phpBB
[ Time : 0.081s | 77 Queries | GZIP : On ]