startTransaction method

Future<void> startTransaction({
  1. required StonePaymentParams params,
})

Implementation

Future<void> startTransaction({
  required StonePaymentParams params,
}) async {
  isFinishPayment = false;
  handler?.clear();
  if (handler == null) {
    return;
  }
  credentials = params.credentials;
  if (!StoneTech.isPinpadActivated) {
    handler!.setStreamStatus(const StoneStatusActivateRunning(message: 'Ativando Terminal...'));
    await initialize(stoneCredentials: params.credentials, stonePaymentParams: params);
    return;
  } else {
    stone.payment.setHandler(handler!);
  }
  final amountInt = _getSaleValueStone(params.amount);
  currentMethod = params.type;
  switch (currentMethod) {
    case StonePaymentType.credit:
      {
        if (params.installments != null) {
          stone.payment.creditPaymentParc(
            value: amountInt,
            installment: params.installments!,
            printEstablishmentSlip: true,
            printCustomerSlip: false,
          );
        } else {
          stone.payment.creditPayment(
            amountInt,
            printEstablishmentSlip: true,
            printCustomerSlip: false,
          );
        }
      }
      break;
    case StonePaymentType.debit:
      {
        stone.payment.debitPayment(
          amountInt,
          printEstablishmentSlip: true,
          printCustomerSlip: false,
        );
      }
      break;
    case StonePaymentType.pix:
      {
        stone.payment.pixPayment(
          amount: amountInt,
          qrCodeAuthroization: credentials.qrCodeAuthorization ?? '',
          qrCodeProviderid: credentials.qrCodeProviderid ?? '',
          printEstablishmentSlip: true,
          printCustomerSlip: false,
        );
      }
      break;
    case StonePaymentType.voucher:
      {
        stone.payment.voucherPayment(
          amountInt,
          printEstablishmentSlip: true,
          printCustomerSlip: false,
        );
      }
      break;
    default:
      throw Exception('Method not supported');
  }
}