BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 12 май 2024, 06:58

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




Начать новую тему Ответить на тему  [ Сообщений: 33 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Web-сервис через JSON
СообщениеДобавлено: 01 фев 2016, 17:40 
Не в сети

Зарегистрирован: 29 янв 2014, 11:32
Сообщения: 365
Карма: 10
Добрый день!

Подскажите пожалуйста, какие классы можно вызывать через Web-сервис JSON?
В документации вижу большой список классов http://bgbilling.ru/v6.2/javadoc/index.html Какие из них можно вызывать и каким образом?

Когда вызываю то, что описано в документации, все работает:
Код:
http://127.0.0.1:8080/bgbilling/executer/json/ru.bitel.bgbilling.kernel.contract.api/ContractService
 
{"method" : "contractList",
"user" :{ "user" : "shamil", "pswd" : "xxxx" },
"params" : {
"title" : "0",
"fc" : -1,
"groupMask" : 0,
"subContracts" : false,
"closed" : true,
"hidden" : false,
"page" : { "pageIndex" : 2, "pageSize" : 2 }
} }


Когда пытаюсь вызвать любой из списка, например BVComTransactionManager, то выдает:
Код:
{"status":"error","exception":"ru.bitel.bgbilling.common.BGException","message":"Не найден сервис: ru.bitel.bgbilling.modules.bvcom:BVComTransactionManager","data":{}}


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Web-сервис через JSON
СообщениеДобавлено: 01 фев 2016, 18:01 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Ну можно вызвать только то, что web-сервисы. В качестве признака слово - Service в самом классе или в пакете.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Web-сервис через JSON
СообщениеДобавлено: 01 фев 2016, 18:02 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
И да, нужно искать интерфейсы. ContractService это интерфейс.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Web-сервис через JSON
СообщениеДобавлено: 01 фев 2016, 18:06 
Не в сети

Зарегистрирован: 29 янв 2014, 11:32
Сообщения: 365
Карма: 10
А каким образом с остальынми классами работать можно снаружи? С тем же самым BVComTransactionManager?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Web-сервис через JSON
СообщениеДобавлено: 01 фев 2016, 18:19 
Не в сети
Аватара пользователя

Зарегистрирован: 27 янв 2010, 16:12
Сообщения: 941
Откуда: Уфа
Карма: 124
А зачем вам напрямую этот класс использовать?

_________________
С уважением, Гареев Артур. Вежливый разработчик ООО "Бител".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Web-сервис через JSON
СообщениеДобавлено: 01 фев 2016, 18:19 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
spectrum писал(а):
А каким образом с остальынми классами работать можно снаружи? С тем же самым BVComTransactionManager?

никак . Это внутреннее API. Там вроде другой Web-сервис. Если нет Web-сервиса, то через Action.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Web-сервис через JSON
СообщениеДобавлено: 01 фев 2016, 18:20 
Не в сети
Аватара пользователя

Зарегистрирован: 27 янв 2010, 16:12
Сообщения: 941
Откуда: Уфа
Карма: 124
Возможно, вам нужно использовать класс ru.bitel.bgbilling.modules.bvcom.common.service.BVComService

_________________
С уважением, Гареев Артур. Вежливый разработчик ООО "Бител".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Web-сервис через JSON
СообщениеДобавлено: 01 фев 2016, 18:22 
Не в сети

Зарегистрирован: 29 янв 2014, 11:32
Сообщения: 365
Карма: 10
Artur писал(а):
А зачем вам напрямую этот класс использовать?

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Web-сервис через JSON
СообщениеДобавлено: 01 фев 2016, 18:24 
Не в сети

Зарегистрирован: 29 янв 2014, 11:32
Сообщения: 365
Карма: 10
Artur писал(а):
Возможно, вам нужно использовать класс ru.bitel.bgbilling.modules.bvcom.common.service.BVComService

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Web-сервис через JSON
СообщениеДобавлено: 01 фев 2016, 18:29 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
spectrum писал(а):
Artur писал(а):
Возможно, вам нужно использовать класс ru.bitel.bgbilling.modules.bvcom.common.service.BVComService

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


добавим в javadoc. У нас там не все есть.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Web-сервис через JSON
СообщениеДобавлено: 01 фев 2016, 19:44 
Не в сети

Зарегистрирован: 29 янв 2014, 11:32
Сообщения: 365
Карма: 10
А вы можете пока сюда скинуть часть документации, которая куасается модуля bvcom, а то пока вы обновите javadoc... :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Web-сервис через JSON
СообщениеДобавлено: 01 фев 2016, 21:08 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
spectrum писал(а):
А вы можете пока сюда скинуть часть документации, которая куасается модуля bvcom, а то пока вы обновите javadoc... :)


Код:
package ru.bitel.bgbilling.modules.bvcom.common.service;

import java.util.Date;
import java.util.List;

import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.xml.bind.annotation.XmlSeeAlso;

import ru.bitel.bgbilling.common.BGException;
import ru.bitel.bgbilling.modules.bvcom.common.bean.BVComTransaction;

@WebService
@XmlSeeAlso( BVComTransaction.class )
public interface BVComService
{
   @WebMethod
   public List<BVComTransaction> getTransactionList( int status, int cid, String contractTitle, Date dateFrom, Date dateTo, String groups )
      throws BGException;
   
   @WebMethod
   public BVComTransaction getTransaction( int transactionId )
      throws BGException;
   
   @WebMethod
   public List<BVComTransaction> getReturnTransactionList()
      throws BGException;
   
   @WebMethod
   public void addTransaction( BVComTransaction transaction )
      throws BGException;
   
   @WebMethod
   public void updateTransaction( BVComTransaction transaction )
      throws BGException;
   
   @WebMethod
   public void returnMoney( BVComTransaction transaction )
      throws BGException;
}



Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Web-сервис через JSON
СообщениеДобавлено: 01 фев 2016, 21:14 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
BVCom еще не поменяли, оказывается. Скоро он будет реализовывать такой интерфейс:
Код:
public interface PaymentServiceProvider
{
   public void beginTransaction(
                                 @WebParam(name = "contractId" ) int contractId,
                                 @WebParam(name = "amount") BigDecimal amount,
                                 @WebParam(name = "url", mode = Mode.INOUT) Holder<String> url,
                                 @WebParam(name = "mode", mode = Mode.INOUT) Holder<String> mode,
                                 @WebParam(name = "params", mode = Mode.INOUT) Holder<MapHolder<String, String>> params,
                                 @WebParam(name = "successUrl" ) String successUrl,
                                 @WebParam(name = "failureUrl" ) String failureUrl)
      throws BGException, BGMessageException, BGIllegalArgumentException, BGIllegalAccessException;
}
Но возможно еще что-нибудь поменяется в интерфейсе, т.к. это будет универсальный метод для нескольких платежных систем, для того, чтобы новый ЛК мог инициировать платеж.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Web-сервис через JSON
СообщениеДобавлено: 02 фев 2016, 00:54 
Не в сети

Зарегистрирован: 29 янв 2014, 11:32
Сообщения: 365
Карма: 10
Спасибо! Будем разбираться.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Web-сервис через JSON
СообщениеДобавлено: 02 фев 2016, 03:56 
Не в сети

Зарегистрирован: 29 янв 2014, 11:32
Сообщения: 365
Карма: 10
Что-то не получается.
Код:
https://xxxxxxxxx/bgbilling/executer/json/ru.bitel.bgbilling.modules.bvcom/7/BVComService

{"method" : "getTransaction", "user" :{ "user" : "user", "pswd" : "xxxxx" }, "params" : { "transactionId" : 1 } }


На выходе:
Код:
{"status":"error","exception":"java.lang.IllegalArgumentException","message":null,"data":{}}


Ну и в логах тоже самое.
Код:
java.lang.reflect.InvocationTargetException
        at ru.bitel.bgbilling.kernel.container.service.server.ServiceInfo.invoke(ServiceInfo.java:118)
        at ru.bitel.bgbilling.kernel.container.ws.server.JsonWsHandler.handle(JsonWsHandler.java:303)
        at bitel.billing.server.Executer.doPost(SourceFile:158)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:646)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421)
        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1074)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalArgumentException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)
        at ru.bitel.bgbilling.kernel.container.service.server.ServiceInfo.invoke(ServiceInfo.java:101)
        ... 21 more


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Web-сервис через JSON
СообщениеДобавлено: 02 фев 2016, 16:05 
Не в сети

Зарегистрирован: 29 янв 2014, 11:32
Сообщения: 365
Карма: 10
Имеется проблема, или я что-то делаю не так?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Web-сервис через JSON
СообщениеДобавлено: 02 фев 2016, 18:16 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
тут с нашей стороны надо поправить.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Web-сервис через JSON
СообщениеДобавлено: 02 фев 2016, 18:18 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
у вас 6.2 ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Web-сервис через JSON
СообщениеДобавлено: 02 фев 2016, 20:56 
Не в сети

Зарегистрирован: 29 янв 2014, 11:32
Сообщения: 365
Карма: 10
Да, 6.2.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Web-сервис через JSON
СообщениеДобавлено: 04 фев 2016, 17:54 
Не в сети

Зарегистрирован: 29 янв 2014, 11:32
Сообщения: 365
Карма: 10
Какие перспективы по решению вопроса?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Web-сервис через JSON (CRM)
СообщениеДобавлено: 05 фев 2016, 23:08 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
На следующей неделе, вместе с поддержкой BVCom (Arius) в новом ЛК.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Web-сервис через JSON (CRM)
СообщениеДобавлено: 08 фев 2016, 18:30 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Выложили. Интерфейс изменился:
Код:
public interface BVComService
   extends PaymentServiceProvider
...

public interface PaymentServiceProvider
{
   public void beginTransaction(
                                 @WebParam(name = "contractId" ) int contractId,
                                 @WebParam(name = "amount") BigDecimal amount,
                                 @WebParam(name = "url", mode = Mode.INOUT) Holder<String> url,
                                 @WebParam(name = "mode", mode = Mode.INOUT) Holder<String> mode,
                                 @WebParam(name = "params", mode = Mode.INOUT) Holder<MapHolder<String, String>> params )
      throws BGException, BGMessageException, BGIllegalArgumentException, BGIllegalAccessException;
}


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Web-сервис через JSON (CRM)
СообщениеДобавлено: 09 фев 2016, 19:43 
Не в сети

Зарегистрирован: 29 янв 2014, 11:32
Сообщения: 365
Карма: 10
Спасибо!

getTransaction заработало.
Попытался использовать метод beginTransaction. Выдает ошибку.

Код:
https://xxxxxxx/bgbilling/executer/json/ru.bitel.bgbilling.modules.bvcom/7/BVComService


Код:
{"method" : "beginTransaction", "user" :{ "user" : "user", "pswd" : "xxxxx" }, "params" : { "contractId" : 1, "amount" : 10 } }


Результат:
Код:
{"status":"error","exception":"java.lang.ClassCastException","message":"sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl cannot be cast to java.lang.Class","data":{}}


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Web-сервис через JSON (CRM)
СообщениеДобавлено: 09 фев 2016, 22:13 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Выложили обновление.

Также для BVCom нужно передавать IP-адрес абонента:
Код:
{"method" : "beginTransaction", "user" :{ "user" : "xxxxx", "pswd" : "xxxxx" }, "params" : { "contractId" : 1, "amount" : 10, "params" : { "map" : { "ipAddress" : "127.0.0.1" } } } }


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Web-сервис через JSON (CRM)
СообщениеДобавлено: 09 фев 2016, 22:51 
Не в сети

Зарегистрирован: 29 янв 2014, 11:32
Сообщения: 365
Карма: 10
Спасибо, этот IP-адрес для чего нужен? Просто как информация?

И еще, параметры url и mode, можно поподробнее об них?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Web-сервис через JSON (CRM)
СообщениеДобавлено: 09 фев 2016, 22:56 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Вроде бы да. Передается Ариусу, протокол вроде как требует.

Этот интерфейс будет универсальным для разных платежных систем.
Если возвращает mode="redirect", то абонента нужно редиректнуть по значению в url.
Если возвращает "post", то со страницы абонента должна отправиться форма post'ом c полями, которые будут в params, адрес формы (action) - значение в url.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Web-сервис через JSON (CRM)
СообщениеДобавлено: 09 фев 2016, 22:58 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Также можно передать, куда абонента вернет после проведения платежа:
Код:
{"method" : "beginTransaction", "user" :{ "user" : "xxxxx", "pswd" : "xxxxx" }, "params" : { "contractId" : 1, "amount" : 10, "params" : { "map" : { "ipAddress" : "127.0.0.1", "resultUrl" : "http://mybgilling.ru/payment/result" } } } }


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Web-сервис через JSON (CRM)
СообщениеДобавлено: 10 фев 2016, 01:40 
Не в сети

Зарегистрирован: 29 янв 2014, 11:32
Сообщения: 365
Карма: 10
Ага, спасибо, вроде что-то получается.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Web-сервис через JSON (CRM)
СообщениеДобавлено: 28 мар 2016, 00:48 
Не в сети

Зарегистрирован: 29 янв 2014, 11:32
Сообщения: 365
Карма: 10
С модулем bvcom все получилось. Все работает.
Теперь вопрос такого плана. Каким образом через Web API можно выдернуть абонплату следующего месяца.
В идеале вообще рассчитать сколько нужно заплатить абоненту, чтобы при наступлении 1 числа следующего месяца абонента не заблокировало.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Web-сервис через JSON (CRM)
СообщениеДобавлено: 28 мар 2016, 14:51 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
spectrum писал(а):
С модулем bvcom все получилось. Все работает.
Теперь вопрос такого плана. Каким образом через Web API можно выдернуть абонплату следующего месяца.
В идеале вообще рассчитать сколько нужно заплатить абоненту, чтобы при наступлении 1 числа следующего месяца абонента не заблокировало.


где-то на wiki есть скрипт для этого. Web-сервиса готового у нас для этого нет.


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

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


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

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


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

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