Предположительно после xx.may.2019 метод getPurchases () перестал возвращать тестовый элемент "android.test.purchased".
Просто перестал работать, вот и все. Код клиента не изменился.
Такое поведение наблюдается на трех тестовых устройствах. Предпринимались попытки очистить кеш.
Когда я пытаюсь сделать покупку:
private static final String IN_APP_BILLING = "inapp";
private final String packageName = context.getPackageName();
private String rewardId = "android.test.purchased";
private static final int BILLING_VER = 3;
......
try {
buyIntentBundle = getBillingService().getBuyIntent(BILLING_VER, packageName, rewardId, IN_APP_BILLING, null);
}
catch (RemoteException e)
{
e.printStackTrace();
}
Получите BILLING_RESPONSE_RESULT_ITEM_ALREADY_OWNED.
Хорошо ...
Тогда звоните
String consumToken = IN_APP_BILLING + ":" + packageName + ":" + rewardedId;
try {
getBillingService().consumePurchase(BILLING_VER, packageName, consumToken);
......
метод успешно завершен.
После этого покупка успешно совершена.
Но
try {
Bundle purchases = getBillingService().getPurchases(BILLING_VER, packageName, IN_APP_BILLING, null);
.....
метод не возвращает тестовый элемент.
Загруженная альфа-версия в Google Play с реальными идентификаторами - все хорошо работает ... Единственный возврат обновляется в кеше в течение дня (может быть до 3 дней).
P.S. Извините за плохой английский.