首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android In-App-计费退款/取消耗时较长

Android In-App-计费退款/取消耗时较长
EN

Stack Overflow用户
提问于 2013-10-07 22:38:41
回答 1查看 1.6K关注 0票数 6

)

我正在尝试在我的应用程序中实现应用内计费。在Google Play开发人员控制台中,我声明了一个托管项目。买这个东西真的很好用。但现在,当我在谷歌钱包商家中心退款或取消购买时,我的应用程序需要很长时间(更长时间)才能识别出该商品已不再拥有。

我已经读了很多关于这个问题的文章,我认为一个合乎逻辑的解释是,购买的东西保存在Google Play商店的缓存中。虽然我知道这个问题以前经常被问到,但我在这里再问一次:

有没有可能清除缓存,或者有人知道如何告诉我的应用程序,当购买不再拥有?

我很感谢任何帮助我解决这个问题的提示:D

此外,我的代码中,我问,如果购买的项目。我使用的是应用内计费v3。

代码语言:javascript
复制
public boolean hasUserBoughtItem() {

    try {
        Bundle ownedItems = mService.getPurchases(mUsedAPI, mContext.getPackageName(),
                mPurchaseType, null);

        int response = ownedItems.getInt("RESPONSE_CODE");
        if(response == 0) {
            ArrayList<String> ownedSkus = ownedItems.getStringArrayList("INAPP_PURCHASE_ITEM_LIST");

            if(!ownedSkus.isEmpty()) {
                for(String sku : ownedSkus) {

                    if(sku.equals(Constants.ITEM_ID_ALL_RECIPES)) {
                        return true;
                    }
                }
            } 

            return false;
        }
    } catch(Exception e) {
        e.printStackTrace();
    }

    return false;
}
EN

回答 1

Stack Overflow用户

发布于 2013-11-12 13:46:22

Play Store根本不会缓存IAP购买库存,应该在您的活动中定期查询。订单取消传播大约只需15-30分钟。

您是否按照sample app使用IABHelper连接到Google Play?

代码语言:javascript
复制
 IabHelper.QueryInventoryFinishedListener mGotInventoryListener 
   = new IabHelper.QueryInventoryFinishedListener() {
   public void onQueryInventoryFinished(IabResult result,
      Inventory inventory) {

      if (result.isFailure()) {
        // handle error here
      }
      else {
        // does the user have the premium upgrade?
        mIsPremium = inventory.hasPurchase(SKU_PREMIUM);        
        // update UI accordingly
      }
   }
};
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19227676

复制
相关文章

相似问题

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