create static method
Factory assíncrono com verificação de licença
Implementation
static Future<Payment> create({
required MethodChannel channel,
required String licenceKey,
}) async {
// Se já existe instância e licença validada, retorna ela diretamente
if (_instance != null && _isLicenceValidated) {
return _instance!;
}
final payment = Payment._(
channel: channel,
licenceKey: licenceKey,
);
_isLicenceValidated = await payment._checkLicence();
if (!_isLicenceValidated) {
_instance = null; // Reseta a instância se a licença for inválida
_isLicenceValidated = false; // Reseta o estado de licença válida
throw Exception('Invalid licence key. Please check your licence key.');
}
_instance = payment; // Armazena a instância criada
_isLicenceValidated = true;
return payment;
}