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! Package) {
throw const WrongProductTypeProvidedException();
}
try {
final result = await Purchases.purchasePackage(product);
_updateCustomerInfo(result);
return subscriptionStatus.value;
} on PlatformException catch (e) {
logger.info('Purchase product, platform exc $e');
throwErrorOnPlatformException(e);
} on Object catch (_) {
logger.info('Failed to purchase product');
throw const PurchaseFailedException(ErrorCode.unknown);
}
}