Редактировал(а) Dmitriy 2026/04/23 06:18

От версии 27.1
отредактировано Ярослава Ерина
на 2024/12/11 12:27
Изменить комментарий: К данной версии нет комментариев
К версии 49.1
отредактировано Dmitriy
на 2026/04/13 12:45
Изменить комментарий: К данной версии нет комментариев

Сводка

Подробности

Свойства страницы
Родительский документ
... ... @@ -1,1 +1,1 @@
1 -Main.WebHome
1 +vneshnie_api.vneshnie_nalivy2.WebHome
Автор документа
... ... @@ -1,1 +1,1 @@
1 -XWiki.erina_jv
1 +XWiki.erin_ds
Содержимое
... ... @@ -1,27 +3,35 @@
1 -{{toc/}}
2 -
3 3  v 1.0.1
4 4  
5 5  == Настройка перед интеграцией ==
6 6  
5 +Для начала работы необходимо зарегистрироваться в Личном кабинете Интегратора
7 7  
8 -Перед началом интеграции, уполномоченный сотрудник компании, предоставляющей услуги внешних наливов (далее Интегратор), передает в ООО "Топаз-сервис" следующую информацию:
7 +~1. Для регистрации пройдите по ссылке: [[https:~~/~~/topazoffice.ru/#/auth/integrator-registration/ef>>https://topazoffice.ru/#/auth/integrator-registration/ef]] 
9 9  
10 -1. Базовый url тестового окружения системы внешнего налива
11 -1. Список ip адресов, с которых будут приходить запросы от тестового окружения системы внешнего налива
12 -1. Базовый url боевого окружения системы внешнего налива
13 -1. Список ip адресов, с которых будут приходить запросы от боевого окружения системы внешнего налива
14 -1. Официальное название системы внешних наливов, которое будет указано в Топаз "Web Офис"
15 -1. Иконку системы внешних наливов в формате svg с соотношением сторон 1:1
9 +2. После ввода логина и пароля на почту будет отправлено письмо для подтверждения регистрации
16 16  
17 осле получения информации по указанным пунктам, от ООО "Топаз-сервис" будет предоставлен тестовый доступ для настройки интеграции.
11 +3. Перейдите по ссылке из письма для подтверждения учетной записи.
18 18  
19 -Также будет предоставлен секретный ключ (тестового и боевого окружения) для идентификации системы внешних наливов в "Топаз-Web Office".
13 +4. Авторизуйтесь в Топаз Web-Office ([[https:~~/~~/topazoffice.ru/#/login>>url:https://topazoffice.ru/#/login]] )
20 20  
15 +5. В открывшейся форме заполните поля:
16 +
17 +* Официальное название системы внешних наливов, которое будет указано в Топаз "Web Офис"
18 +* Прикрепите иконку Вашей системы  в формате svg с соотношением сторон 1:1. Эти название и иконку будут видеть конечные клиенты  в Топаз "Web Офис"
19 +* Базовый url тестового окружения системы внешнего налива
20 +* Список ip адресов, с которых будут приходить запросы от тестового окружения системы внешнего налива
21 +* Базовый url боевого окружения системы внешнего налива
22 +* Список ip адресов, с которых будут приходить запросы от боевого окружения системы внешнего налива
23 +
24 +6. Нажмите на кнопку "Создать", после этого вы получите уникальный API-ключ, он отобразится в соответствующем поле.
25 +
21 21  (% class="box errormessage" %)
22 22  (((
28 +(% class="wikigeneratedid" id="H41443043D43D44B43943A43B44E44743D43543E43144543E43443843C43E43144343443544243F43544043543443043243044244C43243E43244143544543743043F44043E44143044543E44243243D43544843D43543944143844144243543C44B4322242243E43F430437-WebOffice2243243743043343E43B43E43243A43528header29externalSystemApikey" %)
29 +(((
23 23  === **Данный ключ необходимо будет передавать во всех запросах от внешней системы в "Топаз-Web Office" в заголовке (header) externalSystemApikey** ===
24 24  )))
32 +)))
25 25  
26 26  == ApiKey ==
27 27  
... ... @@ -33,6 +33,7 @@
33 33  
34 34  Базовым адресом **(baseUrl)** для выполнения запросов является [[https:~~/~~/topazoffice.ru/ms/external-fueling/integration>>https://topazoffice.ru/ms/external-fueling/integration]]
35 35  
44 +----
36 36  
37 37  == **Методы API "Топаз-Web Office":** ==
38 38  
... ... @@ -52,25 +52,25 @@
52 52  {{code language="javascript" layout="LINENUMBERS"}}
53 53  {
54 54  // идентификатор станции АЗС
55 -string Id
64 +string id
56 56  // статус станции: true – доступна, false – выключена
57 -bool Enable,
66 +bool enable,
58 58  // наименование станции
59 -string Name,
68 +string name,
60 60  // адрес станции
61 -string Address,
70 +string address,
62 62  // гео точка на карте
63 -location Location
72 +location location
64 64  {
65 -double Lat,
66 -double Lon },
74 +double lat,
75 +double lon },
67 67  // словарь доступных ТРК
68 -Dictionary Columns {
77 +Dictionary columns {
69 69  // номер колонки
70 70  (int32) Key:
71 71  {
72 72  // список доступных типов топлива
73 -"Fuels": [ "a92", "a95", "diesel_premium", ... N ]
82 +"fuels": [ "a92", "a95", "diesel_premium", ... N ]
74 74  }
75 75  } ... N
76 76  }
... ... @@ -78,7 +78,8 @@
78 78  
79 79  **Возможные идентификаторы топлива**
80 80  
81 -|ID|Марка
90 +(% border="1" %)
91 +|(% style="background-color:#e5e4e2; border-color:black" %)ID|(% style="background-color:#e5e4e2; border-color:black" %)Марка
82 82  |diesel|дизель
83 83  |diesel_premium|брендированный дизель
84 84  |a80|бензин марки А80
... ... @@ -93,6 +93,8 @@
93 93  |propane|газ пропан
94 94  |metan|метан
95 95  
106 +== ==
107 +
96 96  == Получение прайс-листа ==
97 97  
98 98  Внешняя система опрашивает "Топаз-Web Office" для получения прайс-листа **HTTP **запросом на **baseUrl **с префиксом **/price?apikey={apikey} **, запрос типа **GET **, timeout 10секунд.
... ... @@ -103,34 +103,36 @@
103 103  {
104 104   {
105 105   // идентификатор станции внутри Топаз "Web Офис"
106 - string StationId,
118 + string stationId,
107 107   // идентификатор топлива
108 - string ProductId,
120 + string productId,
109 109   // цена за 1 литр
110 - double Price
122 + double price
123 + // Внешний код топлива
124 + string fuelExtendedId
111 111   },
112 112  …. N
113 113  }
114 114  {{/code}}
115 115  
116 -
117 117  **Пример ответа**{{{}}}
118 118  
119 119  {{code language="javascript"}}
120 120  {
121 -{"StationId": "0001", "ProductId": "a92", "Price": 38.66},
122 -{"StationId": "0001", "ProductId": "a95_premium", "Price": 45.21},
123 -{"StationId": "0002", "ProductId": "a92", "Price": 38.98},
134 +{"stationId": "0001", "productId": "a92", "price": 38.66, "fuelExtendedId": "92"},
135 +{"stationId": "0001", "productId": "a95_premium", "price": 45.21, "fuelExtendedId": "95"},
136 +{"stationId": "0002", "productId": "a92", "price": 38.98, , "fuelExtendedId": "92"},
124 124  }
125 125  {{/code}}
126 126  
140 +== ==
141 +
127 127  == Получение и обработка заказа ==
128 128  
129 -[[image:https://wiki.topazelectro.ru/download/attachments/1179735/image2023-1-19_16-21-33.png?version=1&modificationDate=1716374642000&api=v2]]
144 +[[image:https://wiki.topazelectro.ru/download/attachments/1179735/image2023-1-19_16-21-33.png?version=1&modificationDate=1716374642000&api=v2||data-xwiki-image-style-border="true"]]
130 130  
131 131  Информирование "Топаз-Web Office" о заказе и их статусах осуществляется **HTTP **запросом на **baseUrl **с префиксом **/order **, запрос типа **POST **, timeout 10 секунд.
132 132  
133 -
134 134  **Тело запроса содержит JSON вида Order{{{}}}**
135 135  
136 136  {{code language="javascript" layout="LINENUMBERS"}}
... ... @@ -137,10 +137,12 @@
137 137  {
138 138  // Идентификатор заказа
139 139  String Id
140 -// дата и время создания в UTC, формат даты yyyy-MM-dd'T'HH:mm:ss.SSSSSSS'Z' либо yyyy-MM-dd HH:mm:ss
154 +// дата и время создания в UTC, формат даты yyyy-MM-dd'T'HH:mm:ss.SSSSSSS'Z', yyyy-MM-dd'T'HH:mm:ss.SSS'Z', либо yyyy-MM-dd HH:mm:ss
141 141  String DateCreate
142 142  // идентификатор станции АЗС
143 143  String StationExtendedId
158 +// Идентификатор АЗС в системе Интегратора (Необязательное поле)
159 +String StationId
144 144  // Тип заказа
145 145  String OrderType
146 146  // номер стороны (поста)
... ... @@ -157,7 +157,7 @@
157 157  double SumPaid
158 158  // Статус заказа
159 159  OrderStatus Status
160 -// дата и время завершения заказа UTC, формат даты yyyy-MM-dd'T'HH:mm:ss.SSSSSSS'Z' либо yyyy-MM-dd HH:mm:ss
176 +// дата и время завершения заказа UTC, формат даты yyyy-MM-dd'T'HH:mm:ss.SSSSSSS'Z', yyyy-MM-dd'T'HH:mm:ss.SSS'Z', либо yyyy-MM-dd HH:mm:ss
161 161  String DateEnd
162 162  // Идентификатор причины отмены заказа
163 163  String ReasonId
... ... @@ -218,6 +218,13 @@
218 218  **FuelId **+ **PriceFuel **– в случае если стоимость топлива в Топаз "Web Офис" отличается от присланной, то Топаз "Web Офис" дает ответ **402.**
219 219  
220 220  
237 +== Отмена заказа ==
238 +
239 +Отмена заказа возможна даже после его старта. Для инициации отмены необходимо отправить тот же заказ со статусом (% style="background-color:#dddddd; font-family:Courier New,Courier,monospace" %)**UserCanceled**(%%). Если на момент получения запроса на отмену процесс налива ещё не начался, заказ будет отменён.
240 +
241 +В случае, если отмена инициирована после начала налива, система остановит процесс пролива и зафиксирует заказ как отменённый. В этом случае в ответе будет указано количество литров, фактически налитых до момента остановки.
242 +
243 +
221 221  == Проверка статуса работы станции ==
222 222  
223 223  Перед формирование заказ внешняя система делает запрос на станцию для определения доступности и готовности станции принять заказ **baseUrl **с префиксом
... ... @@ -234,8 +234,10 @@
234 234  
235 235  **200 ОК **– станция и ТРК готова принять и обработать заказ
236 236  
237 -**400 **– станция или ТРК не найдена (не верный идентификатор станции или ТРК) **404 **– ТРК занята / ТРК не готова принять заказ
260 +**400 **– станция или ТРК не найдена (неверный идентификатор станции или ТРК)
238 238  
262 +**404 **– ТРК занята / ТРК не готова принять заказ
263 +
239 239  любой ответ не **200 ОК **– интерпретируется как на станции нет интернета / станция не доступна
240 240  
241 241  ----
... ... @@ -248,10 +248,15 @@
248 248  1. **Статус Fueling**
249 249  1. **Статус Canceled**
250 250  1. **Статус Completed**
251 -1. **Отправка счетчика налива**
276 +1. **Отправка счетчика налива Volume**
252 252  
253 253  Данные запросы "Топаз-Web Office" отправляет Интегратору.
254 254  
280 +(% class="box infomessage" %)
281 +(((
282 +##**Все методы, отправляющие статусы заказа (**##**Accepted, Fueling, Canceled, Completed, Volume),## отправляют данные в теле в формате x-www-form-urlencoded##**
283 +)))
284 +
255 255  === **Статус Accepted** ===
256 256  
257 257  Данный статус сообщает внешней системе о том, что заказ принят и обработан в "Топаз-Web Office"
... ... @@ -268,6 +268,8 @@
268 268  
269 269  все параметры являются обязательными
270 270  
301 +=== ===
302 +
271 271  === **Статус Fueling** ===
272 272  
273 273  Данный статус сообщает внешней системе о том, что "Топаз-Web Office" готов запустить колонку (начать пролив)
... ... @@ -284,6 +284,8 @@
284 284  
285 285  все параметры являются обязательными
286 286  
319 +=== ===
320 +
287 287  === **Статус Canceled** ===
288 288  
289 289  Данный статус сообщает внешней системе о том, что заказ следует отменить
... ... @@ -298,6 +298,8 @@
298 298  
299 299  **reason – **текстовая причина отмены
300 300  
335 +=== ===
336 +
301 301  === **Статус Completed** ===
302 302  
303 303  Данный статус сообщает внешней системе о том, что заказ выполнен и топливо залито
... ... @@ -314,6 +314,8 @@
314 314  
315 315  **extendedDate **– дата по которой АСУ строит отчет для сверки, формат **dd.MM.yyyy HH:mm:ss**
316 316  
353 +=== ===
354 +
317 317  === **Отправка счетчика налива** ===
318 318  
319 319  В момент процесса налива "Топаз-Web Office" может сообщать внешней системе статус счетчика налива