Ir para conteúdo
  • Cadastre-se

dev botao

Recommended Posts

  • Membros Pro
Postado

Fiz alguns testes, mas  quando faz multiplos cartões, passa o primeiro em credito e depois em debito, se no segundo cartao depois de finalizar a maquina reiniciar, nao deveria estornar os dois pagamentos?

 

Grato

  • Fundadores
Postado

Analisando os fontes sugeridos.. parece haver um "memory leak" em ACBrTEFAPICliSiTef

notei uma repetição do código abaixo?

                if not Assigned(LRespostaTEFPendente) then
                  LRespostaTEFPendente := TACBrTEFRespCliSiTef.Create;

e esse objeto LRespostaTEFPendente  parece que nunca é destruído... mas adicionado na lista de respostas pendentes, apenas se vier um registrador 1319

Eu achei esse código inseguro, na minha opinião o LRespostaTEFPendente poderia ser criado em um método (uma sub-function)... a adicionar ele na lista, no finaly, se ele não for nulo...

  • Curtir 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.

  • Fundadores
Postado

Também acho que não precisamos da propriedade ConfirmarPendente  em TACBrTEFResp...  a propriedade Confirmar, parece ter a mesma funcionalidade...

Como ela é inicializada como False, na criação de TACBrTEFResp,  bastaria ligar ela quando a 899-105 estiver True...

E deveríamos também usar ela como Boolean e não String

  • Curtir 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.

  • Consultores
Postado

@adriano.quintino

Não entendi o motivo de ter adicionado o parâmetro "Funcao" na  procedure TACBrTEFAPIClassCliSiTef.ContinuarRequisicaoSiTef(Funcao:Integer);

Não parece ser utilizado.

[]'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.
  • Membros Pro
Postado
4 minutos atrás, EMBarbosa disse:

@adriano.quintino

Não entendi o motivo de ter adicionado o parâmetro "Funcao" na  procedure TACBrTEFAPIClassCliSiTef.ContinuarRequisicaoSiTef(Funcao:Integer);

Não parece ser utilizado.

Oi @EMBarbosa. É verdade, pode remover ele. Acabei me esquecendo de retirá-lo. Eu estava utilizando ele pra fazer o loop de cancelamento conforme fosse recebendo os registros pendentes. Daí eu fiz as correções depois e acabei me esquecendo de remover este parâmetro.

Segue a correção em anexo

ACBrTEFAPICliSiTef.pas

  • Curtir 1
  • Consultores
Postado
21 minutos atrás, Daniel Simoes disse:

e esse objeto LRespostaTEFPendente  parece que nunca é destruído... mas adicionado na lista de respostas pendentes, apenas se vier um registrador 1319

Eu achei esse código inseguro, na minha opinião o LRespostaTEFPendente poderia ser criado em um método (uma sub-function)... a adicionar ele na lista, no finaly, se ele não for nulo...

Daniel acho que o @Juliomar Marchetti quando implementou essa parte e não quebrou propositalmente o layout do código atual.

Me parece que esse loop do ContinuarRequisicaoSiTef vai retornando os dados da venda um por um e não me parece que a ordem da execução é garantida (não testei e não parece ter menção disso na documentação que achei via buscador da internet)...

Por isso, eu até tinha notado essa possível falha, mas achei melhor não mexer até enxergar uma outra possibilidade. Talvez precisemos modularizar um pouco mais esse fluxo.

[]'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.
  • Consultores
Postado
22 horas atrás, adriano.quintino disse:

acrescentei a propriedade TokenRegistro para receber o valor que a SiTEF passar para a empresa

Para o que serve essa informação TokenRegistro e o parâmetro TLSGWP mesmo?

[]'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.
  • Fundadores
Postado

no código, também me parece que ele não teria suporte, a tratar mais de uma transação pendente.. uma vez, que ele só cria um Objeto TACBrTEFResp, dentro do Loop

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.

  • Consultores
Postado
4 minutos atrás, Daniel Simoes disse:

no código, também me parece que ele não teria suporte, a tratar mais de uma transação pendente.. uma vez, que ele só cria um Objeto TACBrTEFResp, dentro do Loop

Se eu entendi bem, o código assume(1) que o Sitef vai retornar os dados de uma transação por vez e que sempre vai retornar valor da transação por último...

Daí na primeira coleta de dado, o LRespostaTEFPendente é criado. Então, segue o loop os outros dados são coletados.

Quando for coletar o valor (1319) é chamdo o método fpACBrTEFAPI.RespostasTEF.AdicionarRespostaTEF que clona o objeto LRespostaTEFPendente.

