startPayment method

  1. @override
Future<Payment?> startPayment(
  1. PaymentParameters paymentParameters,
  2. PromptParameters promptParameters
)
override

Implementation

@override
Future<Payment?> startPayment(paymentParameters, promptParameters) async {
  var amountMoney = {
    "amount": paymentParameters.amountMoney.amount,
    "currencyCode": paymentParameters.amountMoney.currencyCode.name
  };

  var appFeeMoney = paymentParameters.appFeeMoney != null
  ? {
      "amount": paymentParameters.appFeeMoney!.amount,
      "currencyCode": paymentParameters.appFeeMoney!.currencyCode.name
    }
  : null;

  var tipMoney = paymentParameters.tipMoney != null
  ? {
      "amount": paymentParameters.tipMoney!.amount,
      "currencyCode": paymentParameters.tipMoney!.currencyCode.name
    }
  : null;


  var params = <String, dynamic>{
    'paymentParameters': {
      ...paymentParameters.toJson(),
      "amountMoney": amountMoney,
      "appFeeMoney": appFeeMoney,
      "tipMoney": tipMoney
    },
    'promptParameters': promptParameters.toJson(),
  };

  final response = await methodChannel.invokeMethod<Map>('startPayment', params);

  if (response != null) {
    final paymentJson = castPaymentMap(response);
    return Payment.fromJson(paymentJson);
  }

  return null;
}