BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 27 апр 2024, 17:38

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




Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: JSON RPC - Внесение платежа
СообщениеДобавлено: 07 апр 2016, 20:37 
Не в сети

Зарегистрирован: 08 окт 2009, 16:06
Сообщения: 186
Карма: 20
Всем добрый день.
при попытке внести платеж через через 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":{}}


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

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


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

Зарегистрирован: 08 окт 2009, 16:06
Сообщения: 186
Карма: 20
Сорри, совсем забыл написать.

Цитата:
Сервер: вер. 6.2.987 / 14.12.2015 14:18:51
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_66


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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: JSON RPC - Внесение платежа
СообщениеДобавлено: 12 апр 2016, 16:51 
Не в сети

Зарегистрирован: 08 окт 2009, 16:06
Сообщения: 186
Карма: 20
В логах немного больше инфы.

Цитата:
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)


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

Зарегистрирован: 12 июл 2010, 21:22
Сообщения: 319
Карма: 11
Как раз надо было сделать тоже самое, заодно проверил.
Код:
<?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

_________________
Код:
    Клиент: вер. 6.2.874 / 05.02.2018 12:48:36
    os: Windows 7; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_151
  Сервер: вер. 6.2.1203 / 05.02.2018 12:50:34
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45


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

Зарегистрирован: 08 окт 2009, 16:06
Сообщения: 186
Карма: 20
обновился. но все равно все также.

Цитата:
}{"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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: JSON RPC - Внесение платежа
СообщениеДобавлено: 13 апр 2016, 16:34 
Не в сети
Аватара пользователя

Зарегистрирован: 12 июл 2010, 21:22
Сообщения: 319
Карма: 11
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.

_________________
Код:
    Клиент: вер. 6.2.874 / 05.02.2018 12:48:36
    os: Windows 7; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_151
  Сервер: вер. 6.2.1203 / 05.02.2018 12:50:34
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: JSON RPC - Внесение платежа
СообщениеДобавлено: 13 апр 2016, 16:51 
Не в сети

Зарегистрирован: 08 окт 2009, 16:06
Сообщения: 186
Карма: 20
Вот спасибо огромное. Докинул вам кармы. )


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: JSON RPC - Внесение платежа
СообщениеДобавлено: 18 апр 2016, 14:10 
Не в сети

Зарегистрирован: 08 окт 2009, 16:06
Сообщения: 186
Карма: 20
Может кому пригодится. Отправка 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;


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 10 ] 

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


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

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


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

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