Ir para conteúdo
  • Cadastre-se

Joaquim Siqueira

Membros
  • Total de ítens

    7
  • Registro em

  • Última visita

Tudo que Joaquim Siqueira postou

  1. Segue em anexo a Demo modificada apenas no método AtivarTEF. Vai perceber que ele inicia o TEF, mas trava tudo quando você tenta fazer algo. TEFAPI Demo_Delphi.rar
  2. Desculpe a confusão, Daniel. Eu tentei dizer que anteriormente utilizei a versão 4.1.15.2, mas depois que você me falou, estou utilizando a versão mais recente (4.1.47.901), sem proteção, e que nada mudou. E sim, a DLL está na mesma pasta do exe da minha aplicação.
  3. A versão que eu estava utilizando é a 4.1.15.2. A DLL está no diretório do executável da minha própria aplicação. Desinstalei o Client PayGo e utilizei essa versão atualizada sem proteção no diretório do exe, mas nada mudou. Na verdade eu nunca cheguei a utilizar o Client PayGo, ele nem chegava a autenticar e a DLL que veio nele não funcionou aqui, acho que só funciona em produção, né? Daí olhando aqui no fórum baixei aquela versão antiga e funcionou. Até então não me importei com essas questões de versão e do Client, porque por enquanto só estou testando em homologação. Obs.: versão x64.
  4. Não tenho certeza se a versão que eu estava utilizando tinha a proteção, mas testei essa versão sem a Proteção do Warsaw, e o comportamento é o mesmo de anteriormente.
  5. Outro detalhe é que se eu utilizar TThread.CreateAnonymousThread(), ao invés de TTask.Run() a inicialização e os pagamentos funcionam. O problema que às vezes a aplicação fecha sozinha na inicialização do TEF, e sempre dá a Exception "System Error. Code: 1400. O identificador da janela é inválido." quando fecho a aplicação.
  6. Da seguinte forma funciona da maneira que eu gostaria, porém, ao iniciar um pagamento a aplicação trava completamente. E se eu executar a inicialização dentro de Synchronize dá na mesma que o uso sem a Thread. TTask.Run(procedure begin try ACBrTEFAPI1.Inicializar; TThread.Synchronize(nil, procedure begin if ACBrTEFAPI1.Inicializado then btEfetuarPagamentos.Enabled := true end); except end; end);
  7. Inicialmente tentei implementar uma Thread na inicialização do TEF para que o sistema não "congele", não porque demora tanto (cerca de 4 segundos), mas pensando em outras circunstâncias onde ocorram falhas durante a inicialização, uma falha no hardware da máquina TEF ou ela simplesmente não estar conectada, por exemplo. No entanto, o Pedro Frayman já me adiantou dizendo que isso não é possível com o ACBrTEFAPI. Então me foi sugerido fazer um timeout de 15-20 segundos e se o TEF não foi inicializado, matar o processo do sistema e executá-lo novamente. Porque caso contrário, o usuário ficaria esperando vários minutos com o sistema "congelado". A melhor solução pra mim seria inicializar o TEF em uma Thread, mas já que isso não é possível, como implementar o timeout, já que Thread e até um TTimer não funcionam nesse caso? Ou alguém tem uma solução diferente?
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...