android - 检索消费项目的历史

标签 android in-app-purchase google-play

在我的 Android 游戏中,我在应用程序内购买一次出售多个项目,即获得 5000 个金币 + 删除广告。这意味着我同时拥有消耗品和非消耗品。 问题是关于恢复购买。我知道我可以恢复非消耗品购买,但由于我的 IAP 包含消耗品和非消耗品,我无法恢复购买,因为我将消耗该产品。

有没有办法在消费完成后检索商品的购买详细信息?

最佳答案

只需创建一个额外的消耗品,用于购买超出前 5,000 枚的额外硬币,并在购买后立即像往常一样消耗它,自己记录 5,000 枚硬币的增量,就像在 TrivialDrive IAB 示例中所做的那样。

当您首次购买合并移除广告/获得 5,000 枚金币的元素时,不要消耗该元素 - 将其视为非消耗品 - 但将购买事件本身视为执行相同逻辑的一次性触发器就像您在消费“额外购买 5,000 个硬币”项目时一样。

请记住,就此流程的 Google 方面而言,“消耗品”和“非消耗品”元素彼此没有区别。它们是可消耗的还是不可消耗的,仅取决于您在代码中做出的决定是使用它们并在内部记录可消耗资源的增量,还是将它们留在那里作为购买已经发生的事实的永久记录。将元素留在那里使其在所有支持 IAB 的用户设备上可见,而消耗品必须通过其他方式(例如,在您的应用程序自己的云数据库中)记录(并在设备之间共享)。

因此,上述方法的替代方案是立即消费删除广告/添加 5,000 个硬币项目的购买,并在您自己的数据库中记录广告已永久删除以及用户拥有 5,000 个硬币。然后,该项目可以由用户重新购买,关闭广告作为多余的空操作,并且只记录 5,000 个硬币的增量。

但是第二种方法只会让您的用户感到困惑,因为该项目仍会被称为“删除广告/获得 5,000 个硬币”,即使在广告已被删除之后也是如此。此外,我在本回答开头概述的方法允许您创建任意数量的硬币购买项目,不仅有 5,000 个硬币,还有其他数量。

关于android - 检索消费项目的历史,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25956184/

相关文章:

android - Firebase 身份验证有效,但 firestore 拒绝请求,因为权限缺失或不足

java - 不可序列化对象的数组是否可序列化?

android - 我想在 recyclerview 中加载带有 fragment 的不同布局。那可能吗?

java - Android 应用内结算 - 部分卡不被接受

android - Firebase 性能详细 URL 模式

objective-c - iOS 上自动续订订阅所需的服务器

android - 实体商品的应用内购买 - 禁止或不推荐?

ios - 处理 'lifetime' 订阅以及自动续订应用内购买

Android Market 不显示我的新版本

android - 如何从 google play 开发者控制台中删除暂停的应用程序?