Jump to content

Assista click.png tectoy.png

C6 chamada_c6.png botao.png

Roteiro pré-homologação sequência 16 Clisitef


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

Recommended Posts

  • Consultores

Boa noite

viu ele pedem pra desligar e retiram o cartão do pin-pad!

então acho que está se preocupando.

pede pra eles fazerem uma pré-homologação

Consultor SAC ACBr Juliomar Marchetti
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

 

Link to comment
Share on other sites

  • Fundadores

Enquanto o fluxo do SiTef não terminar, a transação ainda não existe... por isso o ACBrTEFD não tem como salvar um Backup... simplesmente porque o a CliSiTef ainda não devolveu a resposta da transação...

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

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

Link to comment
Share on other sites

  • 3 weeks later...
  • Membros Pro

Boa tarde a todos,

Ainda no caso acima da sequencia 16, estou refazendo a homologação para NFC-e e SAT, pelo que vi o arquivo só é gerado no diretório padrão no método:

TACBrTEFDCliSiTef.ContinuarRequisicao;

 

E só é chamado o método para geração do arquivo, quando a variavel TipoCampo, estiver atribuída a: 121, 122, 133, 952;

Vendo o requisito pensei na seguinte solução: (Me desculpe se estiver equivocado!)

Dentro do case ProximoComando of

Na sequencia 3: Podemos implementar a criação do arquivo caso o retorno da mensagem seja "TRANSACAO ACEITA".

Ex:

If AnsiUpperCase(Mensagem) ='TRANSACAO ACEITA' Then

   fArqBackUp := CopiarResposta;

Dessa forma mesmo que o cartão não seja retirado da leitora, a maquina seja finalizada (ou a aplicação) ao iniciar novamente o sistema iremos ter o retorno da transação.

Se foi OK e precisa fazer a reimpressão ou reter o cupom.

Estou errado no meu modo de pensar?

Obrigado pela atenção.

 

Atenciosamente,

 

 Assinatura.png

Link to comment
Share on other sites

  • Fundadores

Observe que o mesmo tratamento é feito, quando NSU do SiTef é retornado (campo 133)... Isso significa que temos como achar a transação no SiTEF, ou seja, ela já existe...

                        133, 952:
                        begin
                          fArqBackUp := CopiarResposta;
                        end;   

Então a princípio, a implementação atual do SVN parece correta

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

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

Link to comment
Share on other sites

  • Membros Pro

Boa tarde Daniel,

Primeiramente Obrigado pelo Retorno,

Sim, verifiquei a linha explanada acima.

Mas o problema é que se não tirar o cartão não temos o retorno, mas no pinpad aparece transação OK, se reiniciarmos a aplicação ou a maquina antes de tirar o cartão da Leitora, no retorno da aplicação como não existe o arquivo gerado, não há verificação se existe algo pendente ou não.

 

Apenas para teste coloquei o processo de geração do arquivo a cada mensagem processada na tela:

 

Sequencia 3 do case que destaquei acima. Dessa forma a cada mensagem gerada para o usuário é gerado o arquivo com o retorno atualizado. Dessa forma mesmo que não tire o cartão da leitora e faça a sequencia 16 do processo de homologação, ao entrar na aplicação novamente o arquivo é validado.

Mas nesse caso tem a problemática de gerar um arquivo para cada mensagem que é processada, e não sei qual seria a influência dessa mudança.

Fiz alguns testes, dessa forma deu certo. (Sem colocar "Strings hardcoded").

3 :
                   begin
                     MensagemOperador := ProcessaMensagemTela( Mensagem );
                     fArqBackUp := CopiarResposta;
                     MensagemCliente  := MensagemOperador;
                     DoExibeMsg( opmExibirMsgOperador, MensagemOperador, (TipoCampo=5005) ) ;
                     DoExibeMsg( opmExibirMsgCliente, MensagemCliente, (TipoCampo=5005) ) ;
                   end ;

Você acha que existe problema com essa implementação Daniel? Ou você tem outra solução para esse caso?

Obrigado mais uma vez pela atenção

 

 

Atenciosamente,

 

 Assinatura.png

Link to comment
Share on other sites

  • Fundadores

Humm.. não sei, não me parece a coisa certa a fazer..

Se o cliente ainda não tirou o cartão da máquina, a transação já existe no SiTef ?

Quem tem que nos confirmar se a transação já existe ou não, é o SiTEF, e ele deve fazer isso, nos informando o NSU

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

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

Link to comment
Share on other sites

  • Membros Pro

No momento que aparece no Pinpad: "TRANSACAO ACEITA" e logo em seguida pede para remover o cartão, se olharmos no Relatório de Transações do SiTef, a Transação ainda está Pendente. 

Mas da forma que implementei acima, fazendo o processo de homologação seq 16, ao abrir novamente a aplicação, o retorno é:

"Transação TEF efetuada.

Favor reimprimir último Cupom.

(Para Cielo utilizar os 6 últimos dígitos.)"

Hoje existe algum método ACBrTEFDCliSiTef, que valida a última transação sem a existência do arquivo *.tef?

Atenciosamente,

 

 Assinatura.png

Link to comment
Share on other sites

  • Fundadores

Não..  mas isso existe na DLL da CliSiTef... portanto se você usa a CliSiTef, pode checar se há transações pendentes chamando o método:

function TACBrTEFDCliSiTef.ObtemQuantidadeTransacoesPendentes(Data:TDateTime;
  CupomFiscal: AnsiString): Integer;

 

  • Like 1
Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

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

Link to comment
Share on other sites

  • Membros Pro

Bom dia Daniel,

 

Novamente obrigado pelo retorno. 

 

Tentei utilizar o método que você passou.

Citar
function TACBrTEFDCliSiTef.ObtemQuantidadeTransacoesPendentes(Data:TDateTime;
  CupomFiscal: AnsiString): Integer;

Mas fazendo os testes a DLL não retorna valor algum, sempre retorna zero!

Mas no Relatório de Transações do SiTef  a transação consta como PENDENTE.

image.png.dd356e7ef50f9efa8b990d78aaa32c8a.png

Vendo esse problema entrei em contato com a Software Express e recebi o seguinte retorno do suporte:

Citar

Bom dia Alan

Sobre a sequência 16 da clisitef v14 pode desconsiderar, porque e necessário alguns ajustes nesse teste no simulado e então pode seguir a sequência sem problemas.

Att

image.png.b1d73e8b0b0aa3f6186fbc6c1439d21c.png

Pensando nisso podemos desconsiderar a minha duvida e minha sugestão.

Obrigado mais uma vez pelo auxilio.

Atenciosamente,

 

 Assinatura.png

Link to comment
Share on other sites

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.