设置可从 Google Play 商店购买的 PlayFab 订阅
注意
Google 订阅兑换目前以 个人预览版提供。 若要访问此功能,请向 PFEconomyPreviews@microsoft.com 主题 PlayFab 移动订阅 和 PlayFab 游戏 ID 发送电子邮件,我们将在你的环境中启用该功能。
本教程介绍如何成功创建 PlayFab 订阅、将其添加到 Google 商城中的游戏供玩家购买,以及如何兑换其中包含的项目。
先决条件
- PlayFab 的 Game Manager 中的游戏。
- 所选游戏与所需商城之间的现有集成。
- 已在 Google Play 中创建并可用的应用。
步骤 1:创建订阅
在开始兑换任何订阅之前,首先需要在 Game Manager 和 Google Play 控制台中的应用提供该订阅。
在本教程中,我们首先在 Google Play 控制台中创建订阅。
Google Play 控制台
若要使用 Google Play 控制台 创建 订阅,必须执行后续步骤:
- 在 Google Play 控制台 中打开所需的 应用。
- 在左侧导航菜单中,向下滚动到“盈利”部分,然后选择“订阅”。
- 选择右上角的“创建订阅”。
- 输入订阅所需的 产品 ID 和 名称。 在本教程中,使用 up_basic_sub 作为 产品 ID。 请记住 产品 ID,因为它将用于链接 Game Manager。
- 向下滚动到 基本计划和套餐,然后选择“添加基本计划”。
- 将所需的任何配置添加到基本计划,然后选择右下角的“保存”。
- 选择“保存”以保存刚才对订阅做的所有更改。 请注意,保存不会将其激活为产品。 保存后,将显示激活选项。 若要使订阅在 Google Play 控制台 的应用中处于活动状态,请选择右下角的“激活”按钮。
使用 Game Manager 创建订阅
若要在 Game Manager 中创建新 订阅,请执行后续步骤:
- 转到 Game Manager 并导航到“游戏”。
- 在左侧导航菜单中,选择“参与>经济”。
- 选择“订阅”选项卡。
- 选择“新建订阅”。
- 将任何你想要的信息添加到 订阅(如项目和价格)在本教程中,使用“Swords 订阅”作为名称。
- 向下滚动到页面末尾,如果希望立即发布,请选择“保存并发布”;如果希望将其保存但尚不希望它可用,请将其另存为草稿。
将项目添加到订阅
订阅本身不会向玩家授予任何项目,我们必须先将项目链接到该玩家,并在兑换后将这些项目授予该特定玩家。
在将项目添加到订阅之前,请确保已在目录中创建和发布项目。 我们已经有一个名为“守誓者”的剑项目和另一个名为“霜之哀伤”的剑项目。 如果不知道如何创建项,请参阅 此步骤。
现在,将它们添加到订阅! 为此,可以在第一次创建订阅时添加它们,前提是项目已创建。 也可以稍后通过编辑订阅项来添加它们。
在编辑模式下,向下滚动到订阅的“项目”部分并选择“添加”按钮,这将显示一个窗口,其中显示目录中的所有可用项,从此处可以按类型(项目或用户生成内容 UGC 项)进行筛选,也可以搜索特定项目。 在本例中,我们只发布了两个项目,因此我们选择每个项目旁边的“添加”按钮,最后选择窗口底部的蓝色“添加”按钮。
启用商城映射
要确保当玩家从应用购买订阅时可在 Game Manager 中正确购买和分配,必须配置“商城映射”。 这可以在 Game Manager 中创建订阅时完成,也可以在订阅创建后返回到编辑模式下的订阅。
- 在编辑模式下导航到订阅。
- 向下滚动到“商城映射”部分。
- 从“商城”下拉列表中,选择所需的商城。 (对于本教程,此处为 GooglePlay)。
- 对于你的“商城 ID”,请确保在 Google Play 控制台中使用与你的产品 ID 相同的 ID。 在本教程中,我们使用了 up_basic_sub。
- 若要完成,请选择该行右侧的 +。
步骤 2:生成购买令牌
注意
请确保先完成先决条件 #3,然后再继续,如果没有,则无法实际生成 购买令牌。
购买令牌 是由 Google Play 的 API 在每次购买时生成的令牌,类似于收据 ID。 根据 Google 的文档,“购买令牌 是一个字符串,表示购买者在 Google Play 上购买产品的权利。 它表示 Google 用户已支付特定产品的费用。”
在执行中,应保存该令牌,因为它应发送到 PlayFab 的 API,以便在 Google 商城上验证购买。 它允许 PlayFab 兑换玩家购买的物品,并将其存入玩家的物品清单中。
若要生成令牌,必须已经有一个应用在与 Google Play 的主动集成下运行。 Google Play 中的应用注册还必须具有可供购买的项目(或在本例中为订阅)。 代码执行必须使用 Google Play 计费系统,才能在购买后返回令牌。
总之,在编写应用编码时应使用计费系统,通过该计费系统,你可以从 Google 端购买订阅,Google 将返回 购买令牌。 然后,该令牌应与 PlayFab 的 Economy API 一起使用,以兑换购买并将订阅项添加到玩家的物品清单中。
步骤 3:兑换订阅
现在,你已在 Game Manager 和 Google Play 控制台 中创建了订阅,可以为其中一个玩家兑换你的订阅。 在此示例中,我们重点介绍如何使用 PlayFab 的 API,特别是 PlayFab 的 Economy API 中的 RedeemGooglePlayInventoryItems 调用。
检查 AlternateID
在进行兑换调用之前,请确保在 Game Manager 中 具有正确的 AlternateId,它应与 Google Play 控制台 中的相同。
下面的屏幕截图来自 Game Manager 中的订阅,我们称 商城 ID 为 AlternateId,基本上它是另一种识别订阅的方法。
在 Google Play 控制台中,转到应用内的订阅,在“订阅详细信息”下,可在此处看到所有已创建的产品,包括订阅。 在第二列中可以看到 产品 ID,应确保它与 Game Manager 中的 AlternateId 相同,如果不同,则更新 Game Manager。
让玩家进行身份验证
若要兑换项目,请使用 RedeemGooglePlayInventoryItems。 但在此之前,我们必须确保希望兑换该项目的玩家在你的应用中正确进行身份验证,你可能会使用 LoginWithGoogleAccount。
注意
有关更多详细信息示例,请参阅 在 Unity 中使 用Google Play 游戏登录设置 PlayFab 身份验证。
成功调用 LoginWithGoogleAccount 后,PlayFab 的 API 将返回一个 EntityToken,该令牌必须用作 RedeemGooglePlayInventoryItems 标头的一部分,其中包含X-EntityToken
密钥。
进行兑换调用
对玩家进行身份验证后,将同时创建订阅实例并选中其 备用 ID 和 购买令牌。 你已准备好进行兑换调用。 为此,我们使用 RedeemGooglePlayInventoryItems API 调用。
{
"Purchases": [
{
"ProductId": "up_basic_sub",
"Token": "{Your purchase token}"
}
]
}
调用非常简单,你有一个 Purchases
数组,其中包含 Product ID
(应与 Google Play 控制台 中的数组匹配),以及一个与调用 Google Play 计费系统 时返回的 购买令牌 相对应的 Token
字段。
成功的响应将包括200 status code
以及时间戳和 MarketplaceTransactionId 等数据。
成功兑换后,如果进入玩家的物品清单,现在应该可以看到链接到订阅的两个项目。
每个兑换操作还会在玩家的事务历史记录中触发相应的日志,该日志可从指定玩家概述页下的“事务历史记录 (V2)”选项卡中检索。
除了玩家事务历史记录中的记录外,还会触发和记录 PlayStream 事件。 可以通过转到 Game Manager 左侧导航栏的“分析”部分下的“数据”页来访问游戏的这些日志。 可在此处编辑查询以搜索特定记录,或使用默认设置运行查询以获取所有内容。 事件名称下应有一条记录 items_redeemed,应会看到一个特定于刚刚兑换的订阅的新事件。