Бесшовная интеграция между браузером и игрой

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

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

Существуют следующие сценарии пользователя при реализации бесшовной интеграции:

  • переход по ссылке на установщик лаунчера с веб-сайта;
  • переход по ссылке на лаунчер с веб-сайта, если лаунчер уже установлен на компьютере пользователя;
  • запуск игры из лаунчера.

При переходе по ссылке на установщик лаунчера с веб-сайта:
  1. Пользователь открывает веб-сайт.
  2. Пользователь переходит по ссылке на установщик лаунчера.
  3. Пользователь скачивает установщик лаунчера по ссылке с одноразовым паролем.
  4. Пользователь устанавливает лаунчер.
  5. Лаунчер получает значение параметра common_payload по одноразовому паролю.
  6. Пользователь нажимает Играть в лаунчере.
  7. Лаунчер проверяет наличие и срок жизни параметра common_payload:
    • Если проверка прошла успешно, лаунчер запускает игру с аргументами, полученными из параметра common_payload.
    • Если проверка прошла неуспешно:
      • Если в Личном кабинете настроена передача URL-адрес веб-сайта с игрой в имени исполняемого файла — лаунчер перенаправляет пользователя на этот адрес.
      • Если в настройках в Личном кабинете URL-адрес веб-сайта с игрой не указан — лаунчер запускает игру без аргумента common_payload.
Когда пользователь нажимает ссылку для загрузки установщика лаунчера с веб-сайта:
  1. Пользователь открывает веб-сайт.
  2. Пользователь переходит по ссылке на установщик лаунчера.
  3. Пользователь скачивает установщик лаунчера по ссылке с одноразовым паролем.
  4. Пользователь устанавливает лаунчер.
  5. Лаунчер получает значение параметра common_payload через одноразовый пароль.
  6. Пользователь нажимает Play в лаунчере.
  7. Лаунчер проверяет наличие и срок действия параметра common_payload:
    • Если проверка прошла успешно, лаунчер запускает игру с параметрами, полученными из параметра common_payload.
    • Если проверка не удалась:
      • Если URL веб-сайта настроен в аккаунте в имени исполняемого файла, лаунчер перенаправляет пользователя на этот адрес.
      • Если URL веб-сайта не настроен в аккаунте в имени исполняемого файла, лаунчер запускает игру без аргумента common_payload.
При переходе по ссылке на лаунчер с веб-сайта, если лаунчер уже установлен на компьютере пользователя:
  1. Пользователь открывает веб-сайт.
  2. Пользователь переходит по ссылке на лаунчер.
  3. Лаунчер сохраняет значения параметров payload, common_payload и expires_jn из URL-адреса.
  4. Пользователь нажимает Играть в лаунчере.
  5. Лаунчер проверяет наличие и срок жизни параметров payload и common_payload:
    • Если проверка прошла успешно, лаунчер запускает игру с аргументами, полученными из параметров payload и common_payload.
    • Если проверка прошла неуспешно:
      • Если в Личном кабинете настроена передача URL-адрес веб-сайта с игрой в имени исполняемого файла — лаунчер перенаправляет пользователя на этот адрес.
      • Если в настройках в Личном кабинете URL-адрес веб-сайта с игрой не указан — лаунчер запускает игру без аргументов payload и common_payload.
Когда пользователь нажимает ссылку на лаунчер с веб-сайта и лаунчер уже установлен, происходит следующий процесс:
  1. Пользователь открывает веб-сайт.
  2. Пользователь нажимает ссылку на лаунчер.
  3. Лаунчер сохраняет значения параметров payload, common_payload и expires_jn из URL.
  4. Пользователь нажимает Play в лаунчере.
  5. Лаунчер проверяет наличие и срок действия параметров payload и common_payload:
    • Если проверка прошла успешно, лаунчер запускает игру с параметрами, полученными из параметров payload и common_payload.
    • Если проверка не удалась:
      • Если URL веб-сайта настроен в аккаунте в имени исполняемого файла, лаунчер перенаправляет пользователя на этот адрес.
      • Если URL веб-сайта не настроен в аккаунте в имени исполняемого файла, лаунчер запускает игру без параметров payload и common_payload.
