create static method

Payment create({
  1. required MethodChannel channel,
  2. required IStoneHandler paymentHandler,
  3. IStoneTechHandler? iStoneTechHandler,
})

Método factory assíncrono para criação controlada e validação da licença

Implementation

static Payment create({
  required MethodChannel channel,
  required IStoneHandler paymentHandler,
  IStoneTechHandler? iStoneTechHandler,
}) {
  // Se já existe instância e licença validada, retorna ela diretamente
  if (_instance != null) {
    return _instance!;
  }

  // Cria nova instância
  final payment = Payment._(
    channel: channel,
    paymentHandler: paymentHandler,
  );

  // Salva instância e estado da licença validada
  _instance = payment;

  payment.channel.setMethodCallHandler((e) => IStoneHelper.callHandler(
        call: e,
        iStoneHandler: paymentHandler,
        stoneTechHandler: iStoneTechHandler,
        onTransaction: (model) => _checkPinpadActivated(model),
      ));

  return payment;
}