无缝网页至游戏集成

运行机制

通过无缝网页至游戏集成,您可以配置在URL参数中从网站发送数据到游戏。您可以传输用户的授权令牌、营销活动数据或其他信息。

用户流程

以下是实现无缝网页至游戏集成的用户场景:

  • 在网站上点击跳转到启动器的链接。
  • 从启动器中启动游戏。

用户在网站上点击跳转到启动器的链接时:

  1. 用户打开网站。
  2. 用户点击启动器的链接。
  3. 启动器保存URL中payload的值。
  4. 用户在启动器中点击开始游戏
  5. 启动器检查payload参数的存在和过期情况:
    • 如检查成功,启动器使用从payload参数中获取的实参启动游戏。
    • 如检查失败:
      • 如发布商帐户的URL设置中指定了URL,启动器将用户重定向到该URL。
      • 如发布商帐户的设置中未指定URL,启动器将启动游戏。

用户从启动器中启动游戏时,发生以下过程:

  1. 用户打开启动器。
  2. 用户在启动器中点击开始游戏
  3. 启动器检查payload参数的存在和过期情况:
    • 如检查成功,启动器使用从payload参数中获取的实参启动游戏,该参数是上次启动器从网站链接启动时获取的。
    • 如检查失败:
      • 如发布商帐户的设置中指定了URL,启动器将用户重定向到该URL。
      • 如发布商帐户的设置中未指定URL,启动器将启动游戏。

如何获取

要设置无缝网页至游戏集成:

  1. 在发布商帐户中配置设置
  2. 在网站上添加链接
  3. 在游戏侧实现对payload参数中所收到数据的处理

在发布商帐户中配置设置

  1. 发布商帐户中打开您的项目。
  2. 在侧边栏中单击启动器
  3. 在仪表板中找到所需启动器,然后单击编辑启动器
  4. 游戏部分,单击游戏右边的设置
  5. 前往编译版本部分。
  6. 前往可执行文件选项卡。
  7. 可执行文件名称字段中为各操作系统添加--x_payload_url参数。在参数之中传入链接或按钮所在网站的URL。该值应使用Base64加密。

例如,如果可执行文件名称是game.exe,游戏网站URL是http://example.com/start_play,则在可执行文件名称字段中输入game.exe --x_payload_url aHR0cDovL2V4YW1wbGUuY29tL3N0YXJ0X3BsYXk=

注:
完成该设置后,用户将无法在未收到游戏网站发送的数据的情况下启动游戏。如缺少该数据,用户将被重定向到游戏网站获取该数据。

在网站上添加将打开xl-<launcher-id>://game/<game-id>?payload=<payload>&expires_in=<expires_in>格式URL的链接或按钮,其中

  • <launcher-id><game-id> — 可在发布商帐户的URL中找到的启动器和游戏的ID:https://publisher.xsolla.com/<merchant-id>/projects/<project-id>/new-launcher/<launcher-id>/game/<game-id>
  • <payload> — 需传给游戏的数据。

注:
建议使用Base64urlencoder.org加密数据以安全通过URL参数进行传输。

  • <expires_in> — payload参数中传入的数据过期时间,格式为Unix时间。

Copy
Full screen
Small screen

    function getAuthToken() {
        return 'YOUR DATA HERE';
    }
    
    function getDeeplink(launcherID, gameID) {
        const encodedPayload = btoa(getAuthToken());
        const expiresIn = new Date();
        expiresIn.setHours(expiresIn.getHours() + 1); // Payload data will be fresh for 1 hour
     return `xl-${launcherID}://game/${gameID}?payload=${encodedPayload}&expires_in=${expiresIn.getTime()}`;
    }
    
    // Put that `href` to button or link address
    const href = getDeeplink(123, 4567);
    

    游戏侧集成

    游戏在--xsolla-payload参数中收到的数据。游戏对数据的解密实现方式取决于所选加密方式。

    使用Base64加密数据时启动游戏的示例:

    Copy
    Full screen
    Small screen

      game.exe --xsolla-payload WU9VUiBEQVRBIEhFUkU=

      本文对您的有帮助吗?
      谢谢!
      我们还有其他可改进之处吗? 留言
      非常抱歉
      请说明为何本文没有帮助到您。 留言
      感谢您的反馈!
      我们会查看您的留言并运用它改进用户体验。
      为此页面评分
      为此页面评分
      我们还有其他可改进之处吗?

      不想回答

      感谢您的反馈!
      上次更新时间: 2023年4月5日

      发现了错别字或其他内容错误? 请选择文本,然后按Ctrl+Enter。

      报告问题
      我们非常重视内容质量。您的反馈将帮助我们做得更好。
      请留下邮箱以便我们后续跟进
      感谢您的反馈!