Ir para conteúdo
  • Cadastre-se

dev botao

Contribuição TEF API - elgin


Recommended Posts

Boa tarde.

Fiz a implementação de um api TEF para ELgin, gostaria de saber como posso contribuir para que 
possa ser inserido no projeto da ACBR. 

Já fiz toda validação junto a ELgin e obtive sucesso!

Criei tudo nos moldes já existentes.

Basicamente o que foi feito : 
 * Um novo tipo de provedor chamado "ACBrTEFAPiElgin" 
 ** Criei units "ACBrTEFAPiElgin.pas" e "ACBrTEFAPiELginComum.pas";  
 ** Fiz os ajuste necessario nas units "ACBrTEFAPi.pas", "ACBrTEFAPiComum.pas" e "ACBrTEFComum"
 ** Adicionei o TEFAPiElgin no ACBr_TEFD.dpk 
 
todos os arquivos anexos  TefApi_Elgin-MURILO.rar

Poderiam me ajudar por favor.

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

  • Consultores

Boa tarde,

Criada a TK-4578 para validação.

Obrigado pela contribuição.

  • Curtir 2
Consultor SAC ACBr

Alexandre de Paula
Ajude o Projeto ACBr crescer - Assine o SAC                    

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  ícone Discórdia Discord   

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

 

 

Link para o comentário
Compartilhar em outros sites

  • 1 mês depois ...
  • 3 semanas depois ...
  • 1 mês depois ...
  • Moderadores
Em 11/10/2023 at 15:00, MuriloS.A disse:

Boa tarde.

Fiz a implementação de um api TEF para ELgin, gostaria de saber como posso contribuir para que 
possa ser inserido no projeto da ACBR. 

Já fiz toda validação junto a ELgin e obtive sucesso!

Criei tudo nos moldes já existentes.

Basicamente o que foi feito : 
 * Um novo tipo de provedor chamado "ACBrTEFAPiElgin" 
 ** Criei units "ACBrTEFAPiElgin.pas" e "ACBrTEFAPiELginComum.pas";  
 ** Fiz os ajuste necessario nas units "ACBrTEFAPi.pas", "ACBrTEFAPiComum.pas" e "ACBrTEFComum"
 ** Adicionei o TEFAPiElgin no ACBr_TEFD.dpk 
 
todos os arquivos anexos  TefApi_Elgin-MURILO.rar

Poderiam me ajudar por favor.

note que tu usou versão mais nova do delphi e esqueceu que suportamos delphi 7 e lazarus

se puder revise seu código

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

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

 

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Algumas observações...

  • Em ACBrTEFAPI.pas, nos métodos: TACBrTEFAPI.GetPathDLL e TACBrTEFAPI.SetPathDLL, eles estão comentados para a classe de TEF PayGo... há algum motivo ?

Acho que o "case"  também não é bacana... poderíamos refatorar para criar um método virtual nas classes de TEF, e chamarmos ela, usando o Polimorfismo

 

  • A modificação desse enumerado, incluindo tefmtdPIX.
  TACBrTEFAPIMetodo = (tefmtdNenhuma, tefmtdPagamento, tefmtdCancelamento, tefmtdAdministrativa, tefmtdPIX);

Tenho receio que isso gere problemas nas implementações existentes, pois para todos os demais TEF existentes, o PIX é uma opção de Pagamento, acessível por tefmtdPagamento.

A inclusão desse novo enumerado, poderá gerar confusão e erro nos demais TEFs... As opções são:

- Não incluir o tefmtdPIX e de alguma forma na classe da Elgin, distinguirmos quando o pagamento é PIX (talvez com alguma outra informação ou parâmetro do Pagamento)

- Tratar o tefmtdPIX em todas as demais classes de TEF, para igualar ela a tefmtdPagamento  (isso não é muito bacana)

 

  • O mesmo ocorre com a modificação do enumerado TACBrTEFModalidadePagamento com a inclusão de tefmpPIX
TACBrTEFModalidadePagamento = ( tefmpNaoDefinido,
                                  tefmpCartao,
                                  tefmpDinheiro,
                                  tefmpCheque,
                                  tefmpCarteiraVirtual,
                                  tefmpPIX );

Para todos os demais TEFs, PIX se enquadra em tefmpCarteiraVirtual

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 para o comentário
Compartilhar em outros sites

