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)
| 归档时间: |
|
| 查看次数: |
1533 次 |
| 最近记录: |