Ir para conteúdo
  • Cadastre-se

dev botao

Componente ElginTef e MSitef Android


Ver Solução Respondido por Daniel Simoes,
  • Este tópico foi criado há 131 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Fundadores
Postado

Ele está reclamando da biblioteca GEDI, que é da própria Gertec, mas a implementação do ACBr, deve ser basear na biblioteca do GPOS700A

Talvez seja necessário ajustar os fontes do ACBr, para esse novo modelo de Biblioteca, mas infelizmente eu não tenho esse equipamento...

você poderia comentar todas as linhas onde TACBrPosPrinterGEDI aparecem... mas com isso, provavelmente o ACBr não conseguirá imprimir nesse equipamento...

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.

  • Membros Pro
Postado
3 horas atrás, Daniel Simoes disse:

Ele está reclamando da biblioteca GEDI, que é da própria Gertec, mas a implementação do ACBr, deve ser basear na biblioteca do GPOS700A

Talvez seja necessário ajustar os fontes do ACBr, para esse novo modelo de Biblioteca, mas infelizmente eu não tenho esse equipamento...

você poderia comentar todas as linhas onde TACBrPosPrinterGEDI aparecem... mas com isso, provavelmente o ACBr não conseguirá imprimir nesse equipamento...

Por favor me desculpem minha falta de conhecimento nessa parte ... Estou caindo de paraquedas nesse mundo Adroid e ainda tenho muito que aprender...

Consegui fazer o exemplo do ACBr funcionar.. O que estava faltando era adicionar os .Jar na configuração do Android 32 bits... Está funcionando tudo perfeitamente exceto a impressão... amanhã vou retomar essa parte..  

Pelo que pude notar, nesse exemplo não foi usado a Clisitef e sim mSitef, que é uma api que fica instalada no próprio aparelho.. Eu somente conhecia a Clisitef, porém com mSitef fica tudo muito mais simples e com o compontente do ACBr então fica muuuuuito simples.. 

Amanhã vou tentar usar o componente no meu app de teste.. acredito que vai dar tudo certo..

Muito obrigado pelo apoio ...

 

  • Curtir 3
  • Membros Pro
Postado

Bom dia pessoal..

Consegui fazer tudo pelo componente.. é muito simples .. Só tenho uma dúvida:

o método:

  ACBrTEFAndroid1.EfetuarPagamento( IdentificadorTransacao,
                                    ValTransacao,
                                    ModPagto,
                                    TipoCartao,
                                    ModFinanc,
                                    Parcelas,
                                    DataPre );

Tem como executar ele em forma de TThread ?  ou seja, só continuar o fluxo do programa depois de finalizar a operação ?

 

  • Fundadores
Postado
Em 18/05/2023 at 09:46, Dércio Luis Zanatta disse:

Tem como executar ele em forma de TThread ?  ou seja, só continuar o fluxo do programa depois de finalizar a operação ?

Não sei se compreendi bem a pergunta...  mas o TEF no Android é Assíncrono, pois é tratado no retorno do Intent...

Quando o APK do TEF terminar, ele irá responder no evento: QuandoFinalizarOperacao

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.

  • Membros Pro
Postado
20 minutos atrás, Daniel Simoes disse:

Não sei se compreendi bem a pergunta...  mas o TEF no Android é Assíncrono, pois é tratado no retorno do Intent...

Quando o APK do TEF terminar, ele irá responder no evento: QuandoFinalizarOperacao

Boa tarde Daniel..

Consegui fazer o que eu queria da seguinte forma:

    tthread.CreateAnonymousThread(Procedure
    Begin
      tthread.Current.FreeOnTerminate := true;
      ExecutarPagamentoTEF ;
      repeat

      until (Trim(VarStringRet_Tef)<>'');

      tthread.Synchronize(nil,
      procedure
      begin
        if VarRet_Tef=False then
           ShowMessage('Transação TEF não executada '+VarStringRet_Tef)
        Else
           ShowMessage('Transação TEF ok '+VarStringRet_Tef+' NSU:'+VarNsu+' Rede:'+VarRede+' Bandeira:'+VarBandeira+' Transação:'+VarTopercao) ;
      End) ;
   End).Start;
 

