Для интеграции BGBilling с внешними сайтами или стороним Личным кабинетом, возможно использование механизм Web API (доступен с версии 6.2)
Для активации данного API в конфигурации ядра необходимо прописать
web.api.enable=true
Запрос к Web API не проверяется на аутентификацию и права пользователя, поэтому при его включении нужно изолировать доступ к данному URL.
После активации, будeт доступны два режима получения данных из BGBIlling:
- в XML формате (http://host[:port]/bgbilling/xmlWebApi/<operation>)
- в JSON формате (http://host[:port]/bgbilling/jsonWebApi/<operation>)
где <operation> это:
для Ядра
- login
- contractParameters
- contractBalance
- contractPayments
- lastContractPayments
- contractTarifPlans
- contractTariffOptions
- contractModules
- newsList
для других модулей - в разработке, дополнительная информация по запросу на e-mail (http://bgbilling.ru) или на форуме
Операция login
пример запроса - /xmlWebApi/login?login=kirill&password=******[&midAuth=0] или /jsonWebApi/login?login=kirill&password=******[&midAuth=0]
ответы:
<response><status>Ok</status><contractId>386010</contractId><contractTitle>kirill</contractTitle></response>
или
{"contractTitle":"kirill","contractId":386010,"status":"Ok"}
Операция contractParameters
пример запроса - /xmlWebApi/contractParameters?contractId=386010 или /jsonWebApi/contractParameters?contractId=386010
ответы:
<response><status>Ok</status><contractParameters><contractParameter><id>4</id><typeId>1</typeId><title>Ф.И.О. руководителя</title><read>true</read><write>true</write><value>Иванов Иван Иванович</value></contractParameter><contractParameter><id>7</id><typeId>1</typeId><title>Контактное лицо</title><read>false</read><write>true</write><value/></contractParameter><contractParameter><id>1</id><typeId>1</typeId><title>Краткое название организации</title><read>true</read><write>true</write><value>Фирма</value></contractParameter><contractParameter><id>20</id><typeId>3</typeId><title>e-mail</title><read>true</read><write>true</write><value><info@company.ru></value></contractParameter><contractParameter><id>40</id><typeId>9</typeId><title>Телефон (новый)</title><read>true</read><write>true</write><value>7 (347) 292-48-23</value></contractParameter></contractParameters></response>
или
{"contractParameters":[{"read":"true","typeId":"1","id":"4","title":"Ф.И.О. руководителя","write":"true","value":"Иванов Иван Иванович"},{"read":"false","typeId":"1","id":"7","title":"Контактное лицо","write":"true"},{"read":"true","typeId":"1","id":"1","title":"Краткое название организации","write":"true","value":"Фирма"},{"read":"true","typeId":"3","id":"20","title":"e-mail","write":"true","value":"<info@company.ru>"},{"read":"true","typeId":"9","id":"40","title":"Телефон (новый)","write":"true","value":"7 (347) 292-48-23"}],"status":"Ok"}
Операция contractTarifPlans
пример запроса - /xmlWebApi/contractTarifPlans?contractId=386010[&entityMid=1][&entityId=1] или /jsonWebApi/contractTarifPlans?contractId=386010[&entityMid=1][&entityId=1]
Ответы:
<response><status>Ok</status><contractTarifPlans><contractTarifPlan><id>273691</id><tariffPlanId>52</tariffPlanId><title>КИРИЛЛ (web)</title><dateFrom>06.01.2015</dateFrom><dateTo/><period>06.01.2015-…</period><comment>Смена тарифа через Web</comment><pos>2</pos></contractTarifPlan></contractTarifPlans></response>
или
{ "contractTarifPlans": [ { "period": "06.01.2015-…", "pos": "2", "dateTo": "", "comment": "Смена тарифа через Web", "id": "273691", "tariffPlanId": "52", "title": "КИРИЛЛ (web)", "dateFrom": "06.01.2015" } ], "status": "Ok" }
Операция contractBalance
пример запроса - /xmlWebApi/contractBalance?contractId=386010 или /jsonWebApi/contractBalance?contractId=386010
Ответы:
Операция contractPayments
пример запроса - /xmlWebApi/contractPayments?contractId=386010 или /jsonWebApi/contractPayments?contractId=386010
Ответы:
Операция lastContractPayments
пример запроса - /xmlWebApi/lastContractPayments?contractId=386010 или /jsonWebApi/lastContractPayments?contractId=386010
Ответы:
Операция contractTarifPlans
пример запроса - /xmlWebApi/contractTarifPlans?contractId=386010 или /jsonWebApi/contractTarifPlans?contractId=386010
Ответы:
Операция contractTariffOptions
пример запроса - /xmlWebApi/contractParameters?contractId=386010 или /jsonWebApi/contractParameters?contractId=386010
Форматирование суммы можно задать через параметр конфига
web.api.contract.tariff.option.sum.format.pattern=###,###,###,###.00
Ответы:
Операция contractModules
пример запроса - /xmlWebApi/contractTariffOptions?contractId=386010 или /jsonWebApi/contractTariffOptions?contractId=386010
Ответы:
Операция newsList
пример запроса - /xmlWebApi/newsList?contractId=386010 или /jsonWebApi/newsList?contractId=386010
Ответы: