Aggille Sistemas de Gestão Postado 6 Fevereiro Compartilhar Postado 6 Fevereiro Boa tarde.. estou usando o novo componente TACBrAbecsPinPad, para exibir o logo da empresa no pinpad antes de inicialiar o tef, para dar o efeito de Splash... Criei uma classe pra manipular o pinpad, que configura e ativa o pinpad, exibe a imagem e desativa... deixando a imagem até que o pdv comece e enviar as mensagens para o pinpad.. Então no inicio do form pdv eu instancio a classe do pinpad, mostro o logo e sigo com a venda.. tudo certo, as vendas funcionam.. quando encerro o form do PDV, o componente TEFApi é devidamente desconectado e encerrado. Porém, na segunda vez que entro no form de pdv, não consigo exiir a image, pois recebo o erro de Acesso negado, como se tivesse algo conectaco na COM do pinpad.. sendo que todos os componentes foram devidamente encerrados e liberados da memória... Aggille Sistemas de Gestão Leandro do Couto (51) 99105.1600 Novo Hamburgo / RS [email protected] www.aggille.com.br Link para o comentário Compartilhar em outros sites More sharing options...
Fundadores Daniel Simoes Postado 7 Fevereiro Fundadores Compartilhar Postado 7 Fevereiro @Aggille Sistemas de Gestão Se o TEF for sempre o PayGo.. vc poderia recorrer ao Typecast e dasativar na API if ACBrTEFAPI1.TEF is TACBrTEFAPIClassPayGoWeb then begin with TACBrTEFAPIClassPayGoWeb(ACBrTEFAPI1.TEF) do begin TEFPayGoAPI.DesInicializar; TEFPayGoAPI.Inicializar; end; end; Daniel Simões de Almeida O melhor TEF, é com o Projeto ACBr - Clique e Conheça Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Link para o comentário Compartilhar em outros sites More sharing options...
Aggille Sistemas de Gestão Postado 7 Fevereiro Autor Compartilhar Postado 7 Fevereiro isso teria o mesmo efeito de chamar FTEF.DesInicializar, ou FTEF.TEF.DesIncializar ? Aggille Sistemas de Gestão Leandro do Couto (51) 99105.1600 Novo Hamburgo / RS [email protected] www.aggille.com.br Link para o comentário Compartilhar em outros sites More sharing options...
Fundadores Daniel Simoes Postado 7 Fevereiro Fundadores Compartilhar Postado 7 Fevereiro 6 minutos atrás, Aggille Sistemas de Gestão disse: isso teria o mesmo efeito de chamar FTEF.DesInicializar, ou FTEF.TEF.DesIncializar ? Esses métodos fariam algumas tarefas extras, como por exemplo, limpar a fila de transações pendentes Daniel Simões de Almeida O melhor TEF, é com o Projeto ACBr - Clique e Conheça Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Link para o comentário Compartilhar em outros sites More sharing options...
Aggille Sistemas de Gestão Postado 7 Fevereiro Autor Compartilhar Postado 7 Fevereiro fiz dessa forma e o erro persiste... Aggille Sistemas de Gestão Leandro do Couto (51) 99105.1600 Novo Hamburgo / RS [email protected] www.aggille.com.br Link para o comentário Compartilhar em outros sites More sharing options...
Fundadores Daniel Simoes Postado 7 Fevereiro Fundadores Compartilhar Postado 7 Fevereiro O erro "Acesso negado" indica que outra aplicação está acessando a Porta Serial... não há muito que possamos fazer do lado do ACBr Qual o Tipo de TEF utilizado ? Daniel Simões de Almeida O melhor TEF, é com o Projeto ACBr - Clique e Conheça Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Link para o comentário Compartilhar em outros sites More sharing options...
Aggille Sistemas de Gestão Postado 7 Fevereiro Autor Compartilhar Postado 7 Fevereiro PaygoWEB com componente TACBrTEFAPI... a impressão que tenho é que o componente, mesmo depois de Encerrado não está fechando a comunicação com a serial.. fiz um teste aqui.. abri o exemplo, com meu pdv fechado.. comunica tudo certo.. desativei o pinpad no programa exemplo, abri meu pdv.. logicamente nao consigo conecar pelo exemplo.. fechei o form do pdv, conferi na depuração que o TACBrTEFAPI foi desinicializado, o form e o componente foram devidamente destruidos.. dai nao consigo mais abrir o teste... quando eu encerro meu sistema dai libera o programa teste pra conectar novamente... Aggille Sistemas de Gestão Leandro do Couto (51) 99105.1600 Novo Hamburgo / RS [email protected] www.aggille.com.br Link para o comentário Compartilhar em outros sites More sharing options...
Fundadores Daniel Simoes Postado 7 Fevereiro Fundadores Compartilhar Postado 7 Fevereiro Já falei com a Setis sobre o assunto, mas não há muito que possamos fazer, sem uma modificação do lado deles. Daniel Simões de Almeida O melhor TEF, é com o Projeto ACBr - Clique e Conheça Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Link para o comentário Compartilhar em outros sites More sharing options...
marcelobd Postado 7 Fevereiro Compartilhar Postado 7 Fevereiro bom dia em relação ao conflito da porta do pinpad tive o mesmo problema ao tentar exibir qrcode de pix no pinpad mesmo fazendo assim tefapi.DesInicializar; freeandnil(tefapi); application.ProcessMessages; sleep(5000); TACBrAbecsPinPad.IsEnabled := true; // erro de acesso negado o que eu percebi foi o seguinte: na Tef, quando a dll da paygo finaliza uma transação ela envia um comando CLO para o pinpad pra fechar a conexão do pinpad, e daí o display do pinpad "apaga" mas alguns comandos do TefApi comunicam com o pinpad mas não enviam um CLO, daí o pinpad fica "aceso", como se a conexão ficasse ativa isso acontece em * tefapi.Inicializar; * tefapi.ExibirMensagemPinPad(); * se cancelar uma transação de pagamento no meio dela, a dll da paygo encerra enviando um CLO mas depois o TefApi envia uma mensagem de "operacao cancelada" e como não há CLO o pinpad fica "aceso" * em algumas operações Administrativas também acontece isso daí quando eu chamo tefapi.DesInicializar; se o pinpad estiver "aceso" a porta fica bloqueada, só fechando o EXE para o TACBrAbecsPinPad poder conectar o ideal seria que dentro da função tefapi.DesInicializar, o componente pudesse enviar através da dll da paygo um comando CLO para o pinpad. eu contornei isso com uma Gambiarra.... aqui no meu ppc930 deu certo tefapi.EfetuarAdministrativa(tefopTesteComunicacao, ''); // dar um tempo para operação administrativa terminar tefapi.DesInicializar; TACBrAbecsPinPad.IsEnabled := true; a operação de Teste de comunicação no final envia um CLO e "apaga" o pinpad, daí desbloqueia a porta na verdade eu coloquei tefapi.EfetuarAdministrativa(tefopTesteComunicacao, '') após todas as operação de Tef em que ao serem concluídas o pinpad fica "aceso" o ideal é que o pinpad sempre ficasse "apagado"(CLO) após as rotinas de Tef terminarem 1 Link para o comentário Compartilhar em outros sites More sharing options...
Fundadores Daniel Simoes Postado 7 Fevereiro Fundadores Compartilhar Postado 7 Fevereiro O ACBrTEFAPI não envia msgs ao PinPad, isso é feito pela PGWebLib, quando necessário... O comando CLO, não chega fechar a comunicação Serial... você pode testar pelo Demo do ACBr, que mesmo após enviar o "CLO", você conseguirá enviar outros comandos ao PinPad... Mas provavelmente, internamente na PGWebLib, os comandos que chamam o CLO, na sequencia, fecham a Serial Daniel Simões de Almeida O melhor TEF, é com o Projeto ACBr - Clique e Conheça Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Link para o comentário Compartilhar em outros sites More sharing options...
Membros Pro WINDEL Postado 8 Fevereiro Membros Pro Compartilhar Postado 8 Fevereiro Estou realizando esses testes de utilizar a comunicação com o TEF juntamente com o componente TACBrAbecsPinPad e para mim também está aparecendo essa mensagem do acesso negado no momento que tento ativar a comunicação com o componente TACBrAbecsPinPad, através do comando "ACBrAbecsPinPad1.IsEnabled := true". Essa parte de utilizar transações tef e pix simultâneas é muito comum. Por isso tentei fazer o teste de antes mesmo de criar o componente TACBrAbecsPinPad na minha aplicação, utilizar o comando TEFPayGoAPI.DesInicializar para tentar liberar a utilização do pin pad, mas mesmo assim ocorre a mensagem de "acesso negado". Fiz o teste utilizando esses comandos acima: tefapi.EfetuarAdministrativa(tefopTesteComunicacao, ''); // dar um tempo para operação administrativa terminar tefapi.DesInicializar; TACBrAbecsPinPad.IsEnabled := true; No caso funcionou, mas infelizmente não é viável a cada transação de tef fazer uma operação administrativa de teste de comunicação com tef (demora em torno de 10 segundos cada vez que chama essa operação) e chamando o comando "tefapi.DesInicializar" vai apagar todos os comprovantes de resposta que foram emitidos. Daniel, caso tiver alguma novidade sobre a Setis, pode nos avisar? Link para o comentário Compartilhar em outros sites More sharing options...
Fundadores Daniel Simoes Postado 8 Fevereiro Fundadores Compartilhar Postado 8 Fevereiro Por favor certifiquem-se de estarem rodando a última versão dos fontes do ACBr, e a nova DLL da PGWebLib... Nesse tópico eu comento sobre as principais mudanças na PGWebLib e nos fontes do ACBr.. ..o que acho que pode fazer a diferença, nessa nova DLL, é o método PW_End, que agora é chamado no DesInicializar procedure TACBrTEFPGWebAPI.DesInicializar; begin if not fInicializada then Exit; GravarLog('TACBrTEFPGWebAPI.DesInicializar'); if Assigned(xPW_End) then xPW_End; UnLoadLibFunctions; SetPGWebLibPermiteAtualiza(fAtualizaPGWebLibAutomaticamente); fInicializada := False; end; Daniel Simões de Almeida O melhor TEF, é com o Projeto ACBr - Clique e Conheça Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Link para o comentário Compartilhar em outros sites More sharing options...
marcelobd Postado 8 Fevereiro Compartilhar Postado 8 Fevereiro realmente esta gambiarra é inviável pelo delay que causa, eu só postei pra compartilhar os motivos de ocorrer o conflito na serial na verdade nem é necessário DesInicializar a tef quando você quer usar o pinpad fora da TEF pra exibir um PIX por exemplo basta fazer tefapi.EfetuarAdministrativa(tefopTesteComunicacao, ''); // dar um tempo para operação administrativa terminar TACBrAbecsPinPad.IsEnabled := true; // usar o pinpad TACBrAbecsPinPad.IsEnabled := false; mas claro que isso é uma gambiarra inviável em produção.... o componente TACBrAbecsPinPad está incrível e resolveria muitos dos nossos problemas, principalmente com o PIX já que o pix da Paygo é muito limitado em termos de bancos mas se não conseguirmos resolver esta questão de conflito da serial, infelizmente continuaremos com o stress do pix Link para o comentário Compartilhar em outros sites More sharing options...
marcelobd Postado 8 Fevereiro Compartilhar Postado 8 Fevereiro realmente deve ser a PGWebLib que fecha a serial após enviar o CLO nas transações de Pagamentos, Cancelamentos e na maioria das Administrativas a PGWebLib fecha a serial no fim. Mas infelizmente em alguns casos a serial fica aberta o que bloqueia o pinpad uma sugestão é falar com a Paygo para eles tornarem Public dentro da PGWebLib o método que fecha a serial (não querendo ser leviano, mas acho que isso deve ser barbada pra eles....) daí o componente TefApi poderia implementar este método e nós poderíamos simplesmente fazer TefApi.FecharSerialPinPad(); TACBrAbecsPinPad.IsEnabled := true; // usar o pinpad TACBrAbecsPinPad.IsEnabled := false; Link para o comentário Compartilhar em outros sites More sharing options...
Membros Pro WINDEL Postado 8 Fevereiro Membros Pro Compartilhar Postado 8 Fevereiro Isso marcelo, entendi o seu exemplo que a intenção era mostrar que dessa forma liberava o pin pad para utilização de outros comandos. Mas para produção não é possível utilizar dessa forma. vou primeiramente atualizar a nova versão do tef PGWebLib que o Daniel comentou acima para ver se dessa forma possa resolver esse problema de acesso negado por motivo da porta continuar em uso. Link para o comentário Compartilhar em outros sites More sharing options...
Fundadores Daniel Simoes Postado 8 Fevereiro Fundadores Compartilhar Postado 8 Fevereiro 2 horas atrás, marcelobd disse: uma sugestão é falar com a Paygo para eles tornarem Public dentro da PGWebLib o método que fecha a serial (não querendo ser leviano, mas acho que isso deve ser barbada pra eles....) Eu creio que o PW_End que existe na nova DLL já faz isso... (veja o código que postei acima) 1 Daniel Simões de Almeida O melhor TEF, é com o Projeto ACBr - Clique e Conheça Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Link para o comentário Compartilhar em outros sites More sharing options...
Membros Pro WINDEL Postado 1 Abril Membros Pro Compartilhar Postado 1 Abril Olá Daniel, Fiz alguns testes com a nova dll e utilizando os comandos acima de DesInicializar e Inicializar e não ocorreu mais o erro de "Acesso Negado". Porém, quando utilizo mais de uma transação tef, apenas imprime a última transação. Segue os passos que simulei e o log do componente ACBR em anexo. - Realizei uma transação de tef de 1,00 (comprovante aparece no log) - Acionei o comando de DesInicializar. - Mostrei o QRCode no visor do Pin Pad (sem utilizar o tef). - Acionei o comando de Inicializar. - Realizei mais uma transação de crédito de 0,50 (comprovante aparece no log) - Utilizei o comando "ImprimirTodosComprovantes" e percebi que o array "RespostasTEF" contém apenas 1 resposta (a última). A anterior foi desprezada e assim consigo imprimir apenas o último comprovante. Seria possível ter uma forma de não apagar a resposta anterior? log.txt Link para o comentário Compartilhar em outros sites More sharing options...
Fundadores Daniel Simoes Postado 1 Abril Fundadores Compartilhar Postado 1 Abril Obrigado pelos testes, @WINDEL... Vou procurar nessa nova DLL, uma forma de apenas desativar a comunicação com o Pinpad... me parece que eles haviam comentado algo nesse sentido... Daniel Simões de Almeida O melhor TEF, é com o Projeto ACBr - Clique e Conheça Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Link para o comentário Compartilhar em outros sites More sharing options...
Membros Pro WINDEL Postado 1 Abril Membros Pro Compartilhar Postado 1 Abril Obrigado pelo retorno Daniel. Acredito que isso seria a única pendência que falta para que funcione o TEF junto com o Abecs. Fico no aguardo. Link para o comentário Compartilhar em outros sites More sharing options...
Membros Pro WINDEL Postado 23 Abril Membros Pro Compartilhar Postado 23 Abril Olá Daniel, Tem alguma notícia sobre essa informação do TEF não apagar as respostas quando é desativado a comunicação com a dll? Link para o comentário Compartilhar em outros sites More sharing options...
Fundadores Daniel Simoes Postado 23 Abril Fundadores Compartilhar Postado 23 Abril Ainda não tive... e pelo que notei, a DLL nova PGWebLib, está com problemas para solicitar dados do PinPad... estou tentando resolver isso com eles, primeiro... 1 Daniel Simões de Almeida O melhor TEF, é com o Projeto ACBr - Clique e Conheça Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Link para o comentário Compartilhar em outros sites More sharing options...
Membros Pro WINDEL Postado 24 Abril Membros Pro Compartilhar Postado 24 Abril Ok! Sim, isso realmente está acontecendo mesmo. Quando utilizo a função de obter dados do pin pad para capturar o valor do cpf/cnpj que o cliente digitou, ocorre uma mensagem de erro no visor com o conteúdo "Processando.." ou dependendo da ocasião até trava o sistema e tem que finalizar pelo gerenciador de tarefas. Certo, vou aguardar primeiramente essa solução que é mais importante e urgente. Link para o comentário Compartilhar em outros sites More sharing options...
Recommended Posts
Crie uma conta ou entre para comentar
Você precisar ser um membro para fazer um comentário
Criar uma conta
Crie uma nova conta em nossa comunidade. É fácil!
Crie uma nova contaEntrar
Já tem uma conta? Faça o login.
Entrar Agora