)
我正在尝试在我的应用程序中实现应用内计费。在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;
}发布于 2013-11-12 13:46:22
Play Store根本不会缓存IAP购买库存,应该在您的活动中定期查询。订单取消传播大约只需15-30分钟。
您是否按照sample app使用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
}
}
};https://stackoverflow.com/questions/19227676
复制相似问题