Ошибка обновления инвентаря. Биллинг в приложении

Я настраиваю и тестирую биллинг в приложении. Мне удалось купить android.test.purchased, и он сделал то, что должен. Но теперь мне нужно его использовать, чтобы продолжить тестирование. Проблема в том, что я не могу добраться до инвентаря.

Когда это называется, я получаю result.isFaliure () вызывается, и я не могу получить инвентарь.

IabHelper.QueryInventoryFinishedListener _gotInventoryListener = new IabHelper.QueryInventoryFinishedListener() { @Override public void onQueryInventoryFinished(IabResult result, Inventory inventory) { if (_iabHelper == null) return; if (result.isFailure()) { Log.d(TAG, "Failed to query inventory: " + result); return; } Log.d(TAG, "Query inventory was successful."); Purchase premiumPurchase = inventory.getPurchase(SKU_PREMIUM); _isPremium = (premiumPurchase != null && verifyDeveloperPayload(premiumPurchase)); Log.d(TAG, "User is " + (_isPremium ? "PREMIUM" : "NOT PREMIUM")); update(); } }; 

Он регистрирует сообщение об ошибке

Не удалось запросить ресурсы: IabResult: ошибка обновления инвентаря (запрос принадлежащих предметов). (Ответ: -1003: Ошибка проверки подписи покупки)

Доход от android.test.purchased все еще принадлежит – он не позволит мне купить его снова. У моего телефона есть сетевое подключение, так что это не так.

Я НЕ загружал подписанный APK в Google Play, неважно, даже если я тестирую статические идентификаторы googles?

Решил … Кажется, что есть проблемы со статическими идентификаторами покупки. Вот решение, которое я нашел в ЭТОЙ теме:

 If you have used the android.test.purchased then one way to get rid of the error is to do the following:- 1. Edit Security.java and change the "return false" line in the verifyPurchase to "return true" - this is temporary, we'll be putting it back in a minute. 2. In your QueryInventoryFinishedListener, after the "if (result.isFailure()) {...}" lines add the following to consume and get rid of your never ending android.test.purchased item:- if (inventory.hasPurchase(SKU_ANDROID_TEST_PURCHASE_GOOD)) { mHelper.consumeAsync(inventory.getPurchase(SKU_ANDROID_TEST_PURCHASE_GOOD),null); } 3. Run your app so the consunmeAsync happens, this gets rid of the "android.test.purchased" item on the server. 4. Remove the consumeAsync code (or comment it out). Back in the Security.java, change the "return true" back to "return false". 

Я нашел ответ здесь :

«Вот рекомендация: убедитесь, что ваш платежный ключ (base64EncodedPublicKey) правильно сохранен. Это была моя проблема, после всего этого …»

Base64EncodedPublicKey был из другого приложения …

Это решение для меня.