checkPurchase static method

Future<void> checkPurchase({
  1. required BaseSettings settings,
  2. List<String> productIds = const ['unlock_feature'],
  3. List<String> subscriptionIds = const ['monthly_subscription:p-monthly-subscription'],
  4. void onCompleted()?,
})

Check entitlement status

Implementation

static Future<void> checkPurchase({
  required BaseSettings settings,
  List<String> productIds = const ['unlock_feature'],
  List<String> subscriptionIds = const ['monthly_subscription:p-monthly-subscription'],
  void Function()? onCompleted,
}) async {
  try {
    final customerInfo = await Purchases.getCustomerInfo();
    settings
      ..subscriptions = {
        for (final id in subscriptionIds) id: customerInfo.activeSubscriptions.contains(id),
      }
      ..unlockFeatures = {
        for (final id in productIds) id: customerInfo.allPurchasedProductIdentifiers.contains(id),
      };
  } catch (e) {
    LoggerUtil.d('Check purchase failed: $e');
  } finally {
    onCompleted?.call();
  }
}