1

我有一包用户可以购买的硬币。例如:

  • 50个硬币
  • 200个硬币
  • 500个硬币

如果用户购买50个硬币,用户可以在游戏币中一一消费。

谷歌有没有办法处理库存管理?,例如,在 Google 服务器中保存了一种方式,如果用户有 50 个硬币并花费了 10 个,他的库存中有 40 个硬币。

如果这是不可能的,我将不得不自己管理硬币库存。在本地设备中我不能这样做,因为我希望它们与用户帐户相关联。因此我只能管理我的游戏服务器中的硬币。

我认为自己执行此实现非常危险。例如,用户购买了一个包,我调用我的服务器来增加该用户帐户的硬币数量。我的服务器回答“OK”,因为他添加了硬币。然后在我使用的应用程序中消耗硬币包,以便有证据表明它们已正确添加到您的帐户中。

但是,如果响应中存在游戏服务器连接错误,应用程序不会使用它们并且用户可以再次将它们添加到库存中,这只是问题的一个示例,但有不同的实现方式,我认为一些可能的失败发生。

是否有实施示例或方案来管理具有“游戏服务器”中的库存的用户的硬币?

附加信息:我的服务器是带有 api rest 的 java。

4

1 回答 1

1

你很近。

  1. 当您进行购买时,将购买令牌发送到您的服务器(就像您在上面写的一样)。
  2. 您的服务器应使用Google Developer API来确认这是一次真正的购买。如果是,则将硬币添加到数据库并将购买标记为已兑换。它以用户现在拥有的硬币数量进行响应,以便应用程序可以显示它。

关于第(2)步失败的问题:您可以做的是在应用开始使用应用内计费库时检索用户的购买,并为之前失败的那些向服务器发送请求。当然,您需要某种本地数据库(或使用共享首选项)来存储那些失败的和成功兑换的。

于 2018-01-30T08:31:12.493 回答