purchase method
- required String productId,
- dynamic product,
override
Purchase product by id
Implementation
@override
Future<bool> purchase({
required String productId,
dynamic product,
}) async {
assert(product != null, 'Product can\'t be null');
logger.info('Start purchase $productId');
if (product is! ApphudProduct)
throw const WrongProductTypeProvidedException();
final purchaseResult = await Apphud.purchase(
product: product,
);
final error = purchaseResult.error;
if (error != null) {
logger.info('Failed to purchase product');
throw const PurchaseFailedException(ErrorCode.unknown);
}
final isSubscriptionSuccess =
purchaseResult.subscription?.isActive ?? false;
subscriptionStatus.add(isSubscriptionSuccess);
return isSubscriptionSuccess;
}