Запуск игры из лаунчера:
  1. Пользователь открывает лаунчер.
  2. Пользователь нажимает Играть в лаунчере.
  3. Лаунчер проверяет наличие и срок жизни параметров payload и common_payload:
    • Если проверка прошла успешно, лаунчер запускает игру с аргументами, полученными из параметровpayload и common_payload при последнем запуске лаунчера по ссылке с веб-сайта.
    • Если проверка прошла неуспешно:
      • Если в Личном кабинете настроена передача URL-адрес веб-сайта с игрой в имени исполняемого файла — лаунчер перенаправляет пользователя на этот адрес.
      • Если в настройках в Личном кабинете URL-адрес веб-сайта с игрой не указан — лаунчер запускает игру без аргументов payload и common_payload.
Когда пользователь запускает игру из лаунчера, происходит следующий процесс:
  1. Пользователь открывает лаунчер.
  2. Пользователь нажимает Play в лаунчере.
  3. Лаунчер проверяет наличие и срок действия параметров payload и common_payload:
    • Если проверка прошла успешно, лаунчер запускает игру с параметрами, полученными из параметров payload и common_payload.
    • Если проверка не удалась:
      • Если URL веб-сайта настроен в аккаунте в имени исполняемого файла, лаунчер перенаправляет пользователя на этот адрес.
      • Если URL веб-сайта не настроен в аккаунте в имени исполняемого файла, лаунчер запускает игру без параметров payload и common_payload.

Как настроить

Чтобы настроить бесшовную интеграцию между браузером и игрой:
  1. Выполните настройку в Личном кабинете.
  2. Добавьте ссылку на ваш сайт.
  3. Реализуйте обработку данных, полученных в параметре payload на стороне игры.

Настройка в Личном кабинете

  1. В проекте в Личном кабинете перейдите в раздел Дистрибуция > Лаунчер.
  2. Найдите нужный лаунчер на дашборде и нажмите Редактировать.
  3. В разделе Игры нажмите Настроить справа от игры.
  4. Перейдите в раздел Сборки.
  5. Перейдите на вкладку Исполняемые файлы.
  6. Для каждой операционной системы в поле Название исполняемого файла добавьте аргументы --x_payload_url. В значении аргумента передайте URL-адрес веб-сайта, на котором будет расположена ссылка или кнопка. Значение должно быть зашифровано с помощью Base64.
Чтобы настроить бесшовную интеграцию между браузером и игрой:
  1. Настройте параметры в вашем аккаунте.
  2. Добавьте ссылку на ваш сайт.
  3. Реализуйте обработку данных, полученных в параметре payload на стороне игры.

Настройка параметров в аккаунте

  1. Откройте ваш проект в аккаунте и перейдите в раздел Distribution > Launcher.
  2. Найдите лаунчер на дашборде и нажмите Edit launcher.
  3. В разделе Games нажмите Set up справа от вашей игры.
  4. Перейдите в раздел Builds.
  5. Перейдите на вкладку Executable files.
  6. Добавьте аргумент --x_payload_url в поле Executable file name для каждой операционной системы. В значении аргумента укажите URL веб-сайта, где расположена ссылка или кнопка. Значение должно быть закодировано с использованием Base64.
Например, если имя исполняемого файла игры game.exe, а URL-адрес веб-сайта с игрой http://example.com/start_play, тогда укажите в поле Имя исполняемого файла значение game.exe –x_payload_url aHR0cDovL2V4YW1wbGUuY29tL3N0YXJ0X3BsYXk=.
Примечание

Аргумент –x_payload_url используется для переадресации пользователя на сайт игры, но не передается исполняемому файлу игры при ее запуске.

