Изменения документа Протокол интеграции систем внешних наливов с Топаз "Web Офис"
Редактировал(а) Dmitriy 2026/04/23 06:18
От версии 17.1
отредактировано Ярослава Ерина
на 2024/09/18 06:46
на 2024/09/18 06:46
Изменить комментарий:
К данной версии нет комментариев
К версии 10.1
отредактировано Ярослава Ерина
на 2024/07/30 05:36
на 2024/07/30 05:36
Изменить комментарий:
К данной версии нет комментариев
Сводка
-
Свойства страницы (1 изменено, 0 добавлено, 0 удалено)
Подробности
- Свойства страницы
-
- Содержимое
-
... ... @@ -16,20 +16,15 @@ 16 16 17 17 Также будет предоставлен секретный ключ (тестового и боевого окружения) для идентификации системы внешних наливов в Топаз "Web Офис". Данный ключ необходимо будет передавать во всех запросах от внешней системы в Топаз "Web Офис" в заголовке externalSystemApikey 18 18 19 -== Адрес для отправки запросов == 20 - 21 -Базовым адресом **(baseUrl)** для выполнения запросов является [[https:~~/~~/topazoffice.ru/ms/external-fueling/integration>>https://topazoffice.ru/ms/external-fueling/integration]] 22 - 23 23 == Получение списка АЗС и их конфигураций == 24 24 25 -Внешняя система опрашивает Топаз "Web Офис" для получения списка АЗС и их конфигураций **через HTTP **запрос на ** baseUrl **с префиксом **/station?apikey={apikey **}, запрос типа **GET **, timeout 10 секунд.21 +Внешняя система опрашивает Топаз "Web Офис" для получения списка АЗС и их конфигураций **через HTTP **запрос на **url **с префиксом **/integration/station?apikey={apikey **}, запрос типа **GET **, timeout 10 секунд. 26 26 27 27 В ответ Топаз "Web Офис" дает ответ в формате **JSON** 28 28 29 29 **...** 30 30 31 -{{code language="javascript"}} 32 -{ 27 +{{code language="javascript"}}{ 33 33 // идентификатор станции АЗС 34 34 string Id 35 35 // статус станции: true – доступна, false – выключена ... ... @@ -52,9 +52,10 @@ 52 52 "Fuels": [ "a92", "a95", "diesel_premium", ... N ] 53 53 } 54 54 } ... N 55 -} 56 -{{/code}} 50 +}{{/code}} 57 57 52 +{{{{ // идентификатор станции АЗС string Id // статус станции: true – доступна, false – выключена bool Enable, // наименование станции string Name, // адрес станции string Address, // гео точка на карте location Location { double Lat, double Lon }, // словарь доступных ТРК Dictionary Columns { // номер колонки (int32) Key: { // список доступных типов топлива "Fuels": [ "a92", "a95", "diesel_premium", ... N ] } } ... N }}}} 53 + 58 58 **Возможные идентификаторы топлива** 59 59 60 60 |ID|Марка ... ... @@ -74,83 +74,41 @@ 74 74 75 75 == Получение прайс-листа == 76 76 77 -Внешняя система опрашивает Топаз "Web Офис" для получения прайс-листа **HTTP **запросом на ** baseUrl **с префиксом **/price?apikey={apikey} **, запрос типа **GET **, timeout 10секунд.73 +Внешняя система опрашивает Топаз "Web Офис" для получения прайс-листа **HTTP **запросом на **url **с префиксом **/integration/price?apikey={apikey} **, запрос типа **GET **, timeout 10секунд. 78 78 79 -В ответ Топаз "Web Офис" дает ответ в формате **JSON** {{{}}}75 +В ответ Топаз "Web Офис" дает ответ в формате **JSON** 80 80 77 +{{{{ { // идентификатор станции внутри Топаз "Web Офис" string StationId, // идентификатор топлива string ProductId, // цена за 1 литр double Price }, …. N }}}} 78 + 79 + 81 81 {{code language="javascript"}} 82 82 { 83 - { 84 - // идентификатор станции внутри Топаз "Web Офис" 85 - string StationId, 86 - // идентификатор топлива 87 - string ProductId, 88 - // цена за 1 литр 89 - double Price 90 - }, 91 -…. N 82 +{ 83 +// идентификатор станции внутри Топаз "Web Офис" 84 +string StationId, 85 +// идентификатор топлива 86 +string ProductId, 87 +// цена за 1 литр 88 +double Price 89 +}, …. N 92 92 } 93 93 {{/code}} 94 94 95 95 94 +**Пример ответа** 96 96 97 - **Примерответа**{{{}}}96 +{{{{ {“StationId”: “0001”, “ProductId”: “a92”, “Price”: 38.66}, {“StationId”: “0001”, “ProductId”: “a95_premium”, “Price”: 45.21}, {“StationId”: “0002”, “ProductId”: “a92”, “Price”: 38.98}, }}}} 98 98 99 -{{code language="javascript"}} 100 -{ 101 -{“StationId”: “0001”, “ProductId”: “a92”, “Price”: 38.66}, 102 -{“StationId”: “0001”, “ProductId”: “a95_premium”, “Price”: 45.21}, 103 -{“StationId”: “0002”, “ProductId”: “a92”, “Price”: 38.98}, 104 -} 105 -{{/code}} 106 - 107 107 == Обработка заказа == 108 108 109 109 [[image:https://wiki.topazelectro.ru/download/attachments/1179735/image2023-1-19_16-21-33.png?version=1&modificationDate=1716374642000&api=v2]] 110 110 111 -Информирование Топаз "Web Офис" о заказе и их статусах осуществляется **HTTP **запросом на ** baseUrl **с префиксом **/order **, запрос типа **POST **, timeout 10 секунд.102 +Информирование Топаз "Web Офис" о заказе и их статусах осуществляется **HTTP **запросом на **url **с префиксом **/integration/order **, запрос типа **POST **, timeout 10 секунд. 112 112 113 113 114 -**Тело запроса содержит JSON вида Order** {{{}}}105 +**Тело запроса содержит JSON вида Order** 115 115 116 -{{code language="none"}} 117 -{ 118 -// идентификатор заказа 119 -string Id 120 -// дата и время создания в UTC, формат даты yyyy-MM-dd'T'HH:mm:ss.SSSSSSS'Z' либо yyyy-MM-dd HH:mm:ss 121 -String DateCreate 122 -// значение заказа 123 -double OrderVolume 124 -// идентификатор станции АЗС 125 -string StationExtendedId 126 -// номер колонки 127 -int ColumnId 128 -// идентификатор топлива 129 -string FuelId 130 -// стоимость 1 литра топлива 131 -double PriceFuel 132 -// сумма заказа 133 -double Sum 134 -// кол-во литров 135 -double Litre 136 -// итого оплачено 137 -double SumPaid 138 -// статус заказа 139 -OrderStatus Status 140 -// дата и время завершения заказа UTC, формат даты yyyy-MM-dd'T'HH:mm:ss.SSSSSSS'Z' либо yyyy-MM-dd HH:mm:ss 141 -String DateEnd 142 -// идентификатор причины отмены заказа 143 -string ReasonId 144 -// причина отмены 145 -string Reason 146 -// итого сумма литров залито 147 -double LitreCompleted 148 -// итого оплачено по завершению заказа 149 -double SumPaidCompleted 150 -// идентификатор договора 151 -string ContractId 152 -} 153 -{{/code}} 107 +{{{{ // идентификатор заказа string Id // дата и время создания в UTC, формат даты yyyy-MM-dd'T'HH:mm:ss.SSSSSSS'Z' либо yyyy-MM-dd HH:mm:ss String DateCreate // значение заказа double OrderVolume // идентификатор станции АЗС string StationExtendedId // номер колонки int ColumnId // идентификатор топлива string FuelId // стоимость 1 литра топлива double PriceFuel // сумма заказа double Sum // кол-во литров double Litre // итого оплачено double SumPaid // статус заказа OrderStatus Status // дата и время завершения заказа UTC, формат даты yyyy-MM-dd'T'HH:mm:ss.SSSSSSS'Z' либо yyyy-MM-dd HH:mm:ss String DateEnd // идентификатор причины отмены заказа string ReasonId // причина отмены string Reason // итого сумма литров залито double LitreCompleted // итого оплачено по завершению заказа double SumPaidCompleted // идентификатор договора string ContractId }}}} 154 154 155 155 Параметр **OrderType **– тип заказа может принимать следующие значения: 156 156 ... ... @@ -186,7 +186,7 @@ 186 186 187 187 В случае если внешняя система дала ответ, отличный от **200 ОК **, то Топаз "Web Офис" отсылает статус Canceled и прекращает обработку заказ 188 188 189 -** baseUrl + /api/order/accept POST**143 +**базовый url + /api/order/accept POST** 190 190 191 191 **apikey={apikey}&orderId={ordeId}** 192 192 ... ... @@ -200,7 +200,7 @@ 200 200 201 201 В случае если внешняя система дала ответ, отличный от **200 ОК **, то Топаз "Web Офис" отсылает статус Canceled и прекращает обработку заказ 202 202 203 -** baseUrl+ /api/order/fueling POST**157 +**базовый url + /api/order/fueling POST** 204 204 205 205 **apikey={apikey}&orderId={ordeId}** 206 206 ... ... @@ -210,7 +210,7 @@ 210 210 211 211 Данный статус сообщает внешней системе о том, что заказ следует отменить 212 212 213 -** baseUrl+ /api/order/canceled**167 +**базовый url + /api/order/canceled** 214 214 215 215 **POST** 216 216 ... ... @@ -226,7 +226,7 @@ 226 226 227 227 В случае если внешняя система дала ответ отличный от **200 ОК **, то Топаз "Web Офис" отсылает запросы с некоторым отложенным количеством времени до момента получения ответа **200 ОК** 228 228 229 -** baseUrl+ /api/order/completed POST**183 +**базовый url + /api/order/completed POST** 230 230 231 231 **apikey={apikey}&orderId={ordeId}&litre={litre}&extendedOrderId={extendedOrderId}&** 232 232 ... ... @@ -244,7 +244,7 @@ 244 244 245 245 Для этого с периодичностью от 5 – 10 секунд Топаз "Web Офис" выполняет следующий запрос 246 246 247 -** baseUrl + /api/order/volume**201 +**базовый url + /api/order/volume** 248 248 249 249 **POST** 250 250 ... ... @@ -256,9 +256,9 @@ 256 256 257 257 == Проверка статуса работы станции == 258 258 259 -Перед формирование заказ внешняя система делает запрос на станцию для определения доступности и готовности станции принять заказ **baseUrl**с префиксом213 +Перед формирование заказ внешняя система делает запрос на станцию для определения доступности и готовности станции принять заказ url с префиксом 260 260 261 -**/ping?apikey={apikey}&stationId={stationId}&columnId={columnId}, stationId **– идентификатор станции 215 +**/integration/ping?apikey={apikey}&stationId={stationId}&columnId={columnId}, stationId **– идентификатор станции 262 262 263 263 **columnId **– идентификатор ТРК 264 264