De posse do clone na lista de objetos, o LRespostaTEFPendente é destruído, possibilitando o Sitef retornar outra transação que passará pelo mesmo processo.

(1) Não sei se o que assumimos corretamente essas premissas pois o fluxo não é descrito na documentação. :(

[]'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.
  • Membros Pro
Postado
14 minutos atrás, EMBarbosa disse:

Para o que serve essa informação TokenRegistro e o parâmetro TLSGWP mesmo?

Segundo o manual do TLS, temos que passar estes parâmetros ao chamar a função ConfiguraIntSiTefInterativoEx em ParametrosAdicionais

image.thumb.png.730754ff8eec3b981c5609a96559c095.png

image.thumb.png.750e60d913a19c4cb288d4ad211af26e.png

  • Curtir 1
  • Membros Pro
Postado (editado)

Eu só não coloquei os parâmetros para proxy porque eu não utilizo, mas caso queiram acrescentar estes parâmetros também é possível.

Um detalhe é que estes parâmetros são exigidos nos testes de homologação, pelo menos o Token e o TLSGWP.

Editado por adriano.quintino
  • Fundadores
Postado
3 horas atrás, EMBarbosa disse:

(1) Não sei se o que assumimos corretamente essas premissas pois o fluxo não é descrito na documentação. :(

Eu acho que não devemos acatar essas mudanças, elas estão muito suscetíveis a quebrar se mudar qualquer coisas do fluxo do SiTef...

A rotina já coleta todos os retornos do SiTef em ACBrTEFResp.Conteudo.. bastaria no final, varrer o log de retorno, e montar as respostas pendentes...

Sabem se há algum link ou documentação, que descreva a transação 130 ?

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.

  • Consultores
Postado
13 minutos atrás, Daniel Simoes disse:

A rotina já coleta todos os retornos do SiTef em ACBrTEFResp.Conteudo.. bastaria no final, varrer o log de retorno, e montar as respostas pendentes...

Não sei se eu entendi essa parte.

13 minutos atrás, Daniel Simoes disse:

Sabem se há algum link ou documentação, que descreva a transação 130 ?

Está que está no link que eu mandei antes. Veja abaixo o link no texto achei via buscador :

4 horas atrás, EMBarbosa disse:

Me parece que esse loop do ContinuarRequisicaoSiTef vai retornando os dados da venda um por um e não me parece que a ordem da execução é garantida (não testei e não parece ter menção disso na documentação que achei via buscador da internet)...

 

[]'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.
  • Fundadores
Postado

Acho que podemos implementar tudo na rotina do SiTef, onde ele procuraria tratar os arquivos de Backup... chamar o método indicado, criar uma lista de transações pendentes, e iniciar o tratamento delas, conforme a parametrização do componente

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.

  • Fundadores
Postado
7 horas atrás, adriano.quintino disse:

Um detalhe é que estes parâmetros são exigidos nos testes de homologação, pelo menos o Token e o TLSGWP.

onde posso achar informações sobre esses novos registradores de autenticação ?

Eles variam para cada terminal na mesma Loja ? ou são os mesmos parâmetros para o CNPJ ?

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.

  • Moderadores
Postado
8 horas atrás, EMBarbosa disse:

Me parece que esse loop do ContinuarRequisicaoSiTef vai retornando os dados da venda um por um e não me parece que a ordem da execução é garantida (não testei e não parece ter menção disso na documentação que achei via buscador da internet)...

só para ajudar sim
vai retornar  nessa ordem que coloquei
e a cada um que existir pendente

semana que vem estarei com pinpad e dai consigo fazer um teste gravado mostrando funcionando e com o código que está no svn

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

  • Moderadores
Postado
47 minutos atrás, Daniel Simoes disse:

onde posso achar informações sobre esses novos registradores de autenticação ?

Eles variam para cada terminal na mesma Loja ? ou são os mesmos parâmetros para o CNPJ ?

SiTef - Interface Simplificada com a aplicação(VRS-253).pdf

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

  • Consultores
Postado
23 horas atrás, Daniel Simoes disse:

Acho que podemos implementar tudo na rotina do SiTef, onde ele procuraria tratar os arquivos de Backup... chamar o método indicado, criar uma lista de transações pendentes, e iniciar o tratamento delas, conforme a parametrização do componente

Mas não teria que seguir o mesmo loop da ContinuarRequisicaoSiTef ? Essa parte é que acho que não entendi.

[]'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.
×
×
  • 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.