Bom dia, Daniel, 

   

  • Em ACBrTEFAPI.pas, nos métodos: TACBrTEFAPI.GetPathDLL e TACBrTEFAPI.SetPathDLL, eles estão comentados para a classe de TEF PayGo... há algum motivo ?
    • CliSiTEF estava implementado resolvi não altera nada no PayGo, para evitar conflitos... irei alterar o case para utiliza Polimorfismo que é realmente bem mais adequado. 
  •     Enums  
    • Irie remove TACBrTEFAPIMetodo.tefmpPIX   que realmente não faz sentido; 
    •  @Daniel Simoes sobre gostaria que você traze a sua sugerisse que seria  menos confusso
    • no nosso sistema informamos o meio de pagamento que irá na Nfe/NFCe (tPag) no cadastro forma de pagamento e na hora de gerar venda utilizo essa tag para informar se seria um TEF de cartão debito/ credito, 18- carteira Digital, 17 - Pagamento Instantânio(PIX)  e etc...  (https://documentacao.senior.com.br/exigenciaslegais/materias/erp/2021/2021-03-26-nt-2020-006-versao-1-20-divulgada-tabelas-externas-dos-meios-de-pagamentos-e-cartoes-de-debito-credito.htm)   
      • Eu poderia manter o TACBrTEFModalidadePagamento.tefmpPIX se ajusta os trechos de código abaixo: 
        • function TACBrTEFAPIClassCliSiTef.EfetuarPagamento(...): Boolean;
          begin
            ... 
            case Modalidade of
              tefmpDinheiro:
                Op := 0;    // Pagamento genérico
              tefmpCheque:
                Op := 1;    // Cheque
              tefmpCarteiraVirtual,
              tefmpPIX:
                Op := 122;  // Venda via Carteira Digital
             else
            	...
             end; 
            ...
          end;

           

        • function TACBrTEFAPIClassPayGoWeb.EfetuarPagamento(...)
          begin
          	...
              case Modalidade of
                tefmpCartao: ModalidadeInt := 1;
                tefmpDinheiro: ModalidadeInt := 2;
                tefmpCheque: ModalidadeInt := 4;
                tefmpCarteiraVirtual, 
                tefmpPIX: ModalidadeInt := 8;
              else
                ModalidadeInt := 0;
              end;
              if (ModalidadeInt > 0) then
                PA.ValueInfo[PWINFO_PAYMNTTYPE] := IntToStr(ModalidadeInt);
          	...
          end; 
      • Ou posso remove tefmpPIX  e utilizar tefmpCarteiraVirtual com combinação do  TACBrTEFModalidadeFinanciamento ou TACBrTEFTipoCartao podendo criar : 
        •  TACBrTEFTipoCartao.teftcPIX;
        •  TACBrTEFModalidadeFinanciamento.tefmfPagamentoInstantanio; 
Link para o comentário
Compartilhar em outros sites

  • 3 semanas depois ...

Boa tarde pessoal, @Daniel Simoes @MuriloS.A @Alexandre de Paula @Italo Giurizzato Junior

Estou implementando o TEF com a API elgin modo ativo via dll, encontrei esse tópico, gostaria de verificar com os colegas se vai ficar disponível no repositório oficial.

@MuriloS.A como colaborador da opção está seguro já está utilizando em produção, é possível disponibilizar a ultima versão?

Obrigado pela atenção de todos.

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

  • Moderadores
1 hora atrás, Alysson Rengel disse:

Boa tarde pessoal, @Daniel Simoes @MuriloS.A @Alexandre de Paula @Italo Giurizzato Junior

Estou implementando o TEF com a API elgin modo ativo via dll, encontrei esse tópico, gostaria de verificar com os colegas se vai ficar disponível no repositório oficial.

@MuriloS.A como colaborador da opção está seguro já está utilizando em produção, é possível disponibilizar a ultima versão?

Obrigado pela atenção de todos.

tu pode pegar os arquivo e aplicar localmente para testar e verificar se funcionou

  • Curtir 1
Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

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

 

Link para o comentário
Compartilhar em outros sites

  • 3 semanas depois ...
  • Membros Pro
Postado (editado)

Olá, @MuriloS.A!

Executei o patch que você disponibilizou no último anexo deste tópico. Ao efetuar uma venda, a transação é aprovada.
No entanto, não imprime os comprovantes, pois a resposta, nos campos dos comprovantes, não possui nenhuma informação, embora os logs estejam todos gerados.
Devo fazer algum ajuste naquele código?


Att.

José Filho

Editado por infopointerp
  • Curtir 2
Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois ...

Bom dia amigos, o colega @MuriloS.A trabalhava aqui comigo e foi feito para uma necessidade aqui da empresa, porem ele não esta mais trabalhando aqui com a gente e não vai conseguir mexer mais, então vou tentar concluir o processo junto a vocês para chegarmos ao ponto de publicar.
@infopointerp pode fazer ajustes sim e enviar aqui para o pessoal atualizar o projeto aqui para o nosso cenário a impressão meio que e disparada pelo processo que chama o pagamento ao fim dele, então pode ser por isso que não tem a impressão, mas sinta-se livre pra corrigir/melhorar e enviar. Sou de Mato Grosso e estou aqui na correria para a NT dos pagamentos onlines, então não vou conseguir mexer pro agora.

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

Em 14/03/2024 at 09:29, infopointerp disse:

Olá, @MuriloS.A!

Executei o patch que você disponibilizou no último anexo deste tópico. Ao efetuar uma venda, a transação é aprovada.
No entanto, não imprime os comprovantes, pois a resposta, nos campos dos comprovantes, não possui nenhuma informação, embora os logs estejam todos gerados.
Devo fazer algum ajuste naquele código?


Att.

José Filho

Boa tarde,  verifica se o patch está  igual ao arquivos.  Está  está imprimindo com essa  na software house em que foi desenvolvido. 

 

Link para o comentário
Compartilhar em outros sites

  • 4 semanas depois ...

@Daniel Simoes @Juliomar Marchetti 

Boa tarde.

Executei algumas correções nos arquivos ACBrTEFAPIElgin.pas e ACBrTEFAPIElginComum.pas, executei transacoes de multiplos cartões e operações admisnitrstrativas com exito.

* Corrigido erro na exbição das operações administrativas.

* Corrigido erro no retorno de pagamento, quando efetuado um pagamento de 10,00 o retorno era lido como 1,00, sendo assim a operacao era finalizada na elgin e permanecia em aberto no componente que recebia uma valor errado de pagamento efetuado.

* Corrigido erro na rotina de tratamento de retorno do comprovante. 

 

 

ACBrTEFAPI.rar

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

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.