Авторизация клиента через API

Обмен накопленными знаниями и опытом использования АСР LANBilling
vaddem
Сообщения: 63
Зарегистрирован: 23 ноя 2016, 10:43
Откуда: 74

Авторизация клиента через API

Сообщение vaddem » 08 сен 2019, 11:36

Коллеги, есть задача отобразить на стороннем сайте краткую информация о клиенте (ФИО, Баланс и т.п.), авторизовавшись им на сайте с учетными данными от личного кабинета.

Подскажите пожалуйста, нет ли у кого готового примера PHP скрипта авторизации клиента в биллинге?

Спасибо
Номер сборки / дата
26.0 - Sep 21 2018 17:21:04

Andrei
Сообщения: 810
Зарегистрирован: 08 ноя 2006, 12:26
Контактная информация:

Re: Авторизация клиента через API

Сообщение Andrei » 11 сен 2019, 14:00

Для меня это тоже загадка - как из php обратиться к ЛБ со стороннего сайта.
Например пробую даже с того же сервера, где стоит ЛБ:

Код: Выделить всё

<?php

$include_path="/usr/local/billing/phpclient/admin";

error_reporting(47);
include_once($include_path."/localize.php");
include_once($include_path."/localize.class.php");
include_once($include_path."/functions.inc");
include_once($include_path."/api_functions.php");
include_once($include_path."/constants.php");
include_once($include_path."/IT.php");
include_once($include_path."/common_display_1.php");
include_once($include_path."/soap.class.php");
include_once($include_path."/main.class.php");
include_once($include_path."/includes.php");

$localize = new Localize('ru', 'UTF-8',array("rootPath"=>$include_path."/"));
$lanbilling = new LANBilling(array("rootPath"=>$include_path."/"));
и т.д.

и получаю в логе LBCore ругань вида
11.09.2019 15:54:56 WARNING 0xa981cb70 [RunRequest] error_auth:Manager not authorized

И как к этому подступиться - не понимаю. Может доки какие-то есть, но я на сайте их не нашел.

d16
Сообщения: 3
Зарегистрирован: 12 авг 2020, 22:19

Re: Авторизация клиента через API

Сообщение d16 » 10 сен 2020, 19:23

Админы, опубликуйте уже примеры скриптов!!!

Аватара пользователя
support
Сообщения: 206
Зарегистрирован: 03 фев 2016, 10:41

Re: Авторизация клиента через API

Сообщение support » 11 сен 2020, 10:23

Код: Выделить всё

<?php
$credentials = array("login" => "admin", "pass" => "");
$client = new SoapClient("http://192.168.49.175:34012?wsdl", ['location' => "http://192.168.49.175:34012"]);
$client->Login($credentials);
$filter = array("code" => '0000018');
$a = $client->getAgreements(array("flt" => $filter));
print_r($a);
?>

Andrei
Сообщения: 810
Зарегистрирован: 08 ноя 2006, 12:26
Контактная информация:

Re: Авторизация клиента через API

Сообщение Andrei » 11 сен 2020, 22:36

Что за порт 34012 ? Это какой-то стандартный порт? Или он где-то настраивается?
У меня на этот скрипт ругается:

Код: Выделить всё

 PHP Fatal error:
  Uncaught SoapFault exception: [SOAP-ENV:Server] error_trusted in /var/www/html/getAgreements.php:4
\nStack trace:\n#0 /var/www/html/getAgreements.php(4): SoapClient->__call('Login', Array)\n#1 {main}
\n  thrown in /var/www/html/getAgreements.php on line 4

Аватара пользователя
support
Сообщения: 206
Зарегистрирован: 03 фев 2016, 10:41

Re: Авторизация клиента через API

Сообщение support » 13 сен 2020, 01:02

34012 стандартый порт SOAP API.
Чтобы к нему обратится требуется разрешить хост, с которого обращаетесь, в Довереных хостах(Опции=>Доверенные хосты).
По-умолчанию - доступ разрешён только с 127.0.0.1

Andrei
Сообщения: 810
Зарегистрирован: 08 ноя 2006, 12:26
Контактная информация:

Re: Авторизация клиента через API

Сообщение Andrei » 13 сен 2020, 12:06

Скрипт размещал на самом сервере биллинга.

Код: Выделить всё

[Sun Sep 13 14:04:39.922235 2020] [:error] [pid 15942] [client 188.130.ххх.ххх:7810] PHP Fatal error
:  Uncaught SoapFault exception: [SOAP-ENV:Server] error_trusted in /var/www/html/getAgreements.php:
4\nStack trace:\n#0 /var/www/html/getAgreements.php(4): SoapClient->__call('Login', Array)\n#1 {main
}\n  thrown in /var/www/html/getAgreements.php on line 4

Внес адрес 188.130.ххх.ххх в доверенные, ситуацию это не изменило.

Andrei
Сообщения: 810
Зарегистрирован: 08 ноя 2006, 12:26
Контактная информация:

Re: Авторизация клиента через API

Сообщение Andrei » 16 сен 2020, 09:19

У кого-нибудь получилось?

Аватара пользователя
support
Сообщения: 206
Зарегистрирован: 03 фев 2016, 10:41

Re: Авторизация клиента через API

Сообщение support » 16 сен 2020, 09:34

Чтобы ответить на Ваш вопрос, надо понимать что у Вас в скрипте.
Если Вы заменили IP из примера на 127.0.0.1 - то технически(при настройках по-умолчанию) ошибки error_trusted Вы получить не должны.
Судя по "client 188.130.ххх.ххх:7810" - у Вас там прописан не 127.0.0.1

Andrei
Сообщения: 810
Зарегистрирован: 08 ноя 2006, 12:26
Контактная информация:

Re: Авторизация клиента через API

Сообщение Andrei » 16 сен 2020, 09:49

Сам-то скрипт находится на том же сервере, что и биллинг, я и указал в скрипте реальный ip сервера биллинга - 188.130.ххх.ххх, в браузере пытаюсь отрыть страницу http://billing.domen.ru/getAgreements.php
Если поставить 127.0.0.1, то срабатывает. Логика не очень понятна, но примем так, как есть.
Собственно конечная цель: чтобы скрипт мог получать данные абонента из его личного кабинета после авторизации.
Последний раз редактировалось Andrei 16 сен 2020, 09:59, всего редактировалось 1 раз.


Вернуться в «LANBilling: обмен опытом»

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

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