В первую очередь мои ситуации в тестовых закупках. Не настоящие покупки.
Я сделал тестовое приложение для биллинга внутри приложения. И добавил Google ID для тестирования.
Моя покупка - это управляемый товар (не расходный материал). Покупка работает нормально. Но у меня проблема с возвратом денег.
Если установить флажок отзыва в диалоговом окне возврата в консоли Google Play, Google удалит элемент у пользователя должным образом. Идентификатор заказа и продукта не отображается в информации о покупках пользователя. Нет проблем.
Но если НЕТ отметит чекбокс отзыва, элемент все еще сохраняется в пользователе, даже если деньги были возвращены. Он не удаляет даже после очистки кеша Google Play и данных пользователя, повторного входа в систему, перезагрузки.
Конечно, при возврате денег можно сказать «будьте осторожны». Однако что мне делать, если я ошибся, забыв отметить это? Я не могу найти ни одного элемента пользовательского интерфейса отозвать на странице сведений о возвращенном заказе.
Вы должны отменить использование, отметив покупку как использованную на стороне сервера или с помощью кода вашего приложения. Вы больше не можете удалить его из Play Console.
Найдите документацию на https://developer.android.com/google/play/billing/billing_onetime
ConsumeResponseListener listener = new ConsumeResponseListener() {
@Override
public void onConsumeResponse(@BillingResponse int responseCode, String outToken) {
if (responseCode != BillingResponse.OK) {
// This user has got a refund, remove the feature here.
}
}
};
mBillingClient.consumeAsync(purchaseToken, listener);