无缝网页至游戏集成
运行机制
通过无缝网页至游戏集成,您可以配置在URL参数中将数据从网站发送到游戏。您可以传输用户的授权令牌、营销活动数据或其他信息。
用户流程
实现无缝网页至游戏集成时有以下用户场景:
- 从网站点击链接下载启动器安装程序。
- 从网站点击启动器的链接。
- 从启动器启动游戏。
用户从网站点击下载启动器安装程序的链接:
- 用户打开网站。
- 用户点击启动器安装程序链接。
- 用户通过包含一次性密码的链接下载启动器安装程序。
- 用户安装启动器。
- 启动器通过该一次性密码收到
common_payload
参数的值。 - 用户点击启动器中的开始游戏。
- 启动器检查
common_payload
参数的存在和过期情况:- 如检查成功,启动器使用从
common_payload
参数中获得的实参启动游戏。 - 如检查失败:
- 如发布商帐户的可执行文件名称中配置了网站URL,则启动器将用户重定向到该地址。
- 如发布商帐户的可执行文件名称中未配置网站URL — 启动器在不使用
common_payload
参数的情况下启动游戏。
- 如检查成功,启动器使用从
用户从网站点击启动器链接且已安装了启动器时,发生以下流程:
- 用户打开网站。
- 用户点击启动器链接。
- 启动器保存URL中的
payload
、common_payload
和expires_jn
参数值。 - 用户在启动器中点击开始游戏。
- 启动器检查
payload
和common_payload
参数的存在和过期情况:- 如检查成功,启动器使用从
payload
和common_payload
参数中获得的实参启动游戏。 - 如检查失败:
- 如发布商帐户的可执行文件名称中配置了网站URL,则启动器将用户重定向到该地址。
- 如发布商帐户的可执行文件名称中未配置网站URL — 启动器在不使用
payload
和common_payload
参数的情况下启动游戏。
- 如检查成功,启动器使用从
用户从启动器启动游戏时,发生以下流程:
- 用户打开启动器。
- 用户在启动器中点击开始游戏。
- 启动器检查
payload
和common_payload
参数的存在和过期情况:- 如检查成功,启动器使用从
payload
和common_payload
参数中获得的实参启动游戏。 - 如检查失败:
- 如发布商帐户设置中指定了URL,则启动器将用户重定向到该URL。
- 如发布商帐户的可执行文件名称中未配置网站URL,则启动器将用户重定向到该地址 — 启动器在不使用
payload
和common_payload
参数的情况下启动游戏。
- 如检查成功,启动器使用从
如何获取
要设置无缝网页至游戏集成:
在发布商帐户中配置设置
- 在发布商帐户中打开您的项目。
- 在侧边栏中单击启动器。
- 在仪表板中找到所需启动器,然后单击编辑启动器。
- 在游戏部分,单击游戏右边的设置。
- 前往编译版本部分。
- 前往可执行文件选项卡。
- 在可执行文件名称字段中为各操作系统添加
--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>&common_payload=<common_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>
— 需传给游戏的数据。<common_payload>
— 需传给启动器的用户数据,该数据通用于所有游戏。<expires_in>
—payload
和common_payload
参数中传入的数据过期时间,格式为Unix时间,单位为毫秒。
注:
建议使用Base64或urlencoder.org加密数据以安全通过URL参数进行传输。
Copy
- javascript
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);
游戏侧集成
启动器将payload
参数中收到的数据作为–xsolla-payload
命令行参数的值传入,如下例所示。它还会检查common_payload
参数中是否存在数据及其有效期,并将这些数据作为–xsolla-common-payload
命令行参数的值传入,如下例所示。
使用Base64加密数据时启动游戏的示例:
Copy
game.exe ---xsolla-payload <payload> --xsolla-common-payload <common_payload> WU9VUiBEQVRBIEhFUkU=
本文对您的有帮助吗?
感谢您的反馈!
我们会查看您的留言并运用它改进用户体验。发现了错别字或其他内容错误? 请选择文本,然后按Ctrl+Enter。