【问题标题】:Check for previously consumed purchases检查以前消费的购买
【发布时间】:2014-08-03 05:58:05
【问题描述】:

我想在用户购买可消耗的虚拟货币项目时禁用应用中的广告。是否有任何方法可以检查以前是否购买过消耗品 - 从文档中可以看出,购买状态一旦被消费就被设置为无主。

【问题讨论】:

    标签: android in-app-purchase google-play


    【解决方案1】:

    使用queryPurchaseHistoryAsync(...)

    返回用户为每个 SKU 进行的最近一次购买,即使该购买已过期、取消或消耗。

    并检查响应中的任何 Purchase.sku 是否与您关心的项目的 SKU...匹配。

    【讨论】:

      【解决方案2】:

      根据文档,您是正确的 - getPurchases() 只会返回未消费的购买。

      解决此问题的一种方法是在您的 SharedPreferences 中为购买的每件商品存储一个布尔值。读取值时,将默认设置为 false。

      SharedPreferences myPrefs = getSharedPreferences(MY_SHARED_PREFS, Context.MODE_PRIVATE);
      boolean isPurchased = myPrefs.getBoolean(PURCHASED_ITEM_001, false);
      

      【讨论】:

      • 谢谢,这似乎是唯一的方法。希望避免这种情况,因为卸载时 SharedPreference 会丢失。
      • 我知道已经有一段时间了,但我一直在寻找替代方案,因为设置首选项不考虑退款。不幸的是,我们现在有一个人们购买物品并执行退款以保留物品而无需付款的社会。
      • 这是不正确的,因为用户可以重新安装应用程序,您将丢失此 SharedPreferences 并且他/她之前的购买将变为活动状态。退房; stackoverflow.com/a/55211744/1847645
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-28
      • 2014-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多