正在创建财物

本指南将介绍如何使用Nakama的IAP验证虚拟钱包存储引擎功能开发游戏内的财物系统。

本指南将允许玩家通过IAP购买高级货币、宝石。然后可以在游戏中消耗这些宝石购买硬币,这些硬币可以购买游戏中的物品。

我们还将允许玩家使用IAP成为高级玩家,然后在必要时恢复购买。

使用IAP购买高级货币 #

以下服务器运行时代码示例假定使用Unity IAP包将购买收据提交到自定义Nakama RPC中。

此RPC首先检查有效负载,查看进行购买行为所使用的应用商店,然后使用适当的应用商店验证购买行为。如果购买行为有效,它会为阵列中的每个经过验证的购买行为调用一个单独的函数,以检查购买的产品ID,并在玩家的虚拟钱包中向玩家提供正确数量的宝石。

请注意,为了让Nakama验证购买,您必须提供适用于每个应用商店的配置变量

使用高级货币购买游戏内货币 #

玩家已购买高级货币,可以用高级货币购买游戏内的货币,硬币。以下RPC允许用户指定购买硬币所需要的宝石数量。这里的转换率(1宝石=1000硬币)采用硬编码。

使用游戏内货币购买物品 #

在本例中,我们将在Nakama存储引擎中存储一个配置对象,它将游戏中的每个项目映射到以硬币计算的价格。我们将在服务器的InitModule函数中进行此项配置。

将我们的价格存储在存储引擎中,我们可以编写一个允许用户购买物品的RPC(前提是用户有足够的硬币)。

使用IAP购买非消费品 #

除了能够通过应用程序内的购买行为购买虚拟货币之外,您还可能希望让玩家可以直接购买非消费品。

在这种情况下,我们将重新访问我们之前允许玩家购买宝石的服务器运行时RPC。但是,我们现在将添加购买非消费品的功能,以便稍后可以在其他设备上恢复这个功能。在这种情况下,通过购买非消费品,玩家将能够成为高级玩家。

为此,购买一经验证,我们将在用户的元数据中设置一个标志,表明他们是高级玩家。然后可以在整个游戏中凭借该标志提供各种被动技能/奖励。

恢复IAP购买 #

如果用户更改了设备,应该可以恢复先前发生的所有购买行为。这不适用于在购买时已经“消费”的消费性购买行为(例如虚拟货币),但对于解锁完整游戏、移除广告或成为高级会员等事项,用户应该在安装您的游戏的任何新设备上享受所有相同的权益。

为此,我们将提供一个RPC,游戏客户端可以调用该RPC接收所有已在Nakama中验证为成功购买的IAP产品ID和购买时间戳的列表。之后,客户端可以使用此信息在新设备上恢复适当的功能。