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

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.