Мое приложение использует встроенную покупку для включения «про» версии через библиотеку Android BillingClient.Это позволяет безболезненно получать информацию о ценах, принимать оплату и отмечать обновление как приобретенное.
Однако, если я захожу в консоль как владелец приложения и возвращаю покупку, я не могу понять, как я себя чувствую.должен отключить профессиональные функции в моем приложении.Похоже, в результате getPurchasesList()
нет ничего, что указывало бы на статус покупки, но также, насколько я могу судить, это кэшируется на локальном устройстве, поэтому оно не обновляется автоматически.
В настоящее время мой чек выглядит следующим образом:
Purchase.PurchasesResult purchases = billingClient.queryPurchases(BillingClient.SkuType.INAPP);
if (purchases != null)
{
List<Purchase> bought = purchases.getPurchasesList();
if ( bought != null && 0 < bought.size() )
{
for (int i=0;i<bought.size(); i++)
{
if ( bought.get(i).getSku().equals(PRO_VERSION) )
{
purchased = true;
}
}
}
}
Есть ли здесь что-то, что я могу сделать, чтобы проверить, была ли возвращена покупка, или способ сделать вторичную проверку в будущем?Я не хочу регулярно удалять уведомление о покупке из кэша, потому что приложение, вероятно, будет использоваться в зонах с ограниченным или неоднородным сигналом, и я не хочу, чтобы кто-то, кто законно приобрел его, внезапно потерял свою «про» версию привремя им нужно.В то же время, если кто-то купил его, а затем вернул деньги, я хотел бы отразить это в приложении.
В настоящее время у меня нет какой-либо собственной серверной инфраструктуры, и я бы предпочелчтобы так было.