Android In-App-Billing退款/取消需要很长时间

jen*_*ymo 6 android in-app-purchase in-app-billing

)

我正在尝试在我的应用中实施应用内结算功能.在Google Play开发者控制台中,我声明了一个托管项目.买这个项目真的很好.但现在,当我在谷歌钱包商家中心退款或取消购买时,我的应用程序需要很长时间(更多天)来识别该商品不再拥有.

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

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

我很感谢任何提示,这有助于我解决这个问题:D

另外,我问我的代码,如果购买了商品.我正在使用应用内结算v3.

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;
}
Run Code Online (Sandbox Code Playgroud)

小智 1

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

您是否按照示例应用程序使用 IABHelper连接到 Google Play?

 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
      }
   }
};
Run Code Online (Sandbox Code Playgroud)