从游戏中打开一个网上商店
了解游戏如何通过经过身份验证的玩家会话打开网上商店以及如何对玩家进行身份验证。
阅读时间6 分钟最后更新于 2 天前
网上商店在 Unity 游戏上下文之外运行。为了识别网上商店中的玩家,您的游戏会使用包含经过身份验证的玩家会话的出站链接打开商店。这是推荐的开店方式;玩家无需额外的登录步骤即可完成购买。 玩家还可以直接从浏览器、书签、营销链接或共享链接打开商店。如果商店没有收到玩家会话,则会显示未经身份验证的登录页面而不是商品列表。购买后,商店可以使用返回深层链接将玩家返回到您的游戏。商店还使用此链接来自动处理未经身份验证的玩家。有关更多信息,请参阅处理入站深度链接。 网上商店会处理游戏通过的会话中的身份验证。您无需构建单独的登录流程。有关更多信息,请参阅身份验证玩家和持久会话。
出站链接
游戏使用平台的标准外部 URL 处理方式打开商店 URL。在移动设备上,通常在系统浏览器或应用内 Web 视图中打开商店。 URL 格式如下:要在运行时为实时发布的商店或环境的预览草案解析此 URL,请参阅将网上商店集成到 Unity 游戏中。 以下查询参数可识别玩家并加载正确的网上商店上下文:https://shop.unity.com/{studio}/game/{slug}?sessionToken={token}&projectId={projectId}&environment={env}
参数 | 用途 |
|---|---|
| Unity Authentication SDK 中的短暂会话令牌。商店在玩家浏览器中交换此令牌以进行身份验证的玩家会话。 |
| 玩家所属的 Unity Cloud 项目 ID。商店使用此值加载正确的网上商店和目录。 |
| 要加载的 Unity 环境名称。此参数是可选参数,默认为 |
localecurrency商店解析身份验证并存储参数后,会从 URL 中删除这些参数。这有助于防止截屏或意外共享的 URL 暴露会话令牌。 如果忽略https://shop.unity.com/acme/game/dungeons?sessionToken=…&projectId=…&environment=production&locale=ja-JP¤cy=JPY
sessionTokenprojectId验证玩家身份并保留会话
网上商店通过 Unity 身份验证对玩家会话进行身份验证。游戏在开店时,会在sessionTokensessionTokenlocalStorage/_preview/...sessionStoragelocalStorage处理未经身份验证的登录页面
当玩家打开没有身份验证上下文且没有缓存会话的商店 URL 以localStorage购买后返回游戏
在购买后,Webshop 可以通过返回深层链接将玩家送回游戏。在控制面板中的 Deeplink URL 字段中进行配置,例如mygame://purchase-success
启用返回链接后,Webshop 会将购买结果附加为查询参数:
网上商店在完成购买后附加mygame://purchase-success?status=success&playerId={playerId}
status=successplayerId游戏会注册自定义 URL 方案并读取查询参数以恢复玩家在游戏开始时的状态。 仅当满足以下所有条件时,Back to game 按钮才会显示在购买结果屏幕上:mygame://?status=success
- 玩家通过深层链接从您的游戏中打开了商店。
- 播放器位于移动设备上,例如 iOS 或 Android。
- 该 Webshop 已配置返回深层链接。