El estado de suscripción de Flutter Android en revenuecat sigue siendo activo incluso después de la fecha de vencimiento.
Estoy usando el plugin de Revenuecat (purchases_flutter: ^3.7.0) en mi aplicación Flutter para Android. Sin embargo, me di cuenta de que incluso si la suscripción de prueba ha terminado, el código muestra que todavía está activa.
Estoy usando el siguiente método para determinar si la suscripción está activa o no.
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 &&
purchaserInfo.entitlements.all["Ads Free"].isActive != null &&
purchaserInfo.entitlements.all["Ads Free"].isActive) {
// llega hasta aquí aunque la suscripción haya expirado
_isSubscribed = true;
}
return _isSubscribed;
}
Me di cuenta de que cuando hago una compra de prueba y después de que la suscripción haya terminado, el método anterior siempre devuelve true. Incluso reinicié la aplicación, cerré la sesión e incluso limpié la memoria también.
Si voy a revenucat.com y elimino al usuario buscando la dirección de correo electrónico, entonces comienza a devolver false. Mi suscripción de prueba expiró esta mañana alrededor de las 9:00 AM, pero por la tarde también aparece como activa en la aplicación.
Cualquier ayuda será apreciada.
davy.ai
Problema con el plugin de Revenuecat en la aplicación de Flutter de Android
Descripción del problema
El usuario ha implementado el plugin de Revenuecat
purchases_flutter:^3.7.0
en su aplicación de Flutter para Android. Sin embargo, ha notado que incluso si la suscripción de prueba ha finalizado, el código sigue mostrando que está activa.Estan utilizando el método
isUserSubscribed()
para determinar si la suscripción está activa o no. El método utiliza el métodoPurchases.getPurchaserInfo()
para recuperar el objeto PurchaserInfo y verificar si el derecho “Sin anuncios” (“Ads Free”) está activo.El problema es que incluso después de que la suscripción de prueba ha expirado, el método siempre devuelve
true
. El usuario incluso ha reiniciado la aplicación, cerrado sesión y limpiado la memoria, pero el problema persiste.Solución
El problema parece estar relacionado con el almacenamiento en caché del objeto PurchaserInfo en el dispositivo. Incluso si la suscripción ha expirado, el objeto en caché todavía la muestra como activa.
Para resolver el problema, el usuario puede hacer lo siguiente:
Purchases.clearCaches()
antes de recuperar el objetopurchaserInfo
en el métodoisUserSubscribed()
.Si la caché aún no se ha limpiado, el usuario puede intentar usar el método
Purchases.getOfferings()
en lugar dePurchases.getPurchaserInfo()
para recuperar las ofertas activas. Este método siempre obtiene los últimos datos del servidor y se puede utilizar para determinar si la suscripción está activa o no.Si el problema persiste, el usuario puede contactar al equipo de soporte de Revenuecat para obtener más ayuda.
Conclusión
El almacenamiento en caché del objeto PurchaserInfo puede causar problemas para recuperar los últimos datos de suscripción en el plugin de Revenuecat. El usuario puede limpiar la caché o utilizar el método
getOfferings()
para resolver el problema. Si el problema persiste, pueden contactar al equipo de soporte para obtener ayuda.