Ir para conteúdo
  • Cadastre-se

dev botao

Cancelartransacoes pendente no lazarus + Linux


  • Este tópico foi criado há 1907 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Bom dia!

Gostaria de saber se alguém aqui já passou pelo seguinte problema, vou descreve-lo e tentar ser o mais claro possível....

Desenvolvi um sistema para frente de caixa com Lazarus no windows. Este mesmo esta homologado com a SkyTef.

Depois de um certo tempo houve a necessidade de utiliza-lo no linux, estamos usando o Linux mint 18.1, sem muito problema e com a ajuda de pesquisas e pelo fórum o sistema esta rodando em Linux. Instalei o Lazarus no Linux e utilizo o mesmo código fonte tanto para windows e Linux. Este semana me deparei com a seguinte situação que minha cliente me relatou dizendo que a transação do sitef havia ficado pendente depois que ela havia passado o cartão e antes de finalizar a compra quando a maquina travou, com isso ela reiniciou a maquina, a informações voltaram e ai ela finalizou em dinheiro, porem a transação do cartão ficou como pendente!

Começei a fazer os teste e percebi o seguinte, fonte no Lazarus no windows quando passo o cartão fica pendente no servidor tef, quando desligo a maquina e a aplicação volta no instante que inicializo o acbrtef ele faz toda a verificação e cancela a transação pendente corretamente!

No Lazarus no Linux com o mesmo fonte ele faz o mesmo, porem não cancela a transação no servidor sitef, verifiquei e atualizei os fontes do acbr nos dois sistemas, ela faz tudo exatamente igual ao windows, entra nas mesmas funções e "aparentemente" esta certo, mostra a mensagem "transação não efetuada, favor reter o cupom", mas não cancela no servidor sitef. O estranho é que isto ocorre somente qdo reinicio a maquina, quando mato a apliação e volto ela a transação pendente é cancelada!

Em conversa com o suporte da Skytef foi analisado o seguinte através do arquivo de logo do tef quando eu mato a aplicação com ctrl+alt+del ao inicia-la ele manda o comando "FinalizaTransacaoSiTefInterativo", quanto ei reinicio a maquina o mesmo não ocorre ficando na função "ContinuaFuncaoSiTefInterativo" e quando o acbrtef é iniciado é enviado um nova Configura e como não houve o envio da função "FinalizaTransacaoSiTefInterativo" ela fica em "pendente".

Alguém poderia me dar uma luz se é algo de permissão no linux, estou começando a achar ja que ele faz o mesmo processo tanto no linux quanto no windows, so que no windows ele manda o comando para  o servidor sitef e no linux não.

 

Muito obrigado a todos e um ótimo final de ano!

 

 

Link para o comentário
Compartilhar em outros sites

  • Administradores

Bom dia.

Se tiver algum arquivo de log é interessante anexar também.

Att.

Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Link para o comentário
Compartilhar em outros sites

Bom dia!

Vou providenciar Juliana, tb se for necessário tenho os exemplos dos com os fontes tanto no delphi e no lazarus para windows e linux, se quiser posso postar, talvez seja algum detalhe que esteja fazendo, esses exemplos são bem simplificados da forma que ocorre no meu projeto...

Muito obrigado

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Bom dia Daniel!

 

Utilizando o exemplo que esta em acbrdfe/acbrnfe/delphi - tef, no lazarus com windows o problema não ocorre, mas passando o projeto para linux ele ocorre, não sei se foi algo de errado que fiz na hora de copiar os fontes e converter para Linux.

Estou enviando um log do arquivo CliSiTef.log, é esté mesmo?

Também estou enviando um print da tela do relatorio do sitef, a primeira transação eu fiz com 0,10 centavos, a compra era de 0,18 antes de finalizar matei o programa sem desligar a maquina, qdo executei o programa novamente cancelou a transação pendente.

Já a segunda passei 0,15 centavos e reinciei a maquina, quando executo o programa a trasação mostra a mensagem "transação não efetuada, favor reter o cupom" mas não cancela.

Debugando nas duas situações vi que ele passa pelo mesmos codigos, mas não consegui ver o porque de a transação não ser cancelada.

Só lembrando que meu servidor de tef esta em uma maquina windows e o pdv em uma Linux, não sei se tem algo haver.

 

Muito obrigado!

 

Captura de tela em 2019-01-03 08-31-40.png

CliSiTef.log

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois ...
  • Consultores
Em 29/12/2018 at 11:55, alexmsdrac disse:

Em conversa com o suporte da Skytef foi analisado o seguinte através do arquivo de logo do tef quando eu mato a aplicação com ctrl+alt+del ao inicia-la ele manda o comando "FinalizaTransacaoSiTefInterativo", quanto ei reinicio a maquina o mesmo não ocorre ficando na função "ContinuaFuncaoSiTefInterativo" e quando o acbrtef é iniciado é enviado um nova Configura e como não houve o envio da função "FinalizaTransacaoSiTefInterativo" ela fica em "pendente".

Não parece ser o caso. Veja os logs das duas inicializações:

