Обновление магазина: связь с продавцами и безопасные цифровые загрузки

10 сентября 2026 г.

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

Связь с продавцом — спросите перед покупкой

Хотели когда-нибудь задать владельцу магазина вопрос о продукте перед покупкой? Теперь вы можете.

У каждой карточки товара в магазине теперь есть кнопка «Связаться с продавцом». Нажмите её, введите свой вопрос (до 1024 символов) и отправьте. Владелец магазина получает мгновенное уведомление в реальном времени через Server-Sent Events (SSE) — без необходимости обновлять страницу. Он может ответить прямо из Панели владельца магазина, и вы получите уведомление, когда он ответит.

Как это работает

  1. Покупатель нажимает «Связаться с продавцом» на любом товаре
  2. Вводит вопрос (максимум 1024 символа)
  3. Продавец получает мгновенное всплывающее уведомление через SSE с предпросмотром сообщения
  4. Продавец открывает раздел «Запросы» в своей панели и отвечает
  5. Покупатель получает уведомление через SSE о том, что продавец ответил

Ограничение частоты

Для предотвращения спама каждый покупатель может иметь не более 5 открытых запросов на один товар за 24 часа. Это делает систему управляемой для продавцов, предоставляя покупателям достаточно места для уточняющих вопросов.

Доступно на 23 языках

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


Безопасные цифровые загрузки — доставка файлов с проверкой на вирусы

Владельцы магазинов теперь могут загружать файлы для скачивания (PDF, изображения, аудио, видео, EPUB) для своих цифровых продуктов. После оплаты покупателем файлы появляются в разделе «Мои загрузки» в магазине.

Многоуровневая безопасность (глубокоэшелонированная защита)

Безопасность была нашим главным приоритетом при создании этой функции. Мы внедрили девять уровней защиты, чтобы гарантировать, что вредоносное ПО не попадёт к нашим игрокам:

#УровеньЧто делает
1Список разрешённых типов файловПринимаются только безопасные типы документов/медиа: PDF, PNG, JPG, GIF, WebP, TXT, Markdown, MP3, MP4, WebM, OGG, EPUB. Никаких исполняемых файлов, скриптов или архивов, которые могут содержать скрипты.
2Проверка magic-байтовФактическое содержимое файла должно соответствовать его расширению. Файл с именем photo.png должен действительно начинаться с PNG magic-байтов. Переименование malware.exe в malware.pdf не сработает.
3Ограничение размера 50 МБЖёсткое ограничение размера загрузки предотвращает отказ в обслуживании через большие файлы.
4Проверка на вирусы ClamAVКаждый файл проверяется ClamAV (работающим как Docker sidecar) с использованием протокола INSTREAM. Если ClamAV обнаруживает угрозу, загрузка отклоняется. Если ClamAV недоступен в продакшене, загрузки также отклоняются — мы никогда не храним непроверенные файлы.
5Хеширование SHA-256Каждый сохранённый файл хешируется, и хеш записывается в базу данных. Это обеспечивает проверку целостности и аудит.
6Блокировка двойного расширенияФайлы вроде document.pdf.exe отклоняются. Разрешены только одиночные расширения.
7Нет прямого веб-доступаФайлы загрузки хранятся вне корневого веб-каталога. Не существует пути в nginx, который обслуживает их напрямую. Единственный способ получить доступ к файлу — через аутентифицированный обработчик загрузки.
8Аутентифицированный обработчик загрузкиEndpoint загрузки проверяет, что запрашивающий пользователь владеет заказом, заказ оплачен, а файл загрузки принадлежит продукту из этого заказа. Нет заказа — нет доступа.
9Подсчёт загрузокКаждый файл может быть загружен максимум 10 раз на заказ. Это предотвращает злоупотребление, если ссылка на загрузку каким-то образом утекла.

Как это работает для владельцев магазинов

  1. Отметьте ваш продукт как «цифровой» при создании или редактировании
  2. Нажмите новую кнопку «Загрузки» на продукте
  3. Загрузите файл (максимум 50 МБ, только разрешённые типы)
  4. Файл автоматически проверяется ClamAV
  5. Вы увидите зелёный значок «проверено», когда файл пройдёт проверку
  6. Отображается хеш SHA-256 для верификации

Как это работает для покупателей

  1. Купите цифровой продукт и завершите оплату
  2. Раздел «Мои загрузки» появится в боковой панели магазина
  3. Нажмите Скачать — файл предоставляется как безопасная загрузка blob
  4. Ваш счётчик загрузок показывает, сколько загрузок осталось (10 на файл)

А как же существующая доставка Fragment/CTTC?

Существующая автоматическая доставка Fragment Pieces и CTTC Pieces продолжает работать точно так же, как и раньше. Новая система загрузки — это дополнительный механизм доставки для любых других цифровых файлов, которые владелец магазина хочет прикрепить к своим продуктам.


Технические детали

  • Бэкенд: Go game-service с PostgreSQL. Новые таблицы базы данных обрабатывают сообщения между покупателем и продавцом, а также метаданные/права доступа к файлам.
  • ClamAV: Работает как Docker sidecar контейнер рядом с game-service. Связь через TCP с использованием протокола INSTREAM.
  • SSE: Уведомления в реальном времени используют существующую инфраструктуру Server-Sent Events. Новые события уведомляют продавца о входящих запросах и покупателя об ответах.
  • Фронтенд: Ванильный JavaScript с i18n. 28 новых ключей перевода в 25 языковых файлах.
  • Хранилище: Файлы загрузки хранятся вне корневого веб-каталога, доступны только через аутентифицированный API.

Что дальше?

Эти функции в настоящее время развёртываются на нашем MAAS staging-сервере для тестирования. После проверки они будут развёрнуты во всех продакшен-регионах.

Если вы владелец магазина, начните думать о том, какие цифровые продукты вы хотели бы продавать — будь то PDF, иллюстрации, музыка или видео, магазин теперь поддерживает безопасную доставку с защитой от вредоносного ПО корпоративного уровня.

Есть отзыв? Используйте новую функцию «Связаться с продавцом», чтобы обратиться в магазин нашей команды!