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/