sale method

Future<TransactionResponse> sale({
  1. String? merchantKey,
  2. required String clientTransactionId,
  3. required double amount,
  4. double? tipAmount,
  5. bool showReceipt = true,
  6. bool showTransactionResult = true,
  7. bool showRating = true,
  8. Map<String, dynamic>? saleToAcquirerData,
})

Implementation

Future<TransactionResponse> sale({
  String? merchantKey,
  required String clientTransactionId,
  required double amount,
  double? tipAmount,
  bool showReceipt = true,
  bool showTransactionResult = true,
  bool showRating = true,
  Map<String, dynamic>? saleToAcquirerData,
}) async {
  final Map<String, dynamic> params = <String, dynamic>{
    'merchantKey': merchantKey ?? 'deprecated',
    'clientTransactionId': clientTransactionId,
    'amount': ParamUtils.doubleToAmount(amount),
    'tipAmount':
        tipAmount != null ? ParamUtils.doubleToAmount(tipAmount) : null,
    'show_receipt': showReceipt,
    'show_transaction_result': showTransactionResult,
    'show_rating': showRating,
    'saleToAcquirerData': saleToAcquirerData != null
        ? base64Encode(
            const Utf8Encoder().convert(saleToAcquirerData.toString()),
          )
        : null,
  };

  final data = await _invokePosMethod('saleRequest', params);

  return TransactionResponse.create(_callbackScheme, data);
}