openPaymentScreen method

Future<TinkoffResult> openPaymentScreen({
  1. required String terminalKey,
  2. required String publicKey,
  3. required OrderOptions orderOptions,
  4. required CustomerOptions customerOptions,
  5. FeaturesOptions featuresOptions = const FeaturesOptions(),
  6. AndroidReceipt? androidReceipt,
  7. 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);
}