检索消费项目的历史记录
Posted
技术标签:
【中文标题】检索消费项目的历史记录【英文标题】:Retrieve history of consumed item 【发布时间】:2014-09-21 05:40:14 【问题描述】:在我的安卓游戏中,我在应用内购买了一次出售多个商品,即获得 5000 个硬币 + 删除广告。这意味着我同时拥有消耗品和非消耗品。 问题在于恢复购买。我知道我可以恢复非消耗品购买,但由于我的 IAP 包含消耗品和非消耗品,我无法恢复购买,因为我会消费产品。
有没有办法在消费完成后检索物品的购买详情?
【问题讨论】:
【参考方案1】:只需创建一个额外的消耗品以购买超过前 5,000 个硬币的额外物品,然后像往常一样在购买后立即消耗该物品,并自己记录 5,000 个硬币的增量,就像在 TrivialDrive IAB 示例中所做的那样。
当您首次购买组合删除广告/获得 5,000 个硬币的物品时,不要消费该物品 - 将其视为非消耗品 - 但将购买事件本身视为执行相同逻辑的一次性触发器就像您在消费“购买额外 5,000 个硬币”物品时一样。
请记住,就这一流程的 Google 方面而言,“消耗性”和“非消耗性”物品彼此没有区别。它们是可消耗的还是不可消耗的,仅取决于您的代码中决定使用它们并在内部记录可消耗资源的增量,或者将它们留在那里作为购买已发生事实的永久记录。将项目留在那里使其在支持 IAB 的所有用户设备上可见,而消耗性项目必须通过其他方式记录(并在设备之间共享)(例如,在您的应用自己的云数据库中)。
因此,上述方法的替代方案是立即消费购买的删除广告/添加 5,000 个硬币项目,并在您自己的数据库中记录广告被永久删除,并且用户有 5,000 个硬币。然后,用户可以重新购买该项目,关闭广告作为多余的无操作,并且只记录 5,000 个硬币增量。
但是第二种方法只会让您的用户感到困惑,因为即使在广告已经被移除之后,该项目仍会被称为“移除广告/获得 5,000 个硬币”。此外,我在此答案开头概述的方法将允许您创建任意数量的硬币购买项目,不仅有 5,000 个硬币,还有其他数量。
【讨论】:
感谢您的回答。让我澄清一下您的第一种方法的流程。 CMIIW。我需要设置多个 IAP 项目。第一个是Get5000+去除广告,第二是15000+去除广告,第三是额外5000金币,第四是额外15000金币。然后用户首先购买5000+remove ads,如果他们想购买额外的硬币,他们需要购买第3个或第4个项目。在那种情况下,我认为它会给用户造成混乱,因为它会成为列表中的太多项目。 其实我的游戏是本地的,所以我没有外部数据库,我的 IAP 项目现在是 5000coins,15000coins+remove ads,25000+remove ads。请注意,第一个没有删除广告。我想要做的是能够在用户购买第二个项目时恢复删除广告。我希望谷歌存储购买历史,即使它已经被消费了。 如果您在云中没有数据库,那么我上面的第一种方法应该适合您,因为它在 Google 的服务器上保留了“删除广告加购买硬币”项,从而允许您的应用无论购买该功能的用户使用何种设备运行广告,都可以删除广告。至于让购买额外硬币的额外物品令人困惑,我想说的是,尝试重新使用您的物品将广告去除与硬币结合起来购买额外硬币会更多令人困惑。但为了更容易混淆,只需有一个单独的项目用于删除广告和其他用于硬币的项目。 @Carl 谢谢!我从你关于 IAP 的 5 段中了解的比从谷歌文档的页面和页面中了解的更多!【参考方案2】:首先,在 In-app billing V3 中,您可以使用托管项目。基本上,您不应该在 V3 中使用任何非托管项。创建托管项目,购买并使用它。如果consume调用的结果码是BILLING_RESULT_OK,给用户提供好处。
回答您的问题,如果您消费了产品,您有责任跟踪和管理它。
编辑:
您可以尝试的另一种方法是,为 4 个按钮创建 4 个 iap 项。在您的应用中跟踪所有负责解锁广告的 iap 项目。当用户点击按钮时,使用 getSkuDetails() 检查相应的 iap 项目是否已经拥有。如果是,请消费并购买。如果没有,则直接购买(如果 iap 项负责解锁广告,则解锁广告)。现在不要消费 iap 项目。
在 oncreate() 中,使用 getSkuDetails() 检查所有拥有的项目。如果任何一个拥有的物品负责解锁广告,并且如果广告尚未解锁,则解锁广告(恢复)。
【讨论】:
我想如果我实施你的方法,当用户点击“获得5000积分+解锁广告”时,会提示用户输入密码,成功后会再次提示用户解锁广告.这意味着需要加倍努力。如果是这样的话,我需要制作广告去除免费项目,我认为这是无法做到的。而且即使可以,双重提示也会很烦人,不是吗? 是的。单次购买会打开两次购买窗口,这很烦人。感谢您指出。我编辑了答案。以上是关于检索消费项目的历史记录的主要内容,如果未能解决你的问题,请参考以下文章
Google Latitude API 返回 0 个位置历史记录结果
从 Java 中的 Google Talk 中检索离线消息和聊天历史记录