Серьезная проблема. Ошибка "Вы не можете заменить заявку XYZ. Повторите попытку позже"

Страницы: 1
RSS
Серьезная проблема. Ошибка "Вы не можете заменить заявку XYZ. Повторите попытку позже"
 
Сегодня впервые столкнулся с этой проблемой. Терминал версии 9.3.3.3. Проблема выглядит серьезной, поэтому хотелось бы привлечь внимание разработчиков терминала.

Согласно документации терминала, функция sendTransaction() возвращает сообщение с текстом ошибки, если транзакция не была отправлена на сервер, иначе транзакция считается отправленной. Это создает необходимые условия для построения надежной логики обработки результатов транзакций:

1. Вызываем sendTransaction()
2. Если возникла ошибка, реагируем (например, посылаем транзакцию повторно или отказываемся от нее)
3. Если ошибки не возникло, от ждем срабатывания OnTransReply() с соответствующим значением поля trans_id, чтобы получить состояние отправленной транзакции в поле status
4. Если значение status сигнализирует об ошибке, реагируем (например, посылаем транзакцию повторно или отказываемся от нее)
5. Иначе транзакция успешно отправлена.

Скрипт, использующий эту логику, сегодня впервые дважды завис на этапе ожидания OnTransReply(), т.к. событие терминалом просто не было сгенерировано. При этом предшествующий вызов sendTransaction() прошел без ошибок и вернул пустую строку.

В обоих случаях, речь шла о транзакции для перемещения ордера (MOVE_ORDERS). Такие транзакции периодически генерируют ошибки, т.к. передвигаемый ордер может быть исполнен в момент перемещения. Однако эти ошибки возвращаются через OnTransReply() со следующими сообщениями:

- "Не найдена активная заявка для перестановки"
- "Ошибка перестановки заявок. [GW][50] "Не найдена заявка для перестановки."

Но в обоих проблемных случаях сегодня, в окне сообщений терминала я видел сообщение вида: "Вы не можете заменить заявку 1892947247341804353. Повторите попытку позже."

Таким образом, возникает ситуация, когда код не получает никакой возможности обработать ошибку (sendTransaction() выполняется успешно, OnTransReply() не приходит).

Хотел бы услышать комментарии разработчиков.
 
Здравствуйте.

Прежде всего приносим извинения за длительную задержку с ответом.

Диагностика "Вы не можете заменить заявку ХХХ. Повторите попытку позже" означает, что в момент замены заявки на сервере её ещё не было. Такое поведение, как правило, вызывается задержками.

Если на текущий момент Вы до сих пор сталкиваетесь с данной проблемой, то просьба обратиться к Вашему брокеру, чтобы он составил соответствующее обращение к нам (обращаясь к брокеру, уточните, пожалуйста, номер конкретной транзакци).

В случае обращения, данная проблема будет решаться совместно с Ваши брокером.
Страницы: 1
Читают тему
Наверх