Доработка торгового терминала - добавить возможность запрашивать состояние токенов и отдавать поручение на продажу и покупку посредством HTTP API
20 000 руб. за проект
Требуется добавить в существующую программу торгового терминала (здесь и далее - “терминал”) возможность запрашивать состояние токенов и отдавать поручение на продажу и покупку посредством HTTP API (вместо существующего способа посредством telegramm). Требуется обеспечить безопасность передачи данных в обе стороны, чтобы исключить возможность утечки или подмены данных. Терминал должен предоставлять endpoints для следующих запросов:
1. Узнать состояние токена по его названию. В ответ отправляется строка, характеризующая состояние токена: не в работе, получен запрос на покупку, куплен, получен запрос на продажу.
2. Отправить запрос на покупку токена. Основной параметр - название токена, дополнительные параметры оговариваются с заказчиком отдельно.
3. Отправить запрос на продажу токена. Основной параметр - название токена
4. Возможно добавление дополнительных параметров
Обеспечение безопасного соединения.
Предлагается рассмотреть следующие подходы к обеспечению безопасности передачи данных:
Вариант1: использование HTTPS и дайджест-аутентификации
В этом варианте пароль хранится в открытом виде на стороне терминала и на стороне каждого из клиентов, который будет взаимодействовать с терминалом. Накладные расходы по настройке HTTPS (покупка сертификата, сетевые настройки и т.д.) на стороне терминала нужно отдельно обсудить с заказчиком.
Вариант 2: использование симметричного шифрования
В этом варианте для транспорта используется открытое (незашифрованное) соединение HTTP, при этом данные как запроса (HTTP request body), так и ответа (HTTP response body) шифруются при помощи алгоритма симметричного шифрования, используя ключ, заранее известный обеим сторонам. Для упрощения разработки алгоритм предлагается выбрать из тех, которые доступны в стандартной библиотеке Java и Python (например, AES-128). Алгоритм должен обладать базовой стойкостью к перебору и не должен требовать значительных вычислительных ресурсов. В этом варианте ключ генерируется заказчиком и передаётся разработчику терминала. Реализуя этот вариант, нужно предусмотреть отдельный endpoint для обновления ключа.
Запуск терминала на удалённом сервере
1. Узнать состояние токена по его названию. В ответ отправляется строка, характеризующая состояние токена: не в работе, получен запрос на покупку, куплен, получен запрос на продажу.
2. Отправить запрос на покупку токена. Основной параметр - название токена, дополнительные параметры оговариваются с заказчиком отдельно.
3. Отправить запрос на продажу токена. Основной параметр - название токена
4. Возможно добавление дополнительных параметров
Обеспечение безопасного соединения.
Предлагается рассмотреть следующие подходы к обеспечению безопасности передачи данных:
Вариант1: использование HTTPS и дайджест-аутентификации
В этом варианте пароль хранится в открытом виде на стороне терминала и на стороне каждого из клиентов, который будет взаимодействовать с терминалом. Накладные расходы по настройке HTTPS (покупка сертификата, сетевые настройки и т.д.) на стороне терминала нужно отдельно обсудить с заказчиком.
Вариант 2: использование симметричного шифрования
В этом варианте для транспорта используется открытое (незашифрованное) соединение HTTP, при этом данные как запроса (HTTP request body), так и ответа (HTTP response body) шифруются при помощи алгоритма симметричного шифрования, используя ключ, заранее известный обеим сторонам. Для упрощения разработки алгоритм предлагается выбрать из тех, которые доступны в стандартной библиотеке Java и Python (например, AES-128). Алгоритм должен обладать базовой стойкостью к перебору и не должен требовать значительных вычислительных ресурсов. В этом варианте ключ генерируется заказчиком и передаётся разработчику терминала. Реализуя этот вариант, нужно предусмотреть отдельный endpoint для обновления ключа.
Запуск терминала на удалённом сервере
В заказе есть исполнитель
При переводе заказа из архивного в актуальный, текущий исполнитель будет снят с задачи.
Выберите тип сделки
С безопасной сделкой вы всегда сможете вернуть средства, если что-то пойдет не так. С простой сделкой вы самостоятельно договариваетесь с исполнителем об оплате и берете на себя решение конфликтов.