No enveto QuandoFinalizarOperacao:

VarStringRet_Tef:=RespostaTEF.TextoEspecialOperador ;

Dessa forma o programa fica "em loop"  no repeat dentro da Thread e só libera quando a mensagem quando receber o  RespostaTEF.TextoEspecialOperador 

Agora estou com outro problema:

o RespostaTEF.CodigoBandeiraPadrao   está retornando vazio...  Não deveria retornar o código da bandeira padrão ?

 

 

  • Fundadores
Postado
2 minutos atrás, Dércio Luis Zanatta disse:

o RespostaTEF.CodigoBandeiraPadrao   está retornando vazio...  Não deveria retornar o código da bandeira padrão ?

Pode ser algo no método "ConteudoToPropertyMSitefWeb", conforme mencionei nessa resposta
 

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.

  • Membros Pro
Postado

Outro problema que estou enfrentando é quando a impressão nesse GerTec..

Configurei o componente como lib externa igual a fGEDIPrinter. A impressão sai com problemas nos caracteres acentuados, ç, etc...

Já tentei todas as opções de página de código do componente e sempre imprime do mesmo jeito..

Tema alguma outra coisa que deve ser configurado ?

 

  • Membros Pro
Postado
15 minutos atrás, Daniel Simoes disse:

Verifique se a Gertec, tem alguma versão nova dessa biblioteca...

infelizmente não tenho esse equipamento para testes

Já tentei isso.. Eles tem a versão 1.16.8, mas mesmo assim não funciona a configuração de página de código...

 

Postado (editado)
1 hora atrás, Dércio Luis Zanatta disse:

Boa tarde Daniel..

Consegui fazer o que eu queria da seguinte forma:

    tthread.CreateAnonymousThread(Procedure
    Begin
      tthread.Current.FreeOnTerminate := true;
      ExecutarPagamentoTEF ;
      repeat

      until (Trim(VarStringRet_Tef)<>'');

      tthread.Synchronize(nil,
      procedure
      begin
        if VarRet_Tef=False then
           ShowMessage('Transação TEF não executada '+VarStringRet_Tef)
        Else
           ShowMessage('Transação TEF ok '+VarStringRet_Tef+' NSU:'+VarNsu+' Rede:'+VarRede+' Bandeira:'+VarBandeira+' Transação:'+VarTopercao) ;
      End) ;
   End).Start;
 

No enveto QuandoFinalizarOperacao:

VarStringRet_Tef:=RespostaTEF.TextoEspecialOperador ;

Dessa forma o programa fica "em loop"  no repeat dentro da Thread e só libera quando a mensagem quando receber o  RespostaTEF.TextoEspecialOperador 

Agora estou com outro problema:

o RespostaTEF.CodigoBandeiraPadrao   está retornando vazio...  Não deveria retornar o código da bandeira padrão ?

 

 

@Dércio Luis Zanatta não aconcelho tratar os retornos usando repeat ainda mais usando thread, já fiz isso a um tempo atrás para tratar mensagens de SIM e NÃO, porém em versões de androids mais novas se não me engano >=9  ele vai ocasiona um Overflow no App e travar(tente rodar sua aplicação em SO mais atuais para ter certeza se esse é o caminho)

@Daniel Simoes sinceramente eu entendi a pergunta totalmente errada(pensei que estava dizendo que os indices são iguais entre Sitef e Elgin-Porque são os mesmo apps) vou olha isso com urgência a respeito dos índices possivelmente iguais ao PAY-GO ps: já adianto que usei a constantes com a mesma nomenclatura da paygo rsr

 

 

 

 

