Изменения документа Протокол интеграции систем внешних наливов с Топаз "Web Офис"
Редактировал(а) Dmitriy 2026/04/23 06:18
От версии 18.1
отредактировано Ярослава Ерина
на 2024/09/25 08:48
на 2024/09/25 08:48
Изменить комментарий:
К данной версии нет комментариев
К версии 1.1
отредактировано Ярослава Ерина
на 2024/07/17 12:36
на 2024/07/17 12:36
Изменить комментарий:
К данной версии нет комментариев
Сводка
-
Свойства страницы (1 изменено, 0 добавлено, 0 удалено)
Подробности
- Свойства страницы
-
- Содержимое
-
... ... @@ -14,51 +14,48 @@ 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 -{ 38 -// идентификатор станции АЗС 39 -string Id 40 -// статус станции: true – доступна, false – выключена 41 -bool Enable, 42 -// наименование станции 43 -string Name, 44 -// адрес станции 45 -string Address, 46 -// гео точка на карте 47 -location Location 48 -{ 49 -double Lat, 50 -double Lon }, 51 -// словарь доступных ТРК 52 -Dictionary Columns { 53 -// номер колонки 54 -(int32) Key: 55 -{ 56 -// список доступных типов топлива 57 -"Fuels": [ "a92", "a95", "diesel_premium", ... N ] 58 -} 59 -} ... N 60 -} 61 -{{/code}} 27 +{{{{ 28 + // идентификатор станции АЗС 29 + string Id 30 + // статус станции: true – доступна, false – выключена 31 + bool Enable, 32 + // наименование станции 33 + string Name, 34 + // адрес станции 35 + string Address, 36 + // гео точка на карте 37 + location Location { 38 + double Lat, 39 + double Lon 40 + }, 41 + // словарь доступных ТРК 42 + Dictionary Columns 43 + { 44 + // номер колонки (int32) 45 + Key: { 46 + // список доступных типов топлива 47 + "Fuels": [ 48 + "a92", 49 + "a95", 50 + "diesel_premium", 51 + ... 52 + N 53 + ] 54 + } 55 + } 56 + ... 57 + N 58 +}}}} 62 62 63 63 **Возможные идентификаторы топлива** 64 64 ... ... @@ -79,83 +79,75 @@ 79 79 80 80 == Получение прайс-листа == 81 81 82 -Внешняя система опрашивает Топаз "Web Офис" для получения прайс-листа **HTTP **запросом на ** baseUrl **с префиксом **/price?apikey={apikey} **, запрос типа **GET **, timeout 10секунд.79 +Внешняя система опрашивает Топаз "Web Офис" для получения прайс-листа **HTTP **запросом на **url **с префиксом **/integration/price?apikey={apikey} **, запрос типа **GET **, timeout 10секунд. 83 83 84 -В ответ Топаз "Web Офис" дает ответ в формате **JSON** {{{}}}81 +В ответ Топаз "Web Офис" дает ответ в формате **JSON** 85 85 86 -{{code language="javascript"}} 87 -{ 88 - { 89 - // идентификатор станции внутри Топаз "Web Офис" 90 - string StationId, 91 - // идентификатор топлива 92 - string ProductId, 93 - // цена за 1 литр 94 - double Price 95 - }, 96 -…. N 97 -} 98 -{{/code}} 83 +{{{{ 84 + { 85 + // идентификатор станции внутри Топаз "Web Офис" 86 + string StationId, 87 + // идентификатор топлива 88 + string ProductId, 89 + // цена за 1 литр 90 + double Price 91 + }, 92 + …. N 93 +}}}} 99 99 95 +**Пример ответа** 100 100 97 +{{{{ 98 + {“StationId”: “0001”, “ProductId”: “a92”, “Price”: 38.66}, 99 + {“StationId”: “0001”, “ProductId”: “a95_premium”, “Price”: 45.21}, 100 + {“StationId”: “0002”, “ProductId”: “a92”, “Price”: 38.98}, 101 +}}}} 101 101 102 -**Пример ответа**{{{}}} 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 секунд.107 +Информирование Топаз "Web Офис" о заказе и их статусах осуществляется **HTTP **запросом на **url **с префиксом **/integration/order **, запрос типа **POST **, timeout 10 секунд. 117 117 118 118 119 -**Тело запроса содержит JSON вида Order** {{{}}}110 +**Тело запроса содержит 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}} 112 +{{{{ 113 + // идентификатор заказа 114 + string Id 115 + // дата и время создания в UTC, формат даты yyyy-MM-dd'T'HH:mm:ss.SSSSSSS'Z' либо yyyy-MM-dd HH:mm:ss 116 + String DateCreate 117 + // значение заказа 118 + double OrderVolume 119 + // идентификатор станции АЗС 120 + string StationExtendedId 121 + // номер колонки 122 + int ColumnId 123 + // идентификатор топлива 124 + string FuelId 125 + // стоимость 1 литра топлива 126 + double PriceFuel 127 + // сумма заказа 128 + double Sum 129 + // кол-во литров 130 + double Litre 131 + // итого оплачено 132 + double SumPaid 133 + // статус заказа 134 + OrderStatus Status 135 + // дата и время завершения заказа UTC, формат даты yyyy-MM-dd'T'HH:mm:ss.SSSSSSS'Z' либо yyyy-MM-dd HH:mm:ss 136 + String DateEnd 137 + // идентификатор причины отмены заказа 138 + string ReasonId 139 + // причина отмены 140 + string Reason 141 + // итого сумма литров залито 142 + double LitreCompleted 143 + // итого оплачено по завершению заказа 144 + double SumPaidCompleted 145 + // идентификатор договора 146 + string ContractId 147 +}}}} 159 159 160 160 Параметр **OrderType **– тип заказа может принимать следующие значения: 161 161 ... ... @@ -162,6 +162,7 @@ 162 162 * **Money **– заправка на фиксированную сумму, **OrderVolume **– сумма рублей 163 163 * **Liters **– заправка на литры, **OrderVolume **– кол-вол литров 164 164 154 + 165 165 Параметр **Status **– статус заказа может принимать следующие значения 166 166 167 167 * **OrderCreated **– заказ создан и полностью оплачен ... ... @@ -170,6 +170,7 @@ 170 170 * **StationCanceled **– заказ отменен оператором АЗС или же Топаз "Web Офис" 171 171 * **UserCanceled **– заказ отменен пользователем 172 172 163 + 173 173 Параметр **ContractId **– стандартными типами договора, по которому обрабатывается заказ 174 174 175 175 * **Individual **– договор возмездного оказания услуг (физические лица) ... ... @@ -191,7 +191,7 @@ 191 191 192 192 В случае если внешняя система дала ответ, отличный от **200 ОК **, то Топаз "Web Офис" отсылает статус Canceled и прекращает обработку заказ 193 193 194 -** baseUrl + /api/order/accept POST**185 +**базовый 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**199 +**базовый 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**209 +**базовый 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**225 +**базовый 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**243 +**базовый url + /api/order/volume** 253 253 254 254 **POST** 255 255 ... ... @@ -261,9 +261,9 @@ 261 261 262 262 == Проверка статуса работы станции == 263 263 264 -Перед формирование заказ внешняя система делает запрос на станцию для определения доступности и готовности станции принять заказ **baseUrl**с префиксом255 +Перед формирование заказ внешняя система делает запрос на станцию для определения доступности и готовности станции принять заказ url с префиксом 265 265 266 -**/ping?apikey={apikey}&stationId={stationId}&columnId={columnId}, stationId **– идентификатор станции 257 +**/integration/ping?apikey={apikey}&stationId={stationId}&columnId={columnId}, stationId **– идентификатор станции 267 267 268 268 **columnId **– идентификатор ТРК 269 269