Почему реализация onPurchasesUpdated() приводит к появлению ITEM_ALREADY_OWNED и пустому списку покупок?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Почему реализация onPurchasesUpdated() приводит к появлению ITEM_ALREADY_OWNED и пустому списку покупок?

Сообщение Anonymous »

В настоящее время я реализую покупки в приложении за виртуальные монеты, которые можно использовать.
Я использую внутреннюю тестовую версию, и моя тестовая учетная запись подключена.Запуск процесса выставления счетов инициируется кнопкой.
Однако есть несколько проблем.
Список покупок пуст, что я не считаю нормальным.

Код: Выделить всё

@Override
public void onPurchasesUpdated(BillingResult billingResult, @Nullable List
 purchases) {

if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK && purchases != null) {

for (Purchase purchase : purchases) {
handlePurchase(purchase);
}

} else if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.USER_CANCELED) {

} else {

}
Инструкция if не будет выполняться.
Если я попытаюсь принудительно протестировать функциональность handlePurchases(), передав этот фрагмент оператору else в onPurchasesUpdated(), это приведет к ошибке ссылки на нулевой объект, поскольку он пытается выполнить итерацию по пустому списку.

Код: Выделить всё

for (Purchase purchase : purchases) {
handlePurchase(purchase);
}
Код BillingResult возвращает: ITEM_ALREADY_OWNED
Чтобы исправить это, я попытался вызвать ConsumerAsync(), как показано в коде ниже.

Код: Выделить всё

    public void handlePurchase(Purchase purchase) {
if (purchase.getPurchaseState() == Purchase.PurchaseState.PURCHASED) {
// Grant entitlement to the user.

ConsumeParams consumeParams =
ConsumeParams.newBuilder()
.setPurchaseToken(purchase.getPurchaseToken())
.build();

client.consumeAsync(consumeParams, consumeResponseListener);

}
}
Кроме того, я возместил все существующие заказы в системе управления заказами Play Console.
Мой вопрос: почему ошибка ITEM_ALREADY_OWNED все еще остается? и почему список покупок пуст.

Подробнее здесь: https://stackoverflow.com/questions/594 ... -owned-and
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»