h5. В биллинге существуют системные API которые тоже можно использовать.
1. Необходимо добавить разрешенные IP адреса в список через пробел Настройки->Настройки(в файле)->Network->Список IP для которых разрешено подключаться к системному API
2. Узнать пароль для конкретного контекста в /app/asr_billing/cfg/config
Например для collector будет:
{code}network['api.collector.psw']='пароль'{code}
Примеры запросов:
1. Список заблокированных по балансу абонентов по Nas IP
{code}<ип адрес>:8082/system_api/?model=Abonents&method1=collector_manager.users_negbal&arg1={"nas_ip":"<ип адрес Nas>"}&context=collector&psw=<пароль>{code}
2. Список заблокированных администратором абонентов по Nas IP
{code}<ип адрес>:8082/system_api/?model=Abonents&method1=collector_manager.users_blocked&arg1={"nas_ip":"<ип адрес Nas>"}&context=collector&psw=<пароль>{code}
3. Список авторизованных абонентов по Nas IP
{code}<ип адрес>:8082/system_api/?model=Abonents&method1=collector_manager.users_logged&arg1={"nas_ip":"<ип адрес Nas>"}&context=collector&psw=<пароль>{code}
*Ответ у всех 3 запросов в виде текста где в каждой строке:*
{code}'%(ip)s %(login)s %(snatip)s %(mac)s %(logged)s %(negbal)s %(blocked)s %(rate_in)s %(ceil_in)s %(burst_in)s %(rate_out)s %(ceil_out)s %(burst_out)s %(nas_ip)s %(cburst_in)s %(cburst_out)s'
{code}
h5. *API платежных систем.*
1. Провести платеж абоненту
{code}<ип адрес>:8082/system_api/?model=Abonents&method1=asr_fiscal_manager.act_pay&arg1={"contract_number":"<номер договора, логин или ип адрес>","sum_in":"<сумма платежа>","pay_operator":"<код платежного оператора>","pay_id_str":"<уникальный ид платежа со стороны платежной системы>","act":"PAY"}&context=asr_fiscal&psw=<пароль>{code}
h5. *API 1С.*
1. Получить не синхронизированных абонентов
{code}<ип адрес>:8082/system_api/?model=Abonents&method1=api_1c_manager.api_1c_get_abonents&arg1={"parent_id":"<ид родительской группы>"}&context=api_1c&psw=<пароль>{code}
2. Получить детали финансовой операции
{code}<ип адрес>:8082/system_api/?model=FinanceOperations&method1=api_1c_manager.api_1c_get_fin_detail&arg1={"op_id":"<ид финансовой операции>"}&context=api_1c&psw=<пароль>{code}
3. Создать абонента с кодом 1С
{code}<ип адрес>:8082/system_api/?model=Abonents&method1=api_1c_manager.api_1c_create_abonent&arg1={"code1c":"<Код 1С>","name":"<Имя абонента>"}&context=api_1c&psw=<пароль>{code}
h5. *API личного кабинета.*
_Работает только с разрешенного IP_
1. Авторизация по логину и паролю учетной записи
{code}
http://<ip billing>:8082/system_api/?format=json&context=web&model=users&method1=web_cabinet.login&arg1={"login":"<логин уч. записи>","passwd":"<пароль уч. записи>"}&
{code}
2. Авторизация по IP
{code}
http://<ip billing>:8082/system_api/?format=json&context=web&model=users&method1=web_cabinet.try_auto_login&arg1={"src_ip":"<ваш ip>"}&
{code}
3. Получить информацию об абоненте
{code}
http://<ip billing>:8082/system_api/?format=json&context=web&model=users&method1=web_cabinet.user_info&arg1={"suid":"<session_id>"}&
{code}
h5. Ошибка Context=$x is not defined
При запросах к api возвращается ошибка, например:
{code}
Context=asr_fiscal is not defined
Context=asr_cabinet is not defined
Context=collector is not defined
{code}
Решение:
Добавить необходимый context в /app/asr_billing/cfg/config в параметр _network\['api.context'\]_
{code}
network['api.context']='web cabinet collector api_1c base webcash asr_fiscal'
{code}
И перезапустить (_/app/asr_billing/service restart_) биллинг, чтобы изменения применились.
1. Необходимо добавить разрешенные IP адреса в список через пробел Настройки->Настройки(в файле)->Network->Список IP для которых разрешено подключаться к системному API
2. Узнать пароль для конкретного контекста в /app/asr_billing/cfg/config
Например для collector будет:
{code}network['api.collector.psw']='пароль'{code}
Примеры запросов:
1. Список заблокированных по балансу абонентов по Nas IP
{code}<ип адрес>:8082/system_api/?model=Abonents&method1=collector_manager.users_negbal&arg1={"nas_ip":"<ип адрес Nas>"}&context=collector&psw=<пароль>{code}
2. Список заблокированных администратором абонентов по Nas IP
{code}<ип адрес>:8082/system_api/?model=Abonents&method1=collector_manager.users_blocked&arg1={"nas_ip":"<ип адрес Nas>"}&context=collector&psw=<пароль>{code}
3. Список авторизованных абонентов по Nas IP
{code}<ип адрес>:8082/system_api/?model=Abonents&method1=collector_manager.users_logged&arg1={"nas_ip":"<ип адрес Nas>"}&context=collector&psw=<пароль>{code}
*Ответ у всех 3 запросов в виде текста где в каждой строке:*
{code}'%(ip)s %(login)s %(snatip)s %(mac)s %(logged)s %(negbal)s %(blocked)s %(rate_in)s %(ceil_in)s %(burst_in)s %(rate_out)s %(ceil_out)s %(burst_out)s %(nas_ip)s %(cburst_in)s %(cburst_out)s'
{code}
h5. *API платежных систем.*
1. Провести платеж абоненту
{code}<ип адрес>:8082/system_api/?model=Abonents&method1=asr_fiscal_manager.act_pay&arg1={"contract_number":"<номер договора, логин или ип адрес>","sum_in":"<сумма платежа>","pay_operator":"<код платежного оператора>","pay_id_str":"<уникальный ид платежа со стороны платежной системы>","act":"PAY"}&context=asr_fiscal&psw=<пароль>{code}
h5. *API 1С.*
1. Получить не синхронизированных абонентов
{code}<ип адрес>:8082/system_api/?model=Abonents&method1=api_1c_manager.api_1c_get_abonents&arg1={"parent_id":"<ид родительской группы>"}&context=api_1c&psw=<пароль>{code}
2. Получить детали финансовой операции
{code}<ип адрес>:8082/system_api/?model=FinanceOperations&method1=api_1c_manager.api_1c_get_fin_detail&arg1={"op_id":"<ид финансовой операции>"}&context=api_1c&psw=<пароль>{code}
3. Создать абонента с кодом 1С
{code}<ип адрес>:8082/system_api/?model=Abonents&method1=api_1c_manager.api_1c_create_abonent&arg1={"code1c":"<Код 1С>","name":"<Имя абонента>"}&context=api_1c&psw=<пароль>{code}
h5. *API личного кабинета.*
_Работает только с разрешенного IP_
1. Авторизация по логину и паролю учетной записи
{code}
http://<ip billing>:8082/system_api/?format=json&context=web&model=users&method1=web_cabinet.login&arg1={"login":"<логин уч. записи>","passwd":"<пароль уч. записи>"}&
{code}
2. Авторизация по IP
{code}
http://<ip billing>:8082/system_api/?format=json&context=web&model=users&method1=web_cabinet.try_auto_login&arg1={"src_ip":"<ваш ip>"}&
{code}
3. Получить информацию об абоненте
{code}
http://<ip billing>:8082/system_api/?format=json&context=web&model=users&method1=web_cabinet.user_info&arg1={"suid":"<session_id>"}&
{code}
h5. Ошибка Context=$x is not defined
При запросах к api возвращается ошибка, например:
{code}
Context=asr_fiscal is not defined
Context=asr_cabinet is not defined
Context=collector is not defined
{code}
Решение:
Добавить необходимый context в /app/asr_billing/cfg/config в параметр _network\['api.context'\]_
{code}
network['api.context']='web cabinet collector api_1c base webcash asr_fiscal'
{code}
И перезапустить (_/app/asr_billing/service restart_) биллинг, чтобы изменения применились.