Статус подписки на Flutter Android revenuecat активен даже после истечения срока действия

#android #flutter #revenuecat

#Android #трепетать #выручка

Вопрос:

Я использую плагин Revenuecat (purchases_flutter: ^3.7.0) в своем приложении для Android Flutter. Однако я заметил, что даже если (тестовая) подписка была завершена, код показывает, что она все еще активна.

Я использую следующий метод, чтобы определить, активна подписка или нет.

 static isUserSubscribed() async {  bool _isSubscribed = false;  await Purchases.setDebugLogsEnabled(false);  await Purchases.setup(revenueCatId);  if (userId != null) {  await Purchases.setup(revenueCatId, appUserId: userId);  PurchaserInfo purchaserInfo = await Purchases.getPurchaserInfo();  if (purchaserInfo.entitlements.all["Ads Free"] != null amp;amp;  purchaserInfo.entitlements.all["Ads Free"].isActive != null amp;amp;  purchaserInfo.entitlements.all["Ads Free"].isActive) {   // it comes here even though the subscription has been expired   _isSubscribed = true;   }   return _isSubscribed; }  

Я заметил, что когда я делаю тестовую покупку и даже после окончания подписки, описанный выше метод всегда возвращает значение true. Я даже перезапустил приложение, вышел из системы и даже очистил память.

Если я пойду в revenucat.com и удалите пользователя, выполнив поиск по адресу электронной почты, после чего он начнет возвращать ложь. Срок моей тестовой подписки истек утром около 9:00 утра, но вечером она также была активна в приложении.

Любая помощь будет признательна

Комментарии:

1. Пара вещей, которые я вижу из кода: 1) Purchases.setup следует вызывать только один раз при запуске приложения — возможно, вы настраиваете несколько экземпляров покупок, имеющих его в этой функции, и проверяете статус подписки на неправильном экземпляре. 2) Должно быть достаточно просто проверить purchaserInfo.entitlements.all["Ads Free"].isActive , все остальные условия избыточны, и иногда цепная логика играет с нами злую шутку при отладке.

2. Я вызываю этот метод в initState() по мере запуска приложения и при его запуске. Но я еще раз проверю, чтобы убедиться, что я не звоню в несколько мест. Также я изменю условие «если» и дам вам знать. Спасибо, что уделили мне время.