Я пытаюсь реализовать функциональность покупки внутри приложения с помощью библиотеки net.robotmedia.billing.
Выполняется покупка элемента управления (в приложении): производится покупка, есть заказ в Google Checkout, а затем, когда я перезапускаю устройство, например, при восстановлении транзакций можно восстановить состояние покупки.
При удалении и повторной установке приложения после восстановления транзакций состояние покупки может быть обнаружено. Однако на этот раз что-то (вероятно, приложение Market) отправляет "Ошибка при покупке". История транзакций (после покупки) всегда:
8x Transaction.PurchaseState.CANCELLED
, за которым следует один Transaction.PurchaseState.PURCHASED
.
Ошибка при покупке. - уведомление отправляется, даже если покупка не была произведена. В инициализации я делаю:
BillingController.setConfiguration(mConfiguration);
BillingController.registerObserver(myBillingObserver);
...
BillingController.checkBillingSupported(this);
BillingController.restoreTransactions(this);
Кажется, все работает, только я получаю это уведомление. Как я могу избавиться от этого уведомления? Или может быть, что-то, что я мог пропустить?
ОБНОВЛЕНИЕ. Вышеупомянутые отмененные транзакции - это только правильная история. Тем не менее, приложение на рынке (я полагаю) отправляет "Ошибка с покупкой" в RESTORE_TRANSACTIONS (я предполагаю, что когда получаю эти отмененные транзакции).
Возможно, это не важно, так как пользователь не отменяет, не перезакупает, не отменяет, не переупаковывает и т.д. Но как только транзакция отменяется, пользователь получает это уведомление всякий раз, когда обрабатывается обработка, которая раздражает (и путают для пользователя).