商店和促销(旧版 Economy)
Economy v1 API 处于维护模式,不会接收任何新功能,只有 bug 修复。**v1 API 在可预见的将来将持续维护。**参见 Economy v2 概览,了解有关 PlayFab Economy 下一版本的更多信息!
要求
- 熟悉 PlayFab Game Manager。
- 你必须已定义一种或多种虚拟货币。本教程后面的示例使用:
- SP(Silver Pieces)
- GP(Gold Pieces)。
- 你必须有一个定义了一个或多个物品的_主目录_。
- 第一个示例使用多个物品/捆绑包,类似于掉落表教程中描述的那些。
- 本教程的第二个示例使用小型、中型和大型生命药水。
最佳实践
目录价格应长期固定——它们定义了物品的_真实_价格。 商店应是_临时的_,根据你的 LiveOps 策略进行添加和移除。预计你的大部分收入将来自循环商店,以及将物品在活动商店内外移动。
关于商店和目录定价的一般信息
- 定价:目录中定义的价格应定义为物品的_常规_价格。商店允许你为物品定义临时促销价格,利用常见的零售策略。或者,商店可以为通常根本无法出售的物品提供临时价格。
- 零成本:如果特定货币下的物品价格未设置(null)或零,则无论目录还是商店都无法使用该货币购买。零成本允许你通过将其他货币的条目留空或将其重置为零,使物品仅可用于免费货币或仅可用于高级货币。
- 真实货币:RM 货币在所有目录和商店中都可用。RM 是一种受限货币键,表示_仅限真实货币交易_。你应仅为具有显著价值的物品,或带有高级货币的捆绑包/容器收取 RM。
- 价格是二选一:如果在一个物品上定义了两种价格,则该物品可以以其中任一价格购买。不可能要求单个物品使用两种货币。
定义真实货币商店
在你的 Game Manager 中:- 导航到你的 Title。
- 从左侧菜单中选择 Economy。
- 在 Catalogs 选项卡上,选择你的主目录并选择 Stores。
- 选择 New Store 按钮。
任何物品都可以以真实货币出售,但最佳做法是仅使_特定_有价值的物品或捆绑包直接可用。
真实货币商店的最佳实践
你如何使用真实货币在很大程度上取决于你游戏的具体设计。直接购买游戏内物品是有效的,但不太常见。 更典型的是,你的游戏应允许使用真实货币购买一种高级虚拟货币。你可以循环使用具有不同高级货币与真实货币比率的多个商店。定义虚拟货币商店
让我们进入使用虚拟货币购买游戏内物品的细节和代码。 初始步骤与上一个示例几乎相同:- 创建三个新物品:Small、Medium 和 Large Health Potions,具有_免费_货币价格和_高级_货币价格。
- 使用促销物品创建一个新商店。
在一次购买中购买多个物品
要使用虚拟货币购买单个物品,请使用 PurchaseItem 方法,如我们的商店快速入门中所述。本教程介绍在一次购买中购买多个物品。 此过程的第一步应该是获取商店,并将其显示给用户。LogSuccess 回调接收一个 GetStoreItemsResult,其中包含商店中所有物品的完整描述、它们的_商店_价格以及商店本身包含的任何元数据。
展示商店的最佳实践
带有商店的游戏应使用 GetCatalogItems 方法调用并缓存其主目录。你可以同时显示目录价格和商店价格,以及在促销物品旁边显示 10% OFF 或类似的奖励装饰。 此时,你的 GUI 代码负责向用户展示选择他们希望购买哪些物品以及数量的机会。- 在你的游戏与 PlayFab 之间,剩下的步骤是几个单独的 API 调用,但你可以让多个调用的序列对玩家不可见。
- 提前收集有关购买的所有信息,并在收集_所有_玩家输入后进行完整的调用序列。
上面代码示例中
StartPurchase API 的结果包含 PaymentOptions 列表。每个 payment option 包含可用于进行购买的 Currency、Price 和 ProviderName。限制
单次购买中只允许_一种_虚拟货币。所有选定的物品必须能用_单一货币_购买。 调用中必须指定货币,当有多种可能的货币时,这一点很重要。如果请求中有物品在所选货币中没有对应的成本,序列将失败。 调用中还必须指定ProviderName。对于真实货币购买,provider name 是用来为购买提供资金的人,例如 Facebook、PayPal 或 Steam。对于 VC 购买,它将是基于你的 title ID 的字符串。ProviderName 可以从 StartPurchaseResult 的 PaymentOptions 字段中获取,如前面的注意中所述。
展示商店物品的最佳实践
通过确保商店中的所有物品具有一致的选项来避免玩家的困惑。 真实货币物品应与高级 VC 物品在不同的商店中,同样与免费 VC 物品在不同的商店中。如果单个商店允许多种货币,那么该商店中的_所有_物品都应始终使用相同的多种货币集。根据需要创建尽可能多的商店,以提供顺畅的客户体验。处理 API 失败结果的最佳实践
任何单个 API 调用都可能由于许多原因失败。手机等无线设备通常可能存在间歇性连接,任何互联网调用都可能因随机延迟而失败。 每个调用都应检查多个失败条件。如果响应显示请求无效(例如,无法使用单一货币购买多个物品),你应该中止。可能是你的商店设计有问题。 如果响应指示连接失败,你可以在指数退避延迟后重试。结论
商店是鼓励玩家购买物品的绝佳机制。 商店适用于任何类型的虚拟货币。商店也可以通过一组备用 API 方法与真实货币一起使用。- 你可以通过 PurchaseItem 使用 VC 设置单物品购买。
- 你可以通过以下序列使用真实货币或 VC 设置多物品购买:
