"最佳"跨设备实施应用内货币的方式

时间:2016-10-02 20:15:44

标签: android google-drive-api google-cloud-storage in-app-billing google-play-games

背景

我已经编写了一款我希望在多种设备(平板电脑,手机等)上运行的游戏。我实施了一种应用内货币,并且已经到了我需要在云端存储货币的阶段,因此可以跨设备访问它,我可以处理冲突等。

我想选择一个最简单的选项,至少对我而言,意味着使用Google提供的某种可用API,而不是使用我自己的服务器。我发现了以下可能性:

  1. Google AppState API(现已弃用)
  2. Google保存的游戏API
  3. Google Drive API
  4. Google Cloud Platform。
  5. (1)现已弃用,开发人员将被指示使用已保存的游戏API。

    (2)实际上似乎是一个很好的解决方案,因为它涉及游戏成就,排行榜和自定义数据存储(例如应用货币)。但是,我发现这有一个问题,在Play游戏应用程序中,可以选择删除播放器的个人资料,这也会删除游戏中的货币!因此,虽然(2)似乎很好,但可能会有可能删除货币数据。也许这可以放在T& C&C,类似于"如果你删除你的个人资料,你将失去任何未花费的货币和任何购买的物品" ......

    (3)使用Drive API似乎是一个选项,但在线阅读之后,似乎存在许多问题,例如重复文件名,用户删除文件的可能性等等。

    (4)我不确定这个选项,但看起来我可能需要付费?

    某些API上似乎也有these deprecation schedules

    我的问题

    因此面对这些(可能还有其他未列出的)选项,实现基于应用货币的云的优秀解决方案是什么?我试图避免使用我自己的服务器来记录每个用户的货币/数据,但这可能是唯一的好解决方案吗?我想尝试降低欺骗系统的能力。

    其他想法

    我可以使用Google保存的游戏API 保存的偏好设置(存储在设备上)方法。我会更新已保存的偏好设置和Google已保存的游戏。我可以保持两种数据存储方法同步,如果Saved Games数据与Saved Preferences不匹配,则将Saved Prefs与Saved Games数据合并(例如,将Saved Games和Saved Prefs设置为任一的最大货币)。这将使我能够在设备上保留货币备份,以防用户删除其已保存的游戏配置文件。但是,如果用户删除了他们保存的游戏个人资料,并从所有设备中移除了应用程序,那么这将失败......这么多选项......

    相关/有趣的帖子

    Ricket's answer here is interesting.

    可能的妥协解决方案

    由于IAB系统和API提供的限制,我认为我会解决这个问题:使用托管项目进行永久性购买,例如:不同级别的主题,获得新角色等。无论发生什么,这些都将始终可用。一旦他们被购买,他们将永远购买,即我永远不会消费这些物品。有一个单独的虚拟货币(宝石)系统,最多100个宝石说,我通过Saved Games跟踪。这样我也获得了排行榜/成就。如果玩家删除了他们的个人资料,那就是他们的问题,但至少核心管理的项目会持续存在。希望T& C&#C; s能够弥补潜在的宝石损失,最多100颗宝石将有助于减少任何掉落。

2 个答案:

答案 0 :(得分:1)

您可能想要结帐firebase其中一项功能是实时数据库。

答案 1 :(得分:-1)

您可以尝试Implementing In-app Billing。如文档中所述:

  

Google Play上的应用内结算功能提供了一个直观,简单的界面,可使用Google Play发送应用内结算请求和管理应用内结算交易。

因为您还提到过您试图避免使用自己的服务器来记录用户的货币/数据,因此这将是您的优势所在。以下是文档中给出的一些优点:

  • 应用内结算取决于Google Play应用,它可以处理您的应用与Google Play服务器之间的所有通信。您只需向应用程序请求获得适当的权限即可使用Google Play应用程序。
  • 您可以使用应用内结算第3版API来跟踪Google Play中购买的应用内商品的所有权。
  • 您甚至可以选择保护您的应用程序,因为Google Play会签署包含采购订单响应数据的JSON字符串,以帮助确保发送到您的应用程序的交易信息的完整性。

现在,如果您决定使用应用内结算,我是否可以建议您查看给定的文档并注意重要说明,注意/警告和建议。我还建议您阅读In-app Billing Overview以熟悉可以让您更轻松地实施应用内结算的概念。

最后,您还可以添加Security and Design作为参考之一,以获取有关安全性和设计最佳做法的更多信息。这个SO post中的建议也可能有所帮助。