-- 03/01 08:23:37:042 - *** ConfiguraIntSiTefInterativoEx. EnderecoIP: 192.168.1.200 CodigoLoja: 00000000 NumeroTerminal: 00000008 Resultado: 0 ParametrosAdicionais: [ParmsClient=1=53485215000106;2=08940933000170]
-- 03/01 08:23:37:859 - CliSiTef Inicializado CliSiTEF
-- 03/01 08:23:37:859 - InfoECF: ineEstadoECF
-- 03/01 08:23:37:859 -     Ret: P
-- 03/01 08:23:37:859 - CliSiTef CancelarTransacoesPendentesClass 
-- 03/01 08:23:37:861 - *** FinalizaTransacaoSiTefInterativo. Confirma: NAO Documento: 20190103082205 Data: 20190103 Hora: 082252
-- 03/01 08:23:40:668 - InfoECF: ineEstadoECF
-- 03/01 08:23:40:668 -     Ret: P
-- 03/01 08:23:40:669 - CliSiTef DoExibeMsg: Oper: opmOK Mensagem: Transação não efetuada.
Favor reter o Cupom


-- 03/01 08:31:19:353 - *** ConfiguraIntSiTefInterativoEx. EnderecoIP: 192.168.1.200 CodigoLoja: 00000000 NumeroTerminal: 00000008 Resultado: 0 ParametrosAdicionais: [ParmsClient=1=53485215000106;2=08940933000170]
-- 03/01 08:31:21:574 - CliSiTef Inicializado CliSiTEF
-- 03/01 08:31:21:574 - InfoECF: ineEstadoECF
-- 03/01 08:31:21:574 -     Ret: P
-- 03/01 08:31:21:574 - CliSiTef CancelarTransacoesPendentesClass 
-- 03/01 08:31:21:587 - *** FinalizaTransacaoSiTefInterativo. Confirma: NAO Documento: 20190103082437 Data: 20190103 Hora: 082503
-- 03/01 08:31:21:590 - InfoECF: ineEstadoECF
-- 03/01 08:31:21:590 -     Ret: P
-- 03/01 08:31:21:590 - CliSiTef DoExibeMsg: Oper: opmOK Mensagem: Transação não efetuada.
Favor reter o Cupom

 

  • Curtir 1

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois ...
Em 14/01/2019 at 11:54, EMBarbosa disse:

Não parece ser o caso. Veja os logs das duas inicializações:


-- 03/01 08:23:37:042 - *** ConfiguraIntSiTefInterativoEx. EnderecoIP: 192.168.1.200 CodigoLoja: 00000000 NumeroTerminal: 00000008 Resultado: 0 ParametrosAdicionais: [ParmsClient=1=53485215000106;2=08940933000170]
-- 03/01 08:23:37:859 - CliSiTef Inicializado CliSiTEF
-- 03/01 08:23:37:859 - InfoECF: ineEstadoECF
-- 03/01 08:23:37:859 -     Ret: P
-- 03/01 08:23:37:859 - CliSiTef CancelarTransacoesPendentesClass 
-- 03/01 08:23:37:861 - *** FinalizaTransacaoSiTefInterativo. Confirma: NAO Documento: 20190103082205 Data: 20190103 Hora: 082252
-- 03/01 08:23:40:668 - InfoECF: ineEstadoECF
-- 03/01 08:23:40:668 -     Ret: P
-- 03/01 08:23:40:669 - CliSiTef DoExibeMsg: Oper: opmOK Mensagem: Transação não efetuada.
Favor reter o Cupom


-- 03/01 08:31:19:353 - *** ConfiguraIntSiTefInterativoEx. EnderecoIP: 192.168.1.200 CodigoLoja: 00000000 NumeroTerminal: 00000008 Resultado: 0 ParametrosAdicionais: [ParmsClient=1=53485215000106;2=08940933000170]
-- 03/01 08:31:21:574 - CliSiTef Inicializado CliSiTEF
-- 03/01 08:31:21:574 - InfoECF: ineEstadoECF
-- 03/01 08:31:21:574 -     Ret: P
-- 03/01 08:31:21:574 - CliSiTef CancelarTransacoesPendentesClass 
-- 03/01 08:31:21:587 - *** FinalizaTransacaoSiTefInterativo. Confirma: NAO Documento: 20190103082437 Data: 20190103 Hora: 082503
-- 03/01 08:31:21:590 - InfoECF: ineEstadoECF
-- 03/01 08:31:21:590 -     Ret: P
-- 03/01 08:31:21:590 - CliSiTef DoExibeMsg: Oper: opmOK Mensagem: Transação não efetuada.
Favor reter o Cupom

 

Realmente, vc tem razão, não me atentei a isso!

Porem mesmo assim no sitef ele não envia e fica pendente, isto que eu estou achando estranho.

Não sei se pode ser algo no linux se não da tempo de algum serviço de rede subir e o pdv inicializa antes sabe, mas ainda não achei uma solução, o que fiz foi a diminuir e tratar um bug que eu tinha e agora como a maquina não reinicia com tanta frequência este erro não esta ocorrendo sempre.

Expliquei pra meu para as operadoras de caixa qdo acontecer de reiniciar a maquina com uma transação de cartão e ainda faltar pagamento para que a operadora verifique no relatório do sitef se ficou pendente para tomar uma atitude e não deixar a transação pendente.

a principio o fontes estão fazendo toda a comunicação mas não sei o porque no log mostra que esta ok mas o pdv não consegue enviar o comando para o servidor.

Vlw e muito obrigado

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 1907 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

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 conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • 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...