Изменения документа Протокол интеграции систем внешних наливов с Топаз "Web Офис"
Редактировал(а) Dmitriy 2026/04/23 06:18
От версии 18.1
отредактировано Ярослава Ерина
на 2024/09/25 08:48
на 2024/09/25 08:48
Изменить комментарий:
К данной версии нет комментариев
К версии 9.2
отредактировано Ярослава Ерина
на 2024/07/30 05:35
на 2024/07/30 05:35
Изменить комментарий:
К данной версии нет комментариев
Сводка
-
Свойства страницы (1 изменено, 0 добавлено, 0 удалено)
Подробности
- Свойства страницы
-
- Содержимое
-
... ... @@ -14,27 +14,17 @@ 14 14 15 15 После получения информации по указанным пунктам, от ООО "Топаз-сервис" будет предоставлен тестовый доступ для настройки интеграции. 16 16 17 -Также будет предоставлен секретный ключ (тестового и боевого окружения) для идентификации системы внешних наливов в Топаз "Web Офис". 17 +Также будет предоставлен секретный ключ (тестового и боевого окружения) для идентификации системы внешних наливов в Топаз "Web Офис". Данный ключ необходимо будет передавать во всех запросах от внешней системы в Топаз "Web Офис" в заголовке externalSystemApikey 18 18 19 -(% class="box errormessage" %) 20 -((( 21 -Данный ключ необходимо будет передавать во всех запросах от внешней системы в Топаз "Web Офис" в заголовке externalSystemApikey 22 -))) 23 - 24 -== Адрес для отправки запросов == 25 - 26 -Базовым адресом **(baseUrl)** для выполнения запросов является [[https:~~/~~/topazoffice.ru/ms/external-fueling/integration>>https://topazoffice.ru/ms/external-fueling/integration]] 27 - 28 28 == Получение списка АЗС и их конфигураций == 29 29 30 -Внешняя система опрашивает Топаз "Web Офис" для получения списка АЗС и их конфигураций **через HTTP **запрос на ** baseUrl **с префиксом **/station?apikey={apikey **}, запрос типа **GET **, timeout 10 секунд.21 +Внешняя система опрашивает Топаз "Web Офис" для получения списка АЗС и их конфигураций **через HTTP **запрос на **url **с префиксом **/integration/station?apikey={apikey **}, запрос типа **GET **, timeout 10 секунд. 31 31 32 32 В ответ Топаз "Web Офис" дает ответ в формате **JSON** 33 33 34 34 **...** 35 35 36 -{{code language="javascript"}} 37 -{ 27 +**{{code language="javascript"}}{ 38 38 // идентификатор станции АЗС 39 39 string Id 40 40 // статус станции: true – доступна, false – выключена ... ... @@ -57,9 +57,10 @@ 57 57 "Fuels": [ "a92", "a95", "diesel_premium", ... N ] 58 58 } 59 59 } ... N 60 -} 61 -{{/code}} 50 +}{{/code}}** 62 62 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 + 63 63 **Возможные идентификаторы топлива** 64 64 65 65 |ID|Марка ... ... @@ -79,83 +79,41 @@ 79 79 80 80 == Получение прайс-листа == 81 81 82 -Внешняя система опрашивает Топаз "Web Офис" для получения прайс-листа **HTTP **запросом на ** baseUrl **с префиксом **/price?apikey={apikey} **, запрос типа **GET **, timeout 10секунд.73 +Внешняя система опрашивает Топаз "Web Офис" для получения прайс-листа **HTTP **запросом на **url **с префиксом **/integration/price?apikey={apikey} **, запрос типа **GET **, timeout 10секунд. 83 83 84 -В ответ Топаз "Web Офис" дает ответ в формате **JSON** {{{}}}75 +В ответ Топаз "Web Офис" дает ответ в формате **JSON** 85 85 77 +{{{{ { // идентификатор станции внутри Топаз "Web Офис" string StationId, // идентификатор топлива string ProductId, // цена за 1 литр double Price }, …. N }}}} 78 + 79 + 86 86 {{code language="javascript"}} 87 87 { 88 - { 89 - // идентификатор станции внутри Топаз "Web Офис" 90 - string StationId, 91 - // идентификатор топлива 92 - string ProductId, 93 - // цена за 1 литр 94 - double Price 95 - }, 96 -…. N 82 +{ 83 +// идентификатор станции внутри Топаз "Web Офис" 84 +string StationId, 85 +// идентификатор топлива 86 +string ProductId, 87 +// цена за 1 литр 88 +double Price 89 +}, …. N 97 97 } 98 98 {{/code}} 99 99 100 100 94 +**Пример ответа** 101 101 102 - **Примерответа**{{{}}}96 +{{{{ {“StationId”: “0001”, “ProductId”: “a92”, “Price”: 38.66}, {“StationId”: “0001”, “ProductId”: “a95_premium”, “Price”: 45.21}, {“StationId”: “0002”, “ProductId”: “a92”, “Price”: 38.98}, }}}} 103 103 104 -{{code language="javascript"}} 105 -{ 106 -{“StationId”: “0001”, “ProductId”: “a92”, “Price”: 38.66}, 107 -{“StationId”: “0001”, “ProductId”: “a95_premium”, “Price”: 45.21}, 108 -{“StationId”: “0002”, “ProductId”: “a92”, “Price”: 38.98}, 109 -} 110 -{{/code}} 111 - 112 112 == Обработка заказа == 113 113 114 114 [[image:https://wiki.topazelectro.ru/download/attachments/1179735/image2023-1-19_16-21-33.png?version=1&modificationDate=1716374642000&api=v2]] 115 115 116 -Информирование Топаз "Web Офис" о заказе и их статусах осуществляется **HTTP **запросом на ** baseUrl **с префиксом **/order **, запрос типа **POST **, timeout 10 секунд.102 +Информирование Топаз "Web Офис" о заказе и их статусах осуществляется **HTTP **запросом на **url **с префиксом **/integration/order **, запрос типа **POST **, timeout 10 секунд. 117 117 118 118 119 -**Тело запроса содержит JSON вида Order** {{{}}}105 +**Тело запроса содержит JSON вида Order** 120 120 121 -{{code language="none"}} 122 -{ 123 -// идентификатор заказа 124 -string Id 125 -// дата и время создания в UTC, формат даты yyyy-MM-dd'T'HH:mm:ss.SSSSSSS'Z' либо yyyy-MM-dd HH:mm:ss 126 -String DateCreate 127 -// значение заказа 128 -double OrderVolume 129 -// идентификатор станции АЗС 130 -string StationExtendedId 131 -// номер колонки 132 -int ColumnId 133 -// идентификатор топлива 134 -string FuelId 135 -// стоимость 1 литра топлива 136 -double PriceFuel 137 -// сумма заказа 138 -double Sum 139 -// кол-во литров 140 -double Litre 141 -// итого оплачено 142 -double SumPaid 143 -// статус заказа 144 -OrderStatus Status 145 -// дата и время завершения заказа UTC, формат даты yyyy-MM-dd'T'HH:mm:ss.SSSSSSS'Z' либо yyyy-MM-dd HH:mm:ss 146 -String DateEnd 147 -// идентификатор причины отмены заказа 148 -string ReasonId 149 -// причина отмены 150 -string Reason 151 -// итого сумма литров залито 152 -double LitreCompleted 153 -// итого оплачено по завершению заказа 154 -double SumPaidCompleted 155 -// идентификатор договора 156 -string ContractId 157 -} 158 -{{/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 }}}} 159 159 160 160 Параметр **OrderType **– тип заказа может принимать следующие значения: 161 161 ... ... @@ -191,7 +191,7 @@ 191 191 192 192 В случае если внешняя система дала ответ, отличный от **200 ОК **, то Топаз "Web Офис" отсылает статус Canceled и прекращает обработку заказ 193 193 194 -** baseUrl + /api/order/accept POST**143 +**базовый url + /api/order/accept POST** 195 195 196 196 **apikey={apikey}&orderId={ordeId}** 197 197 ... ... @@ -205,7 +205,7 @@ 205 205 206 206 В случае если внешняя система дала ответ, отличный от **200 ОК **, то Топаз "Web Офис" отсылает статус Canceled и прекращает обработку заказ 207 207 208 -** baseUrl+ /api/order/fueling POST**157 +**базовый url + /api/order/fueling POST** 209 209 210 210 **apikey={apikey}&orderId={ordeId}** 211 211 ... ... @@ -215,7 +215,7 @@ 215 215 216 216 Данный статус сообщает внешней системе о том, что заказ следует отменить 217 217 218 -** baseUrl+ /api/order/canceled**167 +**базовый url + /api/order/canceled** 219 219 220 220 **POST** 221 221 ... ... @@ -231,7 +231,7 @@ 231 231 232 232 В случае если внешняя система дала ответ отличный от **200 ОК **, то Топаз "Web Офис" отсылает запросы с некоторым отложенным количеством времени до момента получения ответа **200 ОК** 233 233 234 -** baseUrl+ /api/order/completed POST**183 +**базовый url + /api/order/completed POST** 235 235 236 236 **apikey={apikey}&orderId={ordeId}&litre={litre}&extendedOrderId={extendedOrderId}&** 237 237 ... ... @@ -249,7 +249,7 @@ 249 249 250 250 Для этого с периодичностью от 5 – 10 секунд Топаз "Web Офис" выполняет следующий запрос 251 251 252 -** baseUrl + /api/order/volume**201 +**базовый url + /api/order/volume** 253 253 254 254 **POST** 255 255 ... ... @@ -261,9 +261,9 @@ 261 261 262 262 == Проверка статуса работы станции == 263 263 264 -Перед формирование заказ внешняя система делает запрос на станцию для определения доступности и готовности станции принять заказ **baseUrl**с префиксом213 +Перед формирование заказ внешняя система делает запрос на станцию для определения доступности и готовности станции принять заказ url с префиксом 265 265 266 -**/ping?apikey={apikey}&stationId={stationId}&columnId={columnId}, stationId **– идентификатор станции 215 +**/integration/ping?apikey={apikey}&stationId={stationId}&columnId={columnId}, stationId **– идентификатор станции 267 267 268 268 **columnId **– идентификатор ТРК 269 269