【发布时间】:2018-08-26 21:47:02
【问题描述】:
我的问题集中在使用 Google 的应用内结算 API 处理消耗品的应用内购买。 (https://developer.android.com/google/play/billing/api.html#consumetypes)
他们的文档将消耗品描述为:
消耗品
相比之下,您可以对可以多次购买的产品实施消费。通常,这些产品会提供某些暂时的效果。例如,用户在游戏中的角色可能会获得生命值或在他们的库存中获得额外的金币。在您的应用程序中分配所购买产品的好处或效果称为供应被管理产品。 您负责控制和跟踪托管产品是如何提供给用户的。
消耗品是可以多次购买的东西(例如游戏货币、游戏内物品或使用的升级等),而非消耗品只能购买一次(无广告、皮肤/角色等)
在有关消费购买的文档中 (https://developer.android.com/training/play-billing-library/purchase-iab-products.html),它还提到:
如何在应用中使用消费机制取决于您。通常,您会为用户可能想要多次购买的具有临时利益的产品实施消费,例如游戏内货币或可补充的游戏代币。您通常不希望对一次性购买并提供永久效果(例如高级升级)的产品实施消费。
您有责任控制和跟踪应用内商品是如何提供给用户的。例如,如果用户购买了游戏内货币,您应该使用购买的货币数量更新玩家的库存。
我的问题是如何跟踪消耗品的用户库存?文档和各种视频似乎很快就掩盖了这一点,基本上说应用程序必须在确认成功购买时应用消耗品的效果。但这并不是真正的全貌。如果用户退出并使用其他帐户重新登录怎么办?或者他们切换到新手机,他们应该在该手机上安装该产品。
您无法真正将购买记录保存在 SharedPreferences 或永久缓存中,因为它与手机相关联。如果用户在另一部手机上登录,那么他们应该可以享受他们所购买的所有商品的好处。
举个例子:
游戏开始时玩家有 1000 金币。玩家通过应用内购买再购买 500 金币,然后花费 200 金币。如果玩家购买了一部新手机并在该手机上安装了该应用程序,他们应该有 1300 金币。
这通常是如何完成的?
您是否需要运行独立于 Google 的私人服务器来跟踪此类物品的购买/消费情况?
谢谢!!
【问题讨论】:
-
基本上,Google 只会帮助您进行购买并通知您是否完成了购买,它不会通知您购买了多少次。假设如果用户购买了 500 个硬币,那么您必须维护一个服务器来跟踪用户的硬币,并且在购买时,您必须将服务器中的用户硬币设置为 1000 + 500。当用户花费 200 个硬币时,然后设置用户投币到 1300。但请记住,购买必须在 Google 的服务器中消费,然后只有用户才能再次购买相同的东西。
标签: java android google-api in-app-purchase in-app-billing