Изменения документа Протокол интеграции систем внешних наливов с Топаз "Web Офис"
Редактировал(а) Dmitriy 2026/04/23 06:18
От версии 28.1
отредактировано Ярослава Ерина
на 2024/12/11 12:27
на 2024/12/11 12:27
Изменить комментарий:
К данной версии нет комментариев
Сводка
-
Свойства страницы (2 изменено, 0 добавлено, 0 удалено)
Подробности
- Свойства страницы
-
- Автор документа
-
... ... @@ -1,1 +1,1 @@ 1 -XWiki.erin a_jv1 +XWiki.erin_ds - Содержимое
-
... ... @@ -1,7 +1,5 @@ 1 - {{toc/}}1 +====== **v 1.0.1** ====== 2 2 3 -v 1.0.1 4 - 5 5 == Настройка перед интеграцией == 6 6 7 7 ... ... @@ -20,11 +20,8 @@ 20 20 21 21 (% class="box errormessage" %) 22 22 ((( 23 -(% class="wikigeneratedid" id="H41443043D43D44B43943A43B44E44743D43543E43144543E43443843C43E43144343443544243F43544043543443043243044244C43243E43244143544543743043F44043E44143044543E44243243D43544843D43543944143844144243543C44B4322242243E43F430437-WebOffice2243243743043343E43B43E43243A43528header29externalSystemApikey" %) 24 -((( 25 -**Данный ключ необходимо будет передавать во всех запросах от внешней системы в "Топаз-Web Office" в заголовке (header) externalSystemApikey** 21 +=== **Данный ключ необходимо будет передавать во всех запросах от внешней системы в "Топаз-Web Office" в заголовке (header) externalSystemApikey** === 26 26 ))) 27 -))) 28 28 29 29 == ApiKey == 30 30 ... ... @@ -36,14 +36,6 @@ 36 36 37 37 Базовым адресом **(baseUrl)** для выполнения запросов является [[https:~~/~~/topazoffice.ru/ms/external-fueling/integration>>https://topazoffice.ru/ms/external-fueling/integration]] 38 38 39 - 40 -== **Методы API "Топаз-Web Office":** == 41 - 42 -1. **Получение списка АЗС и их конфигураций** 43 -1. **Получение прайс-листа** 44 -1. **Получение и обработка заказа** 45 -1. **Проверка статуса работы станции** 46 - 47 47 == Получение списка АЗС и их конфигураций == 48 48 49 49 Внешняя система опрашивает "Топаз-Web Office" для получения списка АЗС и их конфигураций **через HTTP **запрос на **baseUrl **с префиксом **/station?apikey={apikey **}, запрос типа **GET **, timeout 10 секунд. ... ... @@ -52,7 +52,7 @@ 52 52 53 53 **...** 54 54 55 -{{code language="javascript" layout="LINENUMBERS"}}42 +{{code language="javascript"}} 56 56 { 57 57 // идентификатор станции АЗС 58 58 string Id ... ... @@ -102,7 +102,7 @@ 102 102 103 103 В ответ Топаз "Web Офис" дает ответ в формате **JSON**{{{}}} 104 104 105 -{{code language="javascript" layout="LINENUMBERS"}}92 +{{code language="javascript"}} 106 106 { 107 107 { 108 108 // идентификатор станции внутри Топаз "Web Офис" ... ... @@ -117,6 +117,7 @@ 117 117 {{/code}} 118 118 119 119 107 + 120 120 **Пример ответа**{{{}}} 121 121 122 122 {{code language="javascript"}} ... ... @@ -127,7 +127,7 @@ 127 127 } 128 128 {{/code}} 129 129 130 -== Получение и обработка заказа ==118 +== Обработка заказа == 131 131 132 132 [[image:https://wiki.topazelectro.ru/download/attachments/1179735/image2023-1-19_16-21-33.png?version=1&modificationDate=1716374642000&api=v2]] 133 133 ... ... @@ -134,67 +134,47 @@ 134 134 Информирование "Топаз-Web Office" о заказе и их статусах осуществляется **HTTP **запросом на **baseUrl **с префиксом **/order **, запрос типа **POST **, timeout 10 секунд. 135 135 136 136 137 -**Тело запроса содержит JSON вида Order{{{}}} **125 +**Тело запроса содержит JSON вида Order**{{{}}} 138 138 139 -{{code language="javascript" layout="LINENUMBERS"}}127 +{{code language="javascript"}} 140 140 { 141 -// Идентификатор заказа142 - String Id129 +// идентификатор заказа 130 +string Id 143 143 // дата и время создания в UTC, формат даты yyyy-MM-dd'T'HH:mm:ss.SSSSSSS'Z' либо yyyy-MM-dd HH:mm:ss 144 -String DateCreate 132 +String DateCreate 133 +// значение заказа 134 +double OrderVolume 145 145 // идентификатор станции АЗС 146 -String StationExtendedId 147 -// Тип заказа 148 -String OrderType 149 -// номер стороны (поста) 136 +string StationExtendedId 137 +// номер колонки 150 150 int ColumnId 151 -// Идентификатор топлива152 - String FuelId153 -// Стоимость 1 литра топлива139 +// идентификатор топлива 140 +string FuelId 141 +// стоимость 1 литра топлива 154 154 double PriceFuel 155 -// Сумма заказа143 +// сумма заказа 156 156 double Sum 157 -// Размер заказав литрах145 +// кол-во литров 158 158 double Litre 159 -// Итого оплачено147 +// итого оплачено 160 160 double SumPaid 161 -// Статус заказа149 +// статус заказа 162 162 OrderStatus Status 163 163 // дата и время завершения заказа UTC, формат даты yyyy-MM-dd'T'HH:mm:ss.SSSSSSS'Z' либо yyyy-MM-dd HH:mm:ss 164 164 String DateEnd 165 -// Идентификатор причины отмены заказа166 - String ReasonId167 -// Причина отмены168 - String Reason169 -// Итогозаправлено153 +// идентификатор причины отмены заказа 154 +string ReasonId 155 +// причина отмены 156 +string Reason 157 +// итого сумма литров залито 170 170 double LitreCompleted 171 -// Итого оплачено по завершению заказа159 +// итого оплачено по завершению заказа 172 172 double SumPaidCompleted 173 -// Идентификатор договора 174 -String ContractId 175 -// Способ оплаты 176 -String PayType 161 +// идентификатор договора 162 +string ContractId 177 177 } 178 178 {{/code}} 179 179 180 -**Обязательными полями при создании нового заказа являются:** 181 - 182 -{{code layout="LINENUMBERS" language="javascript"}} 183 -{ 184 - "Id": "string", 185 - "DateCreate": "string", 186 - "OrderType": "Money", 187 - "StationExtendedId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", 188 - "ColumnId": 0, 189 - "FuelId": "diesel" 190 - "PriceFuel": 0, 191 - "Sum": 0, 192 - "Litre": 0, 193 - "Status": "OrderCreated" 194 - "ContractId": "string" 195 -} 196 -{{/code}} 197 - 198 198 Параметр **OrderType **– тип заказа может принимать следующие значения: 199 199 200 200 * **Money **– заправка на фиксированную сумму ... ... @@ -218,45 +218,12 @@ 218 218 219 219 При получении заказа в статусе **OrderCreated **Топаз "Web Офис" проверяет ряд параметров **StationExtendedId **– в случае если идентификатор станции не найден в Топаз "Web Офис", то Топаз "Web Офис" дает ответ **400** 220 220 221 -**FuelId **+ **PriceFuel **– в случае если стоимость топлива в Топаз "Web Офис" отличается от присланной, то Топаз "Web Офис" дает ответ **402 .**189 +**FuelId **+ **PriceFuel **– в случае если стоимость топлива в Топаз "Web Офис" отличается от присланной, то Топаз "Web Офис" дает ответ **402** 222 222 191 +== Передача статусов о заказе == 223 223 224 -== Проверка статусаработыстанции==193 +=== Статус Accepted === 225 225 226 -Перед формирование заказ внешняя система делает запрос на станцию для определения доступности и готовности станции принять заказ **baseUrl **с префиксом 227 - 228 -**/ping?apikey={apikey}&stationId={stationId}&columnId={columnId},** 229 - 230 -**stationId **– идентификатор станции 231 - 232 -**columnId **– идентификатор стороны ТРК 233 - 234 -запрос типа **GET **, timeout 10 секунд. 235 - 236 -==== **Статусы ответов** ==== 237 - 238 -**200 ОК **– станция и ТРК готова принять и обработать заказ 239 - 240 -**400 **– станция или ТРК не найдена (не верный идентификатор станции или ТРК) **404 **– ТРК занята / ТРК не готова принять заказ 241 - 242 -любой ответ не **200 ОК **– интерпретируется как на станции нет интернета / станция не доступна 243 - 244 ----- 245 - 246 -Для получения статусов Интегратору необходимо со своей стороны реализовать сервис для их получения и обработки. 247 - 248 -== **Методы REST API интегратора (внешней системы):** == 249 - 250 -1. **Статус Accepted** 251 -1. **Статус Fueling** 252 -1. **Статус Canceled** 253 -1. **Статус Completed** 254 -1. **Отправка счетчика налива** 255 - 256 -Данные запросы "Топаз-Web Office" отправляет Интегратору. 257 - 258 -=== **Статус Accepted** === 259 - 260 260 Данный статус сообщает внешней системе о том, что заказ принят и обработан в "Топаз-Web Office" 261 261 262 262 Данный статус "Топаз-Web Office" отсылает после того, как были произведены некоторые действия с заказом (например, заказ сохранен в базе данных) и система готова перейти на следующий шаг ... ... @@ -263,15 +263,13 @@ 263 263 264 264 В случае если внешняя система дала ответ, отличный от **200 ОК **, то "Топаз-Web Office" отсылает статус Canceled и прекращает обработку заказ 265 265 266 -**baseUrl + /api/order/accept** 201 +**baseUrl + /api/order/accept POST** 267 267 268 -**POST** 269 - 270 270 **apikey={apikey}&orderId={ordeId}** 271 271 272 272 все параметры являются обязательными 273 273 274 -=== **Статус Fueling**===207 +=== Статус Fueling === 275 275 276 276 Данный статус сообщает внешней системе о том, что "Топаз-Web Office" готов запустить колонку (начать пролив) 277 277 ... ... @@ -279,15 +279,13 @@ 279 279 280 280 В случае если внешняя система дала ответ, отличный от **200 ОК **, то "Топаз-Web Office" отсылает статус Canceled и прекращает обработку заказ 281 281 282 -**baseUrl + /api/order/fueling** 215 +**baseUrl + /api/order/fueling POST** 283 283 284 -**POST** 285 - 286 286 **apikey={apikey}&orderId={ordeId}** 287 287 288 288 все параметры являются обязательными 289 289 290 -=== **Статус Canceled**===221 +=== Статус Canceled === 291 291 292 292 Данный статус сообщает внешней системе о том, что заказ следует отменить 293 293 ... ... @@ -301,7 +301,7 @@ 301 301 302 302 **reason – **текстовая причина отмены 303 303 304 -=== **Статус Completed**===235 +=== Статус Completed === 305 305 306 306 Данный статус сообщает внешней системе о том, что заказ выполнен и топливо залито 307 307 ... ... @@ -309,8 +309,10 @@ 309 309 310 310 **baseUrl + /api/order/completed POST** 311 311 312 -**apikey={apikey}&orderId={ordeId}&litre={litre}&extendedOrderId={extendedOrderId}& extendedDate={extendedDate}**243 +**apikey={apikey}&orderId={ordeId}&litre={litre}&extendedOrderId={extendedOrderId}&** 313 313 245 +**extendedDate={extendedDate}** 246 + 314 314 все параметры являются обязательными 315 315 316 316 **litre **– кол-во пролитых литров, указывается как **double **с разделителем точка **extendedOrderId **– идентификатор заказа в АСУ сети ... ... @@ -317,7 +317,7 @@ 317 317 318 318 **extendedDate **– дата по которой АСУ строит отчет для сверки, формат **dd.MM.yyyy HH:mm:ss** 319 319 320 -=== **Отправка счетчика налива**===253 +=== Отправка счетчика налива === 321 321 322 322 В момент процесса налива "Топаз-Web Office" может сообщать внешней системе статус счетчика налива 323 323 ... ... @@ -332,3 +332,21 @@ 332 332 все параметры являются обязательными 333 333 334 334 **litre **– кол-во пролитых на момент отправки запроса литров, указывается как double с разделителем точка 268 + 269 +== Проверка статуса работы станции == 270 + 271 +Перед формирование заказ внешняя система делает запрос на станцию для определения доступности и готовности станции принять заказ **baseUrl **с префиксом 272 + 273 +**/ping?apikey={apikey}&stationId={stationId}&columnId={columnId}, stationId **– идентификатор станции 274 + 275 +**columnId **– идентификатор ТРК 276 + 277 +запрос типа **GET **, timeout 10 секунд. 278 + 279 +== Статусы ответов == 280 + 281 +**200 ОК **– станция и ТРК готова принять и обработать заказ 282 + 283 +**400 **– станция или ТРК не найдена (не верный идентификатор станции или ТРК) **404 **– ТРК занята / ТРК не готова принять заказ 284 + 285 +любой ответ не **200 ОК **– интерпретируется как на станции нет интернета / станция не доступна