Я настраивал Android в биллинге приложений v3, используя класс IABHelper
и следуя примеру кода, предоставленному Google. У меня это в основном работает полностью через покупку (с подписанным apk и реальной оплатой кредитной карты).
Однако в ходе тестирования я начал получать новую ошибку в QueryInventoryFinishedListener
из метода queryInventoryAsync()
:
IABResult message: "Error refreshing inventory (querying prices of items)"
IABResult response: 5:Developer Error
Странная вещь # 1 заключается в том, что это происходит после возврата обратного вызова onIabSetupFinished()
(с обычным сообщением "Hooray" ). Странная вещь №2 заключается в том, что я могу впоследствии и успешно обработать покупку приложения (используя метод launchPurchaseFlow()
).
Я нашел патч здесь, в котором рассматриваются те же самые симптомы, которые я испытываю, но это не сработало для меня.
Я пытался использовать разные устройства, используя разные учетные записи gmail и создавая новый продукт с нуля. Я даже получаю ошибку в более ранних версиях моего приложения, которая работает правильно (что?!).
Мой вопрос: Почему я не могу запросить инвентаризацию продукта, даже после того, как IABHelper
подтвердил, что настройка прошла успешно? Что может вызвать эту ошибку и как ее исправить?
Благодарим вас за понимание.
UPDATE
Мне удалось снова заставить транзакции по инвентаризации работать, перебирая учетную запись, которую я тестировал, и переключаясь на новую учетную запись. Без изменения кода.
Мой предварительный вывод состоит в том, что что-то испортилось в учетной записи пользователя, которую я использовал (?). Во время тестирования я довольно сильно ударил его по множеству покупок в разных продуктах в приложении, но мне все равно нужно выяснить, что произошло, и убедиться, что это не происходит ни с одним из моих пользователей.
Пожалуйста, дайте мне знать, если у вас есть опыт с этим. Спасибо!