subscriptionStatus property
SubscriptionStatus
get
subscriptionStatus
Gets the subscription status.
final status = receipt.subscriptionStatus;
if (status == SubscriptionStatus.expiringSoon) {
showRenewalPrompt();
}
Implementation
SubscriptionStatus get subscriptionStatus {
if (!isSubscription) return SubscriptionStatus.none;
if (expiresAt == null) return SubscriptionStatus.active;
final now = DateTime.now();
if (now.isAfter(expiresAt!)) {
// Check for grace period (3 days after expiry)
final gracePeriodEnd = expiresAt!.add(const Duration(days: 3));
if (now.isBefore(gracePeriodEnd)) {
return SubscriptionStatus.gracePeriod;
}
return SubscriptionStatus.expired;
}
// Check if expiring soon (within 3 days)
final soonThreshold = expiresAt!.subtract(const Duration(days: 3));
if (now.isAfter(soonThreshold)) {
return SubscriptionStatus.expiringSoon;
}
return SubscriptionStatus.active;
}