首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检查订阅项的过期日期

如何检查订阅项的过期日期
EN

Stack Overflow用户
提问于 2017-10-19 07:48:15
回答 1查看 2K关注 0票数 9

QueryInventoryFinishedListener of IabHelper尚未返回过期的订阅项。

另一方面,Google计费库的PurchaseHistoryResponseListener似乎接收所有购买的项目,其中包括过期的项目。

在Google计费库上,我们必须检查PurchaseHistoryResponseListener的购买日期和项目的每个过期日期?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-19 12:49:22

queryPurchases对queryPurchaseHistoryAsync

通常,我们应该使用queryPurchases(String skuType),它不会返回过期的项。queryPurchaseHistoryAsync返回已启用和禁用的项,如下面的文档所示。

queryPurchases

获取在您的应用程序中购买的所有项目的详细信息。此方法使用Google应用程序的缓存,而不启动网络请求。

queryPurchaseHistoryAsync

返回用户为每个SKU所做的最新购买,即使该购买已过期、取消或消费。

关于queryPurchaseHistoryAsync

我无法想象queryPurchaseHistoryAsync的用例。如果我们需要使用queryPurchaseHistoryAsync,我们需要实现来检查它是否过期。

代码语言:javascript
复制
  private PurchaseHistoryResponseListener listener = new PurchaseHistoryResponseListener() {
    @Override
    public void onPurchaseHistoryResponse(int responseCode, List<Purchase> purchasesList) {
      for (Purchase purchase : purchasesList) {
        if (purchase.getSku().equals("sku_id")) {
          long purchaseTime = purchase.getPurchaseTime();
          // boolean expired = purchaseTime + period < now
        }
      }
    }
  };

购买对象不具有周期信息,因此必须从BillingClient.querySkuDetailsAsync获取上述期间,或者进行硬编码。下面是使用querySkuDetailsAsync的示例实现。

代码语言:javascript
复制
    List<String> skuList = new ArrayList<>();
    skuList.add("sku_id");
    SkuDetailsParams.Builder params = SkuDetailsParams.newBuilder();
    params.setSkusList(skuList).setType(BillingClient.SkuType.SUBS);
    billingClient.querySkuDetailsAsync(params.build(), new SkuDetailsResponseListener() {
      @Override
      public void onSkuDetailsResponse(int responseCode, List<SkuDetails> skuDetailsList) {
        if (skuDetailsList == null) {
          return;
        }
        for (SkuDetails skuDetail : skuDetailsList) {
          if (skuDetail.getSku().equals("sku_id")) {
            String period = skuDetail.getSubscriptionPeriod();

          }
        }
      }
    });
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46825023

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档