После выполнения данной настройки пользователи не смогут запускать игру, не получив данные с веб-сайта игры. Если данные отсутствуют, то при старте игры пользователь будет перенаправлен на веб-сайт игры для их получения.

Добавьте на ваш сайт ссылку или кнопку, которая будет открывать URL-адрес в формате xl-<launcher-id>://game/<game-id>?payload=<payload>&common_payload=<common_payload>&expires_in=<expires_in>, где:

  • <launcher-id> и <game-id> — ID лаунчера и игры, которые вы можете найти в URL-адресе в вашем Личном кабинете: https://publisher.xsolla.com/<merchant-id>/projects/<project-id>/new-launcher/<launcher-id>/game/<game-id>.
  • <payload> — данные, которые необходимо передать игре.
  • <common_payload> — общие для всех игр данные пользователя, которые необходимо передать лаунчеру.
  • <expires_in> — срок жизни данных, переданных в параметрах payload payload и common_payload, в формате Unix time в миллисекундах.
Добавьте ссылку или кнопку на ваш сайт, которая откроет URL в формате xl-<launcher-id>://game/<game-id>?payload=<payload>&common_payload=<common_payload>&expires_in=<expires_in>, где:
  • <launcher-id> и <game-id> — идентификаторы лаунчера и игры, которые вы можете найти в URL вашего аккаунта: https://xsolla.com/for/web-games/account/<merchant-id>/projects/<project-id>/new-launcher/<launcher-id>/game/<game-id>.
  • <payload> — данные, которые необходимо передать игре.
  • <common_payload> — данные пользователя, которые необходимо передать лаунчеру и которые общие для всех игр.
  • <expires_in> — время истечения данных, переданных в параметрах payload и common_payload, в формате Unix time в миллисекундах.
  • \n
Примечание
Рекомендуется шифровать данные с помощью Base64 или urlencoder.org для безопасной передачи в качестве параметров URL-адреса.
Copy
Full screen
Small screen
 1function getAuthToken() {
 2    return 'YOUR DATA HERE';
 3}
 4
 5function getDeeplink(launcherID, gameID) {
 6    const encodedPayload = btoa(getAuthToken());
 7    const expiresIn = new Date();
 8    expiresIn.setHours(expiresIn.getHours() + 1); // Payload data will be fresh for 1 hour
 9 return `xl-${launcherID}://game/${gameID}?payload=${encodedPayload}&expires_in=${expiresIn.getTime()}`;
10}
11
12// Put that `href` to button or link address
13const href = getDeeplink(123, 4567);

Интеграция на стороне игры

Лаунчер передает данные, полученные в параметре payload, в значении аргумента командной строки –xsolla-payload. Лаунчер также проверяет наличие и срок жизни данных, переданных в параметре common_payload, и передает их в значении аргумента командной строки –xsolla-common-payload как показано в примере ниже.

Пример запуска игры, когда данные зашифрованы с помощью Base64:

Copy
Full screen
Small screen
1game.exe ---xsolla-payload <payload> --xsolla-common-payload <common_payload> WU9VUiBEQVRBIEhFUkU=
Была ли статья полезна?
Спасибо!
Что может сделать страницу еще лучше? Сообщение
Жаль, что так произошло
Расскажите, почему статья не была полезна. Сообщение
Спасибо за обратную связь!
Ваши мысли и идеи помогут нам улучшить ваш пользовательский опыт.
Последнее обновление: 31 августа 2026

Нашли опечатку или ошибку в тексте? Выделите ее и нажмите Ctrl+Enter.

Сообщите о проблеме
Мы постоянно улучшаем качество нашей документации. Ваш отзыв поможет нам в этом.
Укажите email-адрес, чтобы мы могли связаться с вами
Спасибо за обратную связь!
Не получилось отправить ваш комментарий
Попробуйте еще раз позже или напишите нам на [email protected].