Как удалить тестовую покупку IAP из Android Google Play
Я настроил бета-аккаунт для тестирования приложения IAP для приложения Google, над которым я работаю, проблема заключается в том, что после того, как я приобрел одноразовые продукты (без единовременной оплаты) тестовый IAP, я не могу "удалить его" как таковой так что теперь, даже когда я удаляю приложение и переустанавливаю, он запоминает покупку, что замечательно в реальном мире для пользователя, но не очень хорошо при попытке исправить ошибки!
Есть ли способ (кроме создания тонны учетных записей Gmail для тестирования) удалить покупку из учетной записи?
Ответы
Ответ 1
Это старый вопрос, но если кто-то все еще ищет решение, перейдите по ссылке:
Там вы можете вернуть/отменить тестовые покупки. Затем очистите состояние покупки с помощью этой команды:
adb shell pm clear com.android.vending
Ответ 2
Единственный способ, которым я знаю, - заставить потреблять в вашем приложении. Затем вы можете удалить этот код.
Ответ 3
Я использую cc.fovea.cordova.purchase плагин для кордовы для управления моими покупками IAP. Чтобы удалить мой неиспользуемый тест, я изменил свою регистрацию с Неиспользуемый для Расходуемого.
store.register({
id: this.predatorID,
alias: 'Predator Pack',
type: store.CONSUMABLE //store.NON_CONSUMABLE
});
Кроме того, видимо, есть зарезервированные ключевые слова, которые вы могли бы использовать вместо (если вы в этом). - https://developer.android.com/google/play/billing/billing_testing.html
Ответ 4
if (inventory.getPurchase(ITEM_SKU) != null ) {
try {
mIabHelper.consumeAsync(premiumPurchase, new IabHelper.OnConsumeFinishedListener() {
@Override
public void onConsumeFinished(Purchase purchase, IabResult result) {
Toast.makeText(MainActivity.this, "Consumed the test purchase successfully", Toast.LENGTH_SHORT).show();
}
});
} catch (IabHelper.IabAsyncInProgressException e) {
e.printStackTrace();
}
}
Однако методы refund() и revoke() не поддерживают тестовые покупки, и у вас остается только опция takeAsync().
Ответ 5
У меня была аналогичная проблема. К счастью, приложение, с которым я работаю, основано на WebView, поэтому я могу легко добавить ссылку или кнопку, чтобы запустить Javascript, чтобы перезвонить в приложение, чтобы использовать тестовые заказы. Так как тестовые заказы имеют пустую строку для orderId
, их легко идентифицировать, чтобы их использовать. После использования элемент может быть "куплен" снова. Удаление кнопки требует комментирования одной строки кода. НО, если кнопка случайно попадает в окончательное опубликованное приложение, это не вызовет никаких проблем, поскольку код использует только тестовые заказы, то есть реальные заказы не влияют. Эта кнопка будет просто смущать, а не катастрофа.
Я работаю над устройством без связанной с ним кредитной карты. Я установил некоторые промо-коды и использовал параметр "Исправить код" для своих тестовых заказов. Промо-коды не приводят к риску обмена деньгами, и я могу полностью проверить функциональность IAB в своем приложении с реальными продуктами, не прибегая к кодам тестов IAB.
Ничего не видно для меня в Google Кошельке по почте Мартина Кула.
Ответ 6
Просто:
Purchase unlockedPurchase = inventory.getPurchase(SKU_UNLOCKED);
// Log unlockedPurchase.getOrderId();
Перейдите на панель Google Play "Управление заказами", найдите этот идентификатор заказа и верните его (в нем должно быть указано "Тестовый заказ", если это ваш собственный заказ).
Ответ 7
Покупки Google Play Покупки хранятся в Google Кошельке.
https://wallet.google.com
При подписке перейдите в раздел "Сделки" слева. Тестовые покупки могут быть отменены оттуда.