forum.bitel.ru http://forum.bitel.ru/ |
|
JSON RPC - Внесение платежа http://forum.bitel.ru/viewtopic.php?f=19&t=11505 |
Страница 1 из 1 |
Автор: | braek-neck [ 07 апр 2016, 20:37 ] |
Заголовок сообщения: | JSON RPC - Внесение платежа |
Всем добрый день. при попытке внести платеж через через JSON, возвращается ошибка. прошу подсказать что я делаю не так. Код: http://mybill:8080/executer/json/ru.bitel.bgbilling.kernel.contract.balance/PaymentService {"method" : "paymentUpdate", "user" :{ "user" : "admin", "pswd" : "123456" }, "params" : { "id" : -1, "userId" : 0, "contractId" : 103841, "typeId" : 8, "date" : "2016-04-07", "comment" : "test", "summa" : 800.0, "sum" : 800.0, "timeChange" : "2016-04-07T15:00:00+06:00" } } Код: {"status":"error","exception":"org.apache.commons.jexl2.JexlException",
"message":"ru.bitel.bgbilling.kernel.container.security.server.ServiceAction.isCoincide@60![8,15]: 'payment.getId() > 0;' attempting to call method on null","data":{}} |
Автор: | stark [ 11 апр 2016, 19:08 ] |
Заголовок сообщения: | Re: JSON RPC - Внесение платежа |
Версия какая? |
Автор: | braek-neck [ 11 апр 2016, 20:41 ] |
Заголовок сообщения: | Re: JSON RPC - Внесение платежа |
Сорри, совсем забыл написать. Цитата: Сервер: вер. 6.2.987 / 14.12.2015 14:18:51
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_66 |
Автор: | stark [ 12 апр 2016, 16:32 ] |
Заголовок сообщения: | Re: JSON RPC - Внесение платежа |
а в логах сервера ошибок нет ? |
Автор: | braek-neck [ 12 апр 2016, 16:51 ] |
Заголовок сообщения: | Re: JSON RPC - Внесение платежа |
В логах немного больше инфы. Цитата: server 04-12/14:44:15 ERROR [http-bio-0.0.0.0-8080-exec-4] JsonWsHandler - ru.bitel.bgbilling.kernel.container.security.server.ServiceAction.isCoincide@60![8,15]: 'payment.getId() > 0;' attempting to call method on null
org.apache.commons.jexl2.JexlException: ru.bitel.bgbilling.kernel.container.security.server.ServiceAction.isCoincide@60![8,15]: 'payment.getId() > 0;' attempting to call method on null at org.apache.commons.jexl2.Interpreter.visit(Interpreter.java:1095) at org.apache.commons.jexl2.parser.ASTMethodNode.jjtAccept(ASTMethodNode.java:18) at org.apache.commons.jexl2.Interpreter.visit(Interpreter.java:1317) at org.apache.commons.jexl2.parser.ASTReference.jjtAccept(ASTReference.java:18) at org.apache.commons.jexl2.Interpreter.visit(Interpreter.java:793) at org.apache.commons.jexl2.parser.ASTGTNode.jjtAccept(ASTGTNode.java:18) at org.apache.commons.jexl2.Interpreter.interpret(Interpreter.java:232) at org.apache.commons.jexl2.ExpressionImpl.evaluate(ExpressionImpl.java:65) at ru.bitel.bgbilling.kernel.container.security.server.ServiceAction.isCoincide(ServiceAction.java:60) at ru.bitel.bgbilling.kernel.container.security.server.ModuleInfo.findAction(ModuleInfo.java:51) at ru.bitel.bgbilling.kernel.container.security.server.PermissionChecker.findAction(PermissionChecker.java:354) at ru.bitel.bgbilling.kernel.container.ws.server.JsonWsHandler.handle(JsonWsHandler.java:280) 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) |
Автор: | borin [ 13 апр 2016, 13:54 ] |
Заголовок сообщения: | Re: JSON RPC - Внесение платежа |
Как раз надо было сделать тоже самое, заодно проверил. Код: <?php $myCurl = curl_init(); $data = json_encode(array( "method" => "paymentUpdate", "user" => array( "user" => "admin", "pswd" => "admin" ), "params" => array( "payment" => array( "id" => -1, "contractId" => 219, "typeId" => 7, "date" => "2016-04-13", "comment" => "test", "sum" => 10, "timeChange" => "2016-04-13T10:00:00+05:00" ) ) )); echo $data."\n"; curl_setopt_array($myCurl, array( CURLOPT_URL => 'http://192.168.10.81:8080/bgbilling/executer/json/ru.bitel.bgbilling.kernel.contract.balance/PaymentService', CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true, CURLOPT_POSTFIELDS => $data )); $response = curl_exec($myCurl); curl_close($myCurl); echo "Response: ".$response."\n"; Проверил работает. Код: Response: {"status":"ok","exception":null,"message":"","tag":null,"data":{"return":[303877]}} Код: Информация о версии:
Клиент: вер. 6.2.812 / 11.04.2016 15:24:46 os: Windows 7; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_77 Сервер: вер. 6.2.1042 / 12.04.2016 14:38:17 os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45 npay: вер. 6.2.192 / 01.03.2016 18:22:14 reports: вер. 6.2.207 / 04.04.2016 17:21:51 ru.bitel.bgbilling.plugins.cashcheck: вер. 6.2.105 / 01.03.2016 00:17:35 ru.bitel.bgbilling.plugins.cladr: вер. 6.2.119 / 02.02.2016 17:42:00 |
Автор: | braek-neck [ 13 апр 2016, 15:53 ] |
Заголовок сообщения: | Re: JSON RPC - Внесение платежа |
обновился. но все равно все также. Цитата: }{"status":"error","exception":"org.apache.commons.jexl2.JexlException","message":"ru.bitel.bgbilling.kernel.container.security.server.ServiceAction.isCoincide@60![8,15]: 'payment.getId() > 0;' attempting to call method on null","tag":null,"data":{}} Цитата: Сервер: вер. 6.2.1042 / 12.04.2016 14:38:17
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_66 |
Автор: | borin [ 13 апр 2016, 16:34 ] |
Заголовок сообщения: | Re: JSON RPC - Внесение платежа |
braek-neck писал(а): обновился. но все равно все также. Цитата: }{"status":"error","exception":"org.apache.commons.jexl2.JexlException","message":"ru.bitel.bgbilling.kernel.container.security.server.ServiceAction.isCoincide@60![8,15]: 'payment.getId() > 0;' attempting to call method on null","tag":null,"data":{}} Цитата: Сервер: вер. 6.2.1042 / 12.04.2016 14:38:17 os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_66 Подскажу ошибка в секции params, не хватает параметра payment. |
Автор: | braek-neck [ 13 апр 2016, 16:51 ] |
Заголовок сообщения: | Re: JSON RPC - Внесение платежа |
Вот спасибо огромное. Докинул вам кармы. ) |
Автор: | braek-neck [ 18 апр 2016, 14:10 ] |
Заголовок сообщения: | Re: JSON RPC - Внесение платежа |
Может кому пригодится. Отправка json post запроса средствами perl Код: #!/usr/bin/perl
use LWP::UserAgent; use HTTP::Request; use JSON; my $uri = 'https://mybill:8443/executer/json/ru.bitel.bgbilling.kernel.contract.balance/PaymentService'; my $user = 'admin'; my $pass = '123456'; my $cid = 1; my $pid = 1; my ($sec,$min,$hour,$mday,$mon,$year) = localtime(time); my $date = sprintf "%04d-%02d-%2d", $year+1900, $mon+1, $mday; #my $date = "2016-04-15"; my $comment = "test"; my $sum = 1; my $json_data = {'method' => 'paymentUpdate', 'user' => { 'user' => $user, 'pswd' => $pass}, 'params' => { 'payment' => { 'id' => -1, 'userId' => 0, 'contractId' => $cid, 'typeId' => $pid, 'date' => $date, 'comment' => $comment, 'sum' => $sum } } }; my $json = encode_json($json_data); my $req = HTTP::Request->new( 'POST', $uri ); $req->header( 'Content-Type' => 'application/json' ); $req->content( $json ); my $lwp = LWP::UserAgent->new; my $res = $lwp->request( $req ); if ($res->is_success && decode_json($res->content)->{status} eq "ok" ) { print $res->content . "\n"; print decode_json($res->content)->{status} . "\n"; } else { print $res->content . "\n"; print $res->status_line . "\n"; } exit 0; |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |