PurchaseError.fromPlatformError constructor
PurchaseError.fromPlatformError(
- Map<
String, dynamic> errorData, - IapPlatform platform
Creates a PurchaseError from platform-specific error data
Implementation
factory PurchaseError.fromPlatformError(
Map<String, dynamic> errorData,
IapPlatform platform,
) {
ErrorCode errorCode = errorData['code'] != null
? ErrorCodeUtils.fromPlatformCode(errorData['code'], platform)
: ErrorCode.Unknown;
// Always try to infer from message if we have one, as it might provide more specific information
if (errorData['message'] != null) {
final inferredCode = _normalizeToErrorCode(errorData);
if (inferredCode != ErrorCode.Unknown) {
errorCode = inferredCode;
}
}
return PurchaseError(
message: errorData['message']?.toString() ?? 'Unknown error occurred',
responseCode: (errorData['responseCode'] as num?)?.toInt(),
debugMessage: errorData['debugMessage']?.toString(),
code: errorCode,
productId: errorData['productId']?.toString(),
productIds: _parseProductIds(errorData['productIds']),
productType: errorData['productType']?.toString(),
isEmptyProductList: errorData['isEmptyProductList'] as bool?,
subResponseCodeAndroid: parseSubResponseCodeAndroid(
errorData['subResponseCodeAndroid'] ?? errorData['subResponseCode'],
),
platform: platform,
);
}