Editado por Warquia
  • Curtir 1

Warquia Pereira
Analista de Sistemas e Desenvolvedor

  • Membros Pro
Postado
1 hora atrás, Daniel Simoes disse:

Veja se eles tem algum exemplo, em Delphi, que demonstre a impressão de caracteres acentuados...

Daniel..

Encontrei esse trecho de código na unit  ACBrPosPrinterGEDI.

procedure TACBrPosPrinterGEDI.Configurar;
begin
  fpPosPrinter.Porta := 'NULL';
  fpPosPrinter.OnEnviarStringDevice := ImprimirGEDI;

  {$IFDEF __G800__}
   fpPosPrinter.PaginaDeCodigo := TACBrPosPaginaCodigo.pc1252;
  {$ELSE}
   //fpPosPrinter.PaginaDeCodigo := TACBrPosPaginaCodigo.pcUTF8;
   fpPosPrinter.PaginaDeCodigo := TACBrPosPaginaCodigo.pc1252 ;

  {$ENDIF}
end;
 

Não entendi direito, mas parece que estava sendo passado o pcUTF8 de forma fixa.. Alterei para pc1252 e agora está imprimindo corretamente..

Esse parâmetro não deveria pegar do que foi configurado no componente AcbrPosPrinter, propriedade PaginaDeCodigo ?

 

  • Curtir 1
  • Membros Pro
Postado

Bom dia

Estou dando sequencia nos testes aqui, utilizando MSitef e o componente ACBRTEFAndroid e estou com algumas dúvidas sobre as respostas.

1 -  RespostaTEF.CodigoBandeiraPadrao está retornando em branco

2 -  RespostaTEF.Parcelas[0].Vencimento  está retornando 29/01/1900  nas transações parceladas.

 

  • Fundadores
Postado

@Dércio Luis Zanatta isso está relacionado a implementação do método ConteudoToPropertyMSitefWeb...

Talvez você possa ajudar o colega @Warquia, nessa tarefa...

Nós do ACBr não temos o SDK ou ambiente de desenvolvimento da Sw.Express

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

  • Membros Pro
Postado
1 minuto atrás, Daniel Simoes disse:

@Dércio Luis Zanatta isso está relacionado a implementação do método ConteudoToPropertyMSitefWeb...

Talvez você possa ajudar o colega @Warquia, nessa tarefa...

Nos do ACBr não temos o SDK ou ambiente de desenvolvimento da Sw.Express

Com todo o prazer..  Estou fazendo testes com o SitDemo aqui..  No que puder colaborar, estou a disposição.

 

  • Membros Pro
Postado
5 horas atrás, Daniel Simoes disse:

Vocês tem algum Link com a documentação do mSiTef ?

Posso ajudar na implementação, mesmo as cegas, se tiver acesso a documentação

Se achar necessário, posso te enviar o SitDemo também

 

Postado (editado)
7 horas atrás, Dércio Luis Zanatta disse:

Bom dia

Estou dando sequencia nos testes aqui, utilizando MSitef e o componente ACBRTEFAndroid e estou com algumas dúvidas sobre as respostas.

1 -  RespostaTEF.CodigoBandeiraPadrao está retornando em branco

2 -  RespostaTEF.Parcelas[0].Vencimento  está retornando 29/01/1900  nas transações parceladas.

 

-Sobre a pegunta: CodigoBandeiraPadrao e os dados do parcelamento já abrir um chamado(inclusive antigo mes 04/2023) junto a Software Express onde essas informações devem ser retornadas dentro do campo TIPO_CAMPO no formato json porém estão vazio os seus retornos

-Outro problema encontrado que creio ser um possível erro no mSitef(Onde quando o cliente seleciona a "Opção sem pinpad/Digitado" o mSitef está fechando e retornando com uma transação válida) 
  mas so ocorre quando se usa pinpads externos, no caso do gPos700x creio que não cai nesse problema

Segue abaixo o número do chamado aberto na SofwareExpress

image.thumb.png.7bf2d2ba956c613cc9c355169d187a18.png

 

Editado por Warquia
  • Obrigado 1

Warquia Pereira
Analista de Sistemas e Desenvolvedor

  • Fundadores
Postado
44 minutos atrás, Dércio Luis Zanatta disse:

Se achar necessário, posso te enviar o SitDemo também

Humm.. acho que isso pode requerer  NDA ou outros acordos com o pessoal da Sw.Express...

Minha "bronca" com eles, é que há alguns anos atrás, liguei lá, me apresentei, expliquei o que é o ACBr e quantas empresas antede, e solicitei apoio técnico e o envio dos SDKs... e eles foram enfáticos em me negar essas informações... então após isso, nunca mais tentei contato com eles, e nem tenho interesse em tentar novamente...

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.

Postado (editado)
10 minutos atrás, Daniel Simoes disse:

Humm.. acho que isso pode requerer  NDA ou outros acordos com o pessoal da Sw.Express...

Minha "bronca" com eles, é que há alguns anos atrás, liguei lá, me apresentei, expliquei o que é o ACBr e quantas empresas antede, e solicitei apoio técnico e o envio dos SDKs... e eles foram enfáticos em me negar essas informações... então após isso, nunca mais tentei contato com eles, e nem tenho interesse em tentar novamente...

@Daniel Simoes  Você acertou em cada palavra, inclusive após ela ser adquirida por outra empresa o atendimento caiu bastante, para ter uma ideia esse chamado foi fechado semana passada sem resolução e tive que ligar novamente questionando o fechamento, antigamente tinha mais contato com eles, mas especificamente na época da 7pdv onde tinhamos que fazer homologações presencialmente, porém hoje não conheço mais ninguém de lá.

Vamos que vamos!

Editado por Warquia

Warquia Pereira
Analista de Sistemas e Desenvolvedor

Postado

Segue em anexo correções feitas para retornar RespostaTEF.CodigoBandeiraPadrao MSitef e ElginIDH

Sobre as Parcelas com retorno do vencimento "RespostaTEF.Parcelas[0].Vencimento" segundo o suporte ainda não retornam essa informação, somente a quantidade de parcelas "RespostaTEF.QtdParcelas" (aconselho abrir um suporte com a Software Express para mais informação sobre o retorno do campo)

Ps: Encontrei mais uma inconsistência dentro do MSitef já abrir um novo chamado referente a loop de mensagem (segue video que enviei a eles para entender https://www.youtube.com/watch?v=x70pg58dx_c 

Att.

Correcoes.zip

  • Obrigado 1

Warquia Pereira
Analista de Sistemas e Desenvolvedor

  • Membros Pro
Postado
1 hora atrás, Warquia disse:

Segue em anexo correções feitas para retornar RespostaTEF.CodigoBandeiraPadrao MSitef e ElginIDH

Sobre as Parcelas com retorno do vencimento "RespostaTEF.Parcelas[0].Vencimento" segundo o suporte ainda não retornam essa informação, somente a quantidade de parcelas "RespostaTEF.QtdParcelas" (aconselho abrir um suporte com a Software Express para mais informação sobre o retorno do campo)

Ps: Encontrei mais uma inconsistência dentro do MSitef já abrir um novo chamado referente a loop de mensagem (segue video que enviei a eles para entender https://www.youtube.com/watch?v=x70pg58dx_c 

Att.

Correcoes.zip 27.07 kB · 0 downloads

Boa tarde

OBS: Infelizmente o Sitef é um mal necessário... Atualmente não existe uma solução TEF mais completa no mercado..  mas vamos lá

Notei outro problema aqui em meus testes..

Mesmo configurando ConfirmarTransacaoAutomaticamente := False  as transações estão sendo confirmadas automaticamente...

 

  • Este tópico foi criado há 131 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.