Дерево страниц
Перейти к концу метаданных
Переход к началу метаданных

Для интеграции 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
  • contractTarifPlans
  • contractBalance
  • contractPayments
  • lastContractPayments
  • 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>&lt;info@company.ru&gt;</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":"&lt;info@company.ru&gt;"},{"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

Поддерживаются параметры в конфиге

web.api.contract.balance.format.pattern=###,###,###,###.00
client.gui.currency.title.medium=руб.

Ответы:

<response><status>Ok</status><sum>99 878 732,10</sum><currencyTitleMedium>руб.</currencyTitleMedium></response>

или

{
  "currencyTitleMedium": "руб.",
  "sum": "99 878 732,10",
  "status": "Ok"
}

Операция contractPayments

пример запроса - /xmlWebApi/contractPayments?contractId=386010[&members=1][&date1=2016-01-01][&date2=2019-01-01] или /jsonWebApi/contractPayments?contractId=386010[&members=1][&date1=2016-01-01][&date2=2019-01-01]

где members - если == 1, то только данный договор, если = 2 то вернет еще и его зависемые субдоговора, если = 3 то только его зависемые субдоговора.

date1 и date2 - задают период за который выводятся платежи

<response><status>Ok</status><contractPayments><contractPayment><id>251748</id><typeId>54</typeId><typeTitle>NetPay</typeTitle><date>01.09.2016</date><comment>Оплата через платежный сервис NetPay [транзакция #7]</comment><sum>107,00</sum></contractPayment></contractPayments><totalSum>107,00</totalSum></response>

Ответы:

{
  "totalSum": "107,00",
  "contractPayments": [
    {
      "date": "01.09.2016",
      "typeId": "54",
      "comment": "Оплата через платежный сервис NetPay [транзакция #7]",
      "sum": "107,00",
      "id": "251748",
      "typeTitle": "NetPay"
    }
  ],
  "status": "Ok"
}

Операция lastContractPayments

пример запроса - /xmlWebApi/lastContractPayments?contractId=386010[&members=1][&lastPayments=3] или /jsonWebApi/lastContractPayments?contractId=386010[&members=1][&lastPayments=3]

где members - если == 1, то только данный договор, если = 2 то вернет еще и его зависемые субдоговора, если = 3 то только его зависемые субдоговора.

lastPayments - количество платежей

Ответы:

<response><status>Ok</status><contractPayments><contractPayment><id>251748</id><typeId>54</typeId><typeTitle>NetPay</typeTitle><date>01.09.2016</date><comment>Оплата через платежный сервис NetPay [транзакция #7]</comment><sum>107,00</sum></contractPayment><contractPayment><id>251735</id><typeId>50</typeId><typeTitle>Moneta</typeTitle><date>21.07.2016</date><comment>Оплата через платежный сервис Moneta.ru [транзакция #16]</comment><sum>116,00</sum></contractPayment></contractPayments><totalSum>223,00</totalSum></response>

или

{
  "totalSum": "223,00",
  "contractPayments": [
    {
      "date": "01.09.2016",
      "typeId": "54",
      "comment": "Оплата через платежный сервис NetPay [транзакция #7]",
      "sum": "107,00",
      "id": "251748",
      "typeTitle": "NetPay"
    },
    {
      "date": "21.07.2016",
      "typeId": "50",
      "comment": "Оплата через платежный сервис Moneta.ru [транзакция #16]",
      "sum": "116,00",
      "id": "251735",
      "typeTitle": "Moneta"
    }
  ],
  "status": "Ok"
}

Операция contractTariffOptions

пример запроса - /xmlWebApi/contractParameters?contractId=386010 или /jsonWebApi/contractParameters?contractId=386010

Форматирование суммы можно задать через параметр конфига

web.api.contract.tariff.option.sum.format.pattern=###,###,###,###.00

Ответы:

 

<response><status>Ok</status><contractTariffOptions><contractTariffOption><id>81</id><timeFrom>24.07.2015</timeFrom><timeTo/><title>Дешевый 
трафик</title><optionId>5</optionId><sum>,00</sum></contractTariffOption></contractTariffOptions></response>

или

{
  "contractTariffOptions": [
    {
      "timeFrom": "24.07.2015",
      "timeTo": "",
      "optionId": "5",
      "sum": ",00",
      "id": "81",
      "title": "Дешевый трафик"
    }
  ],
  "status": "Ok"
}

Операция contractModules

пример запроса - /xmlWebApi/contractModules?contractId=386010 или /jsonWebApi/contractModules?contractId=386010

Ответы:

<response><status>Ok</status><contractModules><contractModule><id>145</id><title>BVCom</title></contractModule><contractModule><id>43</id><title>CerberCrypt2</title></contractModule><contractModule><id>179</id><title>INET</title></contractModule><contractModule><id>213</id><title>Mobi.Деньги</title></contractModule><contractModule><id>239</id><title>Moneta</title></contractModule><contractModule><id>70</id><title>MPS</title></contractModule></contractModules></response>

или

{
  "contractModules": [
    {
      "id": "145",
      "title": "BVCom"
    },
    {
      "id": "43",
      "title": "CerberCrypt2"
    },
    {
      "id": "179",
      "title": "INET"
    },
    {
      "id": "213",
      "title": "Mobi.Деньги"
    },
    {
      "id": "70",
      "title": "MPS"
    }
  ],
  "status": "Ok"
}

Операция newsList

пример запроса - /xmlWebApi/newsList?contractId=386010 или /jsonWebApi/newsList?contractId=386010

Ответы:

<response><status>Ok</status><newsList><item><id>12</id><date>01.12.2010</date><title>Внимание!!! Акция!!! Только 5 дней!!!</title><body><h1>Текст новости H1</h1>
<h2>Текст новости H2</h2></body></item><item><id>11</id><date>13.07.2010</date><title>123</title><body>12312312312</body></item><item><id>9</id><date>14.12.2009</date><title>vzxlck;glsdfh</title><body>LKNBLNCVXKC;BHJXC;VBJH;XKFGHBGHDFG</body></item><item><id>10</id><date>07.12.2009</date><title>бла бла бла</title><body>трали вали</body></item></newsList></response>

или

{
  "newsList": [
    {
      "date": "01.12.2010",
      "id": "12",
      "title": "Внимание!!! Акция!!! Только 5 дней!!!",
      "body": "<h1>Текст новости H1</h1>\n<h2>Текст новости H2</h2>"
    },
    {
      "date": "13.07.2010",
      "id": "11",
      "title": "123",
      "body": "12312312312"
    },
    {
      "date": "14.12.2009",
      "id": "9",
      "title": "vzxlck;glsdfh",
      "body": "LKNBLNCVXKC;BHJXC;VBJH;XKFGHBGHDFG"
    },
    {
      "date": "07.12.2009",
      "id": "10",
      "title": "бла бла бла",
      "body": "трали вали"
    }
  ],
  "status": "Ok"
}
  • Нет меток