0
我正在Android應用程序中實施應用程序內購買。我在Google Play開發者控制檯中設置了該應用並設置了多個產品。Android IabHelper.queryInventoryAsync方法返回不正確的產品信息
我將IabHelper和相關的計費文件添加到每個Android文檔的代碼庫中。我能夠成功setup
:
String base64EncodedPublicKey = Configurations.getInstance().getGooglePlayLicenseKey();
googlePlayHelper = new IabHelper(AtavistApplication.getContext(), base64EncodedPublicKey);
googlePlayHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() {
public void onIabSetupFinished(IabResult result) {
if (!result.isSuccess()) {
Utilities.log("Unable to setup billing: " + result);
isBillingSetup = false;
} else {
Utilities.log("Billing setup successfully");
isBillingSetup = true;
}
}
});
但是,當我查詢谷歌Play下架的產品信息,像這樣:
IabHelper.QueryInventoryFinishedListener mQueryFinishedListener = new IabHelper.QueryInventoryFinishedListener() {
public void onQueryInventoryFinished(IabResult result, Inventory inventory)
{
if (result.isFailure()) {
Utilities.log("getProducts failed");
callback.failure(null);
} else {
Utilities.log("getProducts succeeded");
callback.success(inventory);
}
}
};
googlePlayHelper.queryInventoryAsync(true, identifiers, mQueryFinishedListener);
哪裏identifiers
是字符串產品標識的列表:
ArrayList<String> productIDs = new ArrayList<String>();
productIDs.add("com.first.product");
productIDs.add("com.second.product");
productIDs.add("com.third.product");
我收到了一個成功的回覆,其中只包含一個不是我的Google Play帳戶中設置的產品的產品。其productID是我們之前提供的產品的產品ID,但它剛剛從Google Play的有效產品列表中刪除。
問題:
- 爲什麼
queryInventoryAsync
沒有返回正確的名單? - 爲什麼它會返回目前尚未在Google Play中設置的產品?
- 我是否錯過了導致這種混淆的一些基本配置步驟?