Aggille Sistemas de Gestão Postado 6 Fevereiro 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
Fundadores Daniel Simoes Postado 7 Fevereiro Fundadores 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.
Aggille Sistemas de Gestão Postado 7 Fevereiro Autor 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
Fundadores Daniel Simoes Postado 7 Fevereiro Fundadores 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.
Aggille Sistemas de Gestão Postado 7 Fevereiro Autor 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
Fundadores Daniel Simoes Postado 7 Fevereiro Fundadores 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.
Aggille Sistemas de Gestão Postado 7 Fevereiro Autor 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
Fundadores Daniel Simoes Postado 7 Fevereiro Fundadores 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.
marcelobd Postado 7 Fevereiro 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
Fundadores Daniel Simoes Postado 7 Fevereiro Fundadores 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.
Membros Pro WINDEL Postado 8 Fevereiro Membros Pro 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?
Fundadores Daniel Simoes Postado 8 Fevereiro Fundadores 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.
marcelobd Postado 8 Fevereiro 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
marcelobd Postado 8 Fevereiro 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;
Membros Pro WINDEL Postado 8 Fevereiro Membros Pro 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.
Fundadores Daniel Simoes Postado 8 Fevereiro Fundadores 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.
Membros Pro WINDEL Postado 1 Abril Membros Pro 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
Fundadores Daniel Simoes Postado 1 Abril Fundadores 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.
Membros Pro WINDEL Postado 1 Abril Membros Pro 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.
Membros Pro WINDEL Postado 23 Abril Membros Pro 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?
Fundadores Daniel Simoes Postado 23 Abril Fundadores 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.
Membros Pro WINDEL Postado 24 Abril Membros Pro 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.
Membros Pro WINDEL Postado 12 Julho Membros Pro Postado 12 Julho (editado) Olá @Daniel Simoes Quando você tiver um tempo, conseguiria verificar se existe uma solução para esse meu report que fiz em 01/04? Testei essa função de capturar o cpf/cnpj via PIN PAD na versão 5.1.30.0 e funcionou corretamente em modo de homologação. Pedirei para os técnicos testarem em produção. Então faltaria apenas não apagar as respostas quando é desativado a comunicação do tef com a dll para poder utilizar o componente Abespinpad, pois o componente faz uma função muito importante para o uso do PIX com QRCode. Isso nos ajudaria bastante se esse componente pudesse ser utilizado. Editado 12 Julho por WINDEL 1
Fundadores Daniel Simoes Postado 12 Julho Fundadores Postado 12 Julho Oi @WINDEL, em conversar recentes com a Setis, percebi que eles não veem com bons olhos, compartilhar a porta Serial do PinPad, com outra aplicação O que solicitei a eles, e provavelmente será implementado, é um método na própria PGWebLib, para enviar imagens ao PinPad Adicionei você em cópia no Caso no Jira da Setis... 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.
Membros Pro WINDEL Postado 12 Julho Membros Pro Postado 12 Julho Obrigado pelo retorno @Daniel Simoes Entendi. Vou acompanhar essa solução pelo Jira.
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