makePurchaseDetailed method
Opens the Store purchase UI and returns status with HRESULT diagnostics.
Implementation
@override
Future<StorePurchaseDetails> makePurchaseDetailed(String storeId) async {
final result = await methodChannel.invokeMethod<dynamic>(
'makePurchaseDetailed',
{'storeId': storeId},
);
final value = asStringKeyedMap(result);
final statusValue = value['status'];
if (statusValue is! int ||
statusValue < 0 ||
statusValue >= StorePurchaseStatus.values.length) {
throw const FormatException(
'Microsoft Store returned an invalid purchase status.',
);
}
final extendedErrorCode = value['extendedErrorCode'];
if (extendedErrorCode != null && extendedErrorCode is! String) {
throw const FormatException(
'Microsoft Store returned an invalid extended error code.',
);
}
return StorePurchaseDetails(
status: StorePurchaseStatus.values[statusValue],
extendedErrorCode: extendedErrorCode as String?,
);
}