openPaymentScreen method
Future<TinkoffResult>
openPaymentScreen({
- required String terminalKey,
- required String publicKey,
- required OrderOptions orderOptions,
- required CustomerOptions customerOptions,
- FeaturesOptions featuresOptions = const FeaturesOptions(),
- AndroidReceipt? androidReceipt,
- IosReceipt? iosReceipt,
Открытие экрана оплаты.
Возвращает true
при успешной оплате, а
в случае ошибки либо отмены вернет false
.
Подробное описание параметров см. в реализации OrderOptions, CustomerOptions, FeaturesOptions, Receipt.
Implementation
Future<TinkoffResult> openPaymentScreen({
required String terminalKey,
required String publicKey,
required OrderOptions orderOptions,
required CustomerOptions customerOptions,
FeaturesOptions featuresOptions = const FeaturesOptions(),
AndroidReceipt? androidReceipt,
IosReceipt? iosReceipt,
}) async {
_checkActivated();
final method = Method.openPaymentScreen;
String? ffdVersion;
if (androidReceipt?.runtimeType == AndroidReceiptFfd105) {
ffdVersion = "105";
} else if (androidReceipt?.runtimeType == AndroidReceiptFfd12) {
ffdVersion = "12";
}
final arguments = <String, dynamic>{
method.orderOptions: orderOptions.arguments,
method.customerOptions: customerOptions.arguments,
method.featuresOptions: featuresOptions.arguments,
method.receipt:
Platform.isIOS ? iosReceipt?.arguments : androidReceipt?.arguments,
method.terminalKey: terminalKey,
method.publicKey: publicKey,
method.ffdVersion: ffdVersion,
}..removeWhere((key, value) => value == null);
return _channel
.invokeMethod(method.name, arguments)
.then(parseTinkoffResult);
}