create static method
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 não for válida
_isLicenceValidated = false; // Reseta o estado de validação
throw Exception('Invalid licence key. Please check your licence key.');
}
_instance = payment; // Armazena a instância criada
_isLicenceValidated = true;
return payment;
}