我的问题集中在使用 Google 的 In-App Billing 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 分开?
谢谢!!