Как читать журнал событий
Интерпретация логов интернет-заказов
Получение списка валют
При запросе списка валют (запрос currency) события в журнале событий будут выглядеть следующим образом (примерный сценарий!).
На входе делается проверка по sid (неуспешные попытки не пишутся в логи, чтобы не спамили логи):
Authorization successful
Затем проверяется наличие лицензии:
Checking master lincense for object 199994545
Master lincense is actual for object 199994545
Если лицензия действительна, то далее делается запрос списка валют из кэша:
Get data of currencies for object=199994545
Get a list of currency for objectId=199994545
Данные в кэше устарели или их там нет, надо запрашивать у RK7:
Demand a data of currencies from RK7 directly
Данные запрашиваются в фоновом режиме. Однако, если возвратить пользователю нечего, то приходится ожидать ответа от RK7:
List of currency is empty. Waiting, while will load list to cache from RK7 throuth WS.
Send a request to WS: objectId=199994545, taskGUID=c133d79d-8cc0-435b-a388-f993630d9468
Запрос «ушел» к WS:
WsApi:
taskGUID=c133d79d-8cc0-435b-a388-f993630d9468,
size=390,
filename=request_c133d79d-8cc0-435b-a388-f993630d9468.xml,
<RQ cmd="exec_rk7call" tasktype="any_call" callback="http://172.22.5.223:5000/api/v1/callback/c133d79d-8cc0-435b-a388-f993630d9468" guid="c133d79d-8cc0-435b-a388-f993630d9468" timeout="90"><PARAM name="object_id" val="199994545"/><RK7Query><RK7CMD CMD="GetRefData" RefName="Currencies" IgnoreEnums="1" WithMacroProp="1" OnlyActive="1" PropMask="items.(ident, name, gen*)"/> </RK7Query></RQ>
Ответ WS:
WsApi:
taskGUID=c133d79d-8cc0-435b-a388-f993630d9468,
size=119,
filename=response_c133d79d-8cc0-435b-a388-f993630d9468.xml,
<?xml version="1.0" encoding="utf-8"?> <RP taskguid="27c800a0-64e6-4994-9250-fc12c92231f4" code="0" version="1.9.0" />
WS успешно принял наш запрос- ждём ответа:
Request was sent to WS successfuly: 199994545, taskGUID=c133d79d-8cc0-435b-a388-f993630d9468
Waiting an answer from WS: 199994545, taskGUID=c133d79d-8cc0-435b-a388-f993630d9468
WS передал ответ от RK7:
Callback procedure has executed:
taskGUID=c133d79d-8cc0-435b-a388-f993630d9468,
size=1645,
filename=callback_c133d79d-8cc0-435b-a388-f993630d9468.xml
<?xml version="1.0" encoding="UTF-8"?>
<RP cmdguid="27c800a0-64e6-4994-9250-fc12c92231f4" posid="7D3B75E3-761E-4BD5-BDD2-BF9931D7E68A">
<RK7QueryResult ServerVersion="7.6.0.108" XmlVersion="244" NetName="TEST_MIDSRV" Status="Ok" CMD="GetRefData" ErrorText="" DateTime="2019-01-18T15:42:06" WorkTime="0" Processed="1">
<RK7Reference DataVersion="35" ClassName="TCurrencies">
<Items>
<Item Ident="1" Name="Рубли" genForDelivery="1"/>
<Item Ident="2" Name="Евро" genForDelivery="1"/>
<Item Ident="3" Name="Доллар США" genForDelivery="1"/>
<Item Ident="4" Name="VISA" genForDelivery=""/>
<Item Ident="5" Name="Master Card" genForDelivery=""/>
<Item Ident="6" Name="American Express" genForDelivery=""/>
<Item Ident="7" Name="Diners Club" genForDelivery=""/>
<Item Ident="8" Name="Euro Cirrus Maestro" genForDelivery=""/>
<Item Ident="9" Name="JCB" genForDelivery=""/>
<Item Ident="10" Name="ПДС оплата" genForDelivery=""/>
<Item Ident="11" Name="Безнал" genForDelivery=""/>
<Item Ident="12" Name="номер" genForDelivery=""/>
<Item Ident="100369" Name="Жетоны" genForDelivery=""/>
<Item Ident="100384" Name="Фишки" genForDelivery=""/>
<Item Ident="100385" Name="Фантики" genForDelivery=""/>
<Item Ident="100401" Name="ооо гарус" genForDelivery=""/>
<Item Ident="100465" Name="Талоны" genForDelivery=""/>
<Item Ident="100733" Name="Бенал_1" genForDelivery=""/>
<Item Ident="1000033" Name="Купон на бар" genForDelivery="1"/>
<Item Ident="1000221" Name="Бесплатно" genForDelivery="1"/>
</Items>
</RK7Reference>
</RK7QueryResult>
</RP>
Констатируем факт, что ответ от WS корректный и разбираем его:
Answer was received from WS successfuly: 199994545, taskGUID=c133d79d-8cc0-435b-a388-f993630d9468
Parse answer from WS
Пришедший ответ передан в для дальнейшей обработки в исходную процедуру (api/v1/Currency):
Return answer from WS
Новые данные кэшируем:
Loading data to cache from RK7 throuth WS was successful
Extract data of currencies from cache
Extracting data of currencies from cache was successful.
Преобразуем в JSON:
Transfer data from RK format to JSON format
Prepare data for response
Возвращаем ответ:
{"data":[{"curid":1,"name":"Рубли","promised":""},{"curid":2,"name":"Евро","promised":""},{"curid":3,"name":"Доллар США","promised":""},{"curid":1000033,"name":"Купон на бар","promised":""},{"curid":1000221,"name":"Бесплатно","promised":""}],"ver":"1.2.17.24","timestamp":"2019-01-18T15:42:06","status":"Ok","requestId":"71547412cf1845d487196ae4f8bd8d74"}
Получение заказа
При запросе данных по заказу (запрос order) события в журнале событий будут выглядеть следующим образом (примерный сценарий!).
На входе делается проверка по sid (неуспешные попытки не пишутся в логи, чтобы не спамили логи):
Authorization successful
Затем проверяется наличие лицензии:
Checking master lincense for object 199994545
Master lincense is actual for object 199994545
Если лицензия действительна, то далее делается запрос заказа через WS. Эта строка отмечает начало выполнения запроса:
Create request for WS: objectId=199994545, visitId=449382193
Далее выполняется сам запрос. Начинается с формирования команды для RK7 на получения данных по заказу:
Create command 'Get order': visitId=449382193
Command 'Get order' was created: visitId=449382193
Созданная команда отсылается на WS:
Send request to WS: taskGUID=37cdc62b-b198-433b-9bdf-cd97506eaa67, objectId=199994545
Подробное описание посылаемой команды:
WsApi:
taskGUID=37cdc62b-b198-433b-9bdf-cd97506eaa67,
size=416,
filename=request_37cdc62b-b198-433b-9bdf-cd97506eaa67.xml,
<?xml version="1.0" encoding="utf-16"?>
<RQ cmd="exec_rk7call" tasktype="any_call" callback="http://172.22.5.223:5000/api/v1/callback/37cdc62b-b198-433b-9bdf-cd97506eaa67" guid="37cdc62b-b198-433b-9bdf-cd97506eaa67" timeout="90">
<PARAM name="object_id" val="199994545" />
<RK7Query>
<RK7Command CMD="GetOrder">
<Order orderIdent="256" visit="449382193" />
</RK7Command>
</RK7Query>
</RQ>
Ответ WS:
WsApi:
taskGUID=37cdc62b-b198-433b-9bdf-cd97506eaa67,
size=119,
filename=response_37cdc62b-b198-433b-9bdf-cd97506eaa67.xml,
<?xml version="1.0" encoding="utf-8"?>
<RP taskguid="b0840921-1eee-4bc8-9523-58cbea112bdf" code="0" version="1.9.0" />
Констатируем факт, что запрос в WS ушёл успешно и ждем ответа от RK7:
Request was sent to WS successfuly, wait an answer: taskGUID=37cdc62b-b198-433b-9bdf-cd97506eaa67, objectId=199994545
Пришел ответ от RK7 через WS:
Callback procedure has executed:
taskGUID=37cdc62b-b198-433b-9bdf-cd97506eaa67,
size=544,
filename=callback_37cdc62b-b198-433b-9bdf-cd97506eaa67.xml
<?xml version="1.0" encoding="UTF-8"?>
<RP cmdguid="b0840921-1eee-4bc8-9523-58cbea112bdf" posid="7D3B75E3-761E-4BD5-BDD2-BF9931D7E68A">
<RK7QueryResult ServerVersion="7.6.0.108" XmlVersion="244" NetName="TEST_MIDSRV" Status="Query Executing Error" Processed="0" ErrorText="No order 449382193.1 (1AC9073100000100H)." RK7ErrorN="2006">
<CommandResult CMD="GetOrder" Status="Query Executing Error" ErrorText="No order 449382193.1 (1AC9073100000100H)." DateTime="2019-01-18T15:13:02" WorkTime="0" RK7ErrorN="2006"/>
</RK7QueryResult>
</RP>
Пришедший ответ передан в для дальнейшей обработки в исходную процедуру (api/v1/Order):
An answer was received from WS: taskGUID=37cdc62b-b198-433b-9bdf-cd97506eaa67, objectId=199994545
Разбор ответ:
Parse answer from WS
Возврат ответа пользователю:
Return parsing answer from WS
{"ver":"1.2.17.24","timestamp":"2019-01-18T15:13:02","status":"Err","requestId":"6f81481401ae4e8a9e47fb4c7850d7d9","error":[{"code":"DLW-0017","text":"RK7 order creation error","details":"[2006] No order 449382193.1 (1AC9073100000100H)."}]}