forum.bitel.ru http://forum.bitel.ru/ |
|
Web-сервис через JSON (CRM) http://forum.bitel.ru/viewtopic.php?f=19&t=11300 |
Страница 1 из 2 |
Автор: | spectrum [ 01 фев 2016, 17:40 ] |
Заголовок сообщения: | Web-сервис через JSON |
Добрый день! Подскажите пожалуйста, какие классы можно вызывать через 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":{}}
|
Автор: | stark [ 01 фев 2016, 18:01 ] |
Заголовок сообщения: | Re: Web-сервис через JSON |
Ну можно вызвать только то, что web-сервисы. В качестве признака слово - Service в самом классе или в пакете. |
Автор: | stark [ 01 фев 2016, 18:02 ] |
Заголовок сообщения: | Re: Web-сервис через JSON |
И да, нужно искать интерфейсы. ContractService это интерфейс. |
Автор: | spectrum [ 01 фев 2016, 18:06 ] |
Заголовок сообщения: | Re: Web-сервис через JSON |
А каким образом с остальынми классами работать можно снаружи? С тем же самым BVComTransactionManager? |
Автор: | Artur [ 01 фев 2016, 18:19 ] |
Заголовок сообщения: | Re: Web-сервис через JSON |
А зачем вам напрямую этот класс использовать? |
Автор: | stark [ 01 фев 2016, 18:19 ] |
Заголовок сообщения: | Re: Web-сервис через JSON |
spectrum писал(а): А каким образом с остальынми классами работать можно снаружи? С тем же самым BVComTransactionManager? никак . Это внутреннее API. Там вроде другой Web-сервис. Если нет Web-сервиса, то через Action. |
Автор: | Artur [ 01 фев 2016, 18:20 ] |
Заголовок сообщения: | Re: Web-сервис через JSON |
Возможно, вам нужно использовать класс ru.bitel.bgbilling.modules.bvcom.common.service.BVComService |
Автор: | spectrum [ 01 фев 2016, 18:22 ] |
Заголовок сообщения: | Re: Web-сервис через JSON |
Artur писал(а): А зачем вам напрямую этот класс использовать? Чтобы расширить функциональность. Вообще нужна страница для пополнения счета абонента через платежную систему Ариус без входа в ЛК. |
Автор: | spectrum [ 01 фев 2016, 18:24 ] |
Заголовок сообщения: | Re: Web-сервис через JSON |
Artur писал(а): Возможно, вам нужно использовать класс ru.bitel.bgbilling.modules.bvcom.common.service.BVComService А где посмотреть его описание? В документации не нашел, хотя похоже он существует, поскольку ошибку отсутствия не выдает. |
Автор: | stark [ 01 фев 2016, 18:29 ] |
Заголовок сообщения: | Re: Web-сервис через JSON |
spectrum писал(а): Artur писал(а): Возможно, вам нужно использовать класс ru.bitel.bgbilling.modules.bvcom.common.service.BVComService А где посмотреть его описание? В документации не нашел, хотя похоже он существует, поскольку ошибку отсутствия не выдает. добавим в javadoc. У нас там не все есть. |
Автор: | spectrum [ 01 фев 2016, 19:44 ] |
Заголовок сообщения: | Re: Web-сервис через JSON |
А вы можете пока сюда скинуть часть документации, которая куасается модуля bvcom, а то пока вы обновите javadoc... ![]() |
Автор: | stark [ 01 фев 2016, 21:08 ] |
Заголовок сообщения: | Re: Web-сервис через JSON |
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; } |
Автор: | Amir [ 01 фев 2016, 21:14 ] |
Заголовок сообщения: | Re: Web-сервис через JSON |
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; } |
Автор: | spectrum [ 02 фев 2016, 00:54 ] |
Заголовок сообщения: | Re: Web-сервис через JSON |
Спасибо! Будем разбираться. |
Автор: | spectrum [ 02 фев 2016, 03:56 ] |
Заголовок сообщения: | Re: Web-сервис через JSON |
Что-то не получается. Код: 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 |
Автор: | spectrum [ 02 фев 2016, 16:05 ] |
Заголовок сообщения: | Re: Web-сервис через JSON |
Имеется проблема, или я что-то делаю не так? |
Автор: | stark [ 02 фев 2016, 18:16 ] |
Заголовок сообщения: | Re: Web-сервис через JSON |
тут с нашей стороны надо поправить. |
Автор: | stark [ 02 фев 2016, 18:18 ] |
Заголовок сообщения: | Re: Web-сервис через JSON |
у вас 6.2 ? |
Автор: | spectrum [ 02 фев 2016, 20:56 ] |
Заголовок сообщения: | Re: Web-сервис через JSON |
Да, 6.2. |
Автор: | spectrum [ 04 фев 2016, 17:54 ] |
Заголовок сообщения: | Re: Web-сервис через JSON |
Какие перспективы по решению вопроса? |
Автор: | Amir [ 05 фев 2016, 23:08 ] |
Заголовок сообщения: | Re: Web-сервис через JSON (CRM) |
На следующей неделе, вместе с поддержкой BVCom (Arius) в новом ЛК. |
Автор: | Amir [ 08 фев 2016, 18:30 ] |
Заголовок сообщения: | Re: Web-сервис через JSON (CRM) |
Выложили. Интерфейс изменился: Код: 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; } |
Автор: | spectrum [ 09 фев 2016, 19:43 ] |
Заголовок сообщения: | Re: Web-сервис через JSON (CRM) |
Спасибо! 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":{}}
|
Автор: | Amir [ 09 фев 2016, 22:13 ] |
Заголовок сообщения: | Re: Web-сервис через JSON (CRM) |
Выложили обновление. Также для BVCom нужно передавать IP-адрес абонента: Код: {"method" : "beginTransaction", "user" :{ "user" : "xxxxx", "pswd" : "xxxxx" }, "params" : { "contractId" : 1, "amount" : 10, "params" : { "map" : { "ipAddress" : "127.0.0.1" } } } }
|
Автор: | spectrum [ 09 фев 2016, 22:51 ] |
Заголовок сообщения: | Re: Web-сервис через JSON (CRM) |
Спасибо, этот IP-адрес для чего нужен? Просто как информация? И еще, параметры url и mode, можно поподробнее об них? |
Автор: | Amir [ 09 фев 2016, 22:56 ] |
Заголовок сообщения: | Re: Web-сервис через JSON (CRM) |
Вроде бы да. Передается Ариусу, протокол вроде как требует. Этот интерфейс будет универсальным для разных платежных систем. Если возвращает mode="redirect", то абонента нужно редиректнуть по значению в url. Если возвращает "post", то со страницы абонента должна отправиться форма post'ом c полями, которые будут в params, адрес формы (action) - значение в url. |
Автор: | Amir [ 09 фев 2016, 22:58 ] |
Заголовок сообщения: | Re: Web-сервис через JSON (CRM) |
Также можно передать, куда абонента вернет после проведения платежа: Код: {"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" } } } }
|
Автор: | spectrum [ 10 фев 2016, 01:40 ] |
Заголовок сообщения: | Re: Web-сервис через JSON (CRM) |
Ага, спасибо, вроде что-то получается. |
Автор: | spectrum [ 28 мар 2016, 00:48 ] |
Заголовок сообщения: | Re: Web-сервис через JSON (CRM) |
С модулем bvcom все получилось. Все работает. Теперь вопрос такого плана. Каким образом через Web API можно выдернуть абонплату следующего месяца. В идеале вообще рассчитать сколько нужно заплатить абоненту, чтобы при наступлении 1 числа следующего месяца абонента не заблокировало. |
Автор: | stark [ 28 мар 2016, 14:51 ] |
Заголовок сообщения: | Re: Web-сервис через JSON (CRM) |
spectrum писал(а): С модулем bvcom все получилось. Все работает. Теперь вопрос такого плана. Каким образом через Web API можно выдернуть абонплату следующего месяца. В идеале вообще рассчитать сколько нужно заплатить абоненту, чтобы при наступлении 1 числа следующего месяца абонента не заблокировало. где-то на wiki есть скрипт для этого. Web-сервиса готового у нас для этого нет. |
Страница 1 из 2 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |