mapException static method
Maps an exception to an IapError.
Implementation
static IapError mapException(Object error) {
final errorString = error.toString().toLowerCase();
// Cancelled
if (errorString.contains('cancel') ||
errorString.contains('user_canceled')) {
return IapError.fromCode(ErrorCodes.cancelled, originalError: error);
}
// Network
if (errorString.contains('network') || errorString.contains('socket')) {
return IapError.fromCode(ErrorCodes.networkError, originalError: error);
}
// Payment
if (errorString.contains('payment') || errorString.contains('billing')) {
return IapError.fromCode(ErrorCodes.paymentDeclined,
originalError: error);
}
// Product
if (errorString.contains('product') || errorString.contains('sku')) {
return IapError.fromCode(ErrorCodes.productNotFound,
originalError: error);
}
// Not allowed
if (errorString.contains('not_allowed') ||
errorString.contains('restricted')) {
return IapError.fromCode(ErrorCodes.notAllowed, originalError: error);
}
// Default
return IapError(
code: ErrorCodes.unknown,
message: error.toString(),
originalError: error,
);
}