Ir para conteúdo
  • Cadastre-se

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

Recommended Posts

Postado

Bom dia.

Estou implantando a opção de emissão via DLL do MFE do Ceará para não utilizar mais o Integrador. A emissão deu certo, os testes também, mas na hora que fui fazer um envio de pagamento ele da access violation, abri o demo e acontece a mesma coisa. Segue em anexo um print da demo do ACBr com o erro e as configurações.

Como ficou essa questão do envio do pagamento do MFE ainda vai ser usado?

Outra questão, quando tento gerar o Log utilizando a DLL ele gera o arquivo em branco, quando uso pelo integrador funciona, poderiam verificar?

Obrigado!

Print.PNG

  • Administradores
Postado

Boa tarde.

De acordo com as regras  da SEFAZ-CE o integrador ainda sim precisa estar instalado na maquina do cliente. Não sei se realmente causa seu problema, mas vale a pena verificar.

Att.

  • Curtir 1
  • Confuso 1
Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

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

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


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Postado

Boa tarde @Juliana Tamizou tudo bem? Estou com o mesmo problema citado a cima.

Eu tenho o integrador instalado, ele está aberto e mesmo assim o erro acontece, estou utilizando a dll que o próprio integrador disponibiliza na pasta onde foi instalado: "C:\Program Files (x86)\SEFAZ-CE\Driver MFE\Biblioteca de funções\mfe.dll". O Drive que eu estou usando é a versão 01.05 (Comunicação direta) baixei direto da página de dowloads do SEFAZ-CE, porém esse drive não comunica com o integrador, para isso tem que usar a versão do drive 01.04 que não comunica com a DLL, eu não consigo utilizar as duas ferramentas juntas, teria alguma forma de fazer isso?

Obrigado.

"A arte de programar consiste em organizar e dominar a complexidade." 🤖

-Edsger W. Dijkstra

  • 4 semanas depois ...
Postado

Boa tarde.

Não estou conseguindo debugar porque ele só carrega a DLL se eu executo por fora do delphi. Usando Showmessage identifiquei que o Acess violation acontece quando vai alimentar o TRespostaPagamento com o retorno do TEnviaPagamento.

procedure TForm1.btMFEEnviarPagamentoClick(Sender: TObject);
var
  PagamentoMFe : TEnviarPagamento;
  RespostaPagamentoMFe : TRespostaPagamento;
begin
  PagamentoMFe := TEnviarPagamento.Create;
  try
    with PagamentoMFe do
    begin
      Clear;
      ChaveAcessoValidador := '25CFE38D-3B92-46C0-91CA-CFF751A82D3D';
      ChaveRequisicao := '26359854-5698-1365-9856-965478231456';
      Estabelecimento := '10';
      SerialPOS := InputBox('SerialPOS','Informe o Serial do POS','ACBr-'+RandomName(8));
      CNPJ := edtEmitCNPJ.Text;
      IcmsBase := 0.23;
      ValorTotalVenda := 1530;
      HabilitarMultiplosPagamentos := True;
      HabilitarControleAntiFraude := False;
      CodigoMoeda := 'BRL';
      EmitirCupomNFCE := False;
      OrigemPagamento := 'Mesa 1234';
    end;
    RespostaPagamentoMFe := TACBrSATMFe_integrador_XML(ACBrSAT1.SAT).EnviarPagamento(PagamentoMFe); //Aqui
    ShowMessage(IntToStr(RespostaPagamentoMFe.IDPagamento)); 
  finally
    PagamentoMFe.Free;
  end;
end;

A Função de Enviar pagamento passa normal o problema esta quando o "RespostaPagamentoMFe" recebe o que ela retorna.

Poderiam verificar por favor?

Muito obrigado.

"A arte de programar consiste em organizar e dominar a complexidade." 🤖

-Edsger W. Dijkstra

  • 2 semanas depois ...
Postado

Boa tarde pessoal.

Fazendo alguns testes aqui consegui resolver o erro mudando a linha

    RespostaPagamentoMFe := TACBrSATMFe_integrador_XML(ACBrSAT1.SAT).EnviarPagamento(PagamentoMFe);

para

RespostaPagamentoMFe := ACBrIntegrador1.EnviarPagamento(PagamentoMFe);

ai o access violation não acontece mais.

Se caso queiram dar uma olhada no componente eu agradeço.

Obrigado

"A arte de programar consiste em organizar e dominar a complexidade." 🤖

-Edsger W. Dijkstra

  • Administradores
Postado

Boa tarde,

Obrigada pela análise, adicionada para validação.

Att.

  • Curtir 1
Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

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

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


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • Fundadores
Postado

Modifiquei o Demo... além do "cast" sem teste, ainda havia um "Memory Leak"...
eu particularmente, não gosto de métodos que criam e retornam Objetos... (mas foi implementado dessa maneira)

procedure TForm1.btMFEEnviarPagamentoClick(Sender: TObject);
var
  PagamentoMFe : TEnviarPagamento;
  RespostaPagamentoMFe : TRespostaPagamento;
begin
  RespostaPagamentoMFe := Nil;
  PagamentoMFe := TEnviarPagamento.Create;
  try
    with PagamentoMFe do
    begin
      Clear;
      ChaveAcessoValidador := '25CFE38D-3B92-46C0-91CA-CFF751A82D3D';
      ChaveRequisicao := '26359854-5698-1365-9856-965478231456';
      Estabelecimento := '10';
      SerialPOS := InputBox('SerialPOS','Informe o Serial do POS','ACBr-'+RandomName(8));
      CNPJ := edtEmitCNPJ.Text;
      IcmsBase := 0.23;
      ValorTotalVenda := 1530;
      HabilitarMultiplosPagamentos := True;
      HabilitarControleAntiFraude := False;
      CodigoMoeda := 'BRL';
      EmitirCupomNFCE := False;
      OrigemPagamento := 'Mesa 1234';
    end;

    if ACBrSAT1.SAT is TACBrSATMFe_integrador_XML then
      RespostaPagamentoMFe := TACBrSATMFe_integrador_XML(ACBrSAT1.SAT).EnviarPagamento(PagamentoMFe)
    else
      RespostaPagamentoMFe := ACBrIntegrador1.EnviarPagamento(PagamentoMFe);

    if Assigned(RespostaPagamentoMFe) then
      ShowMessage(IntToStr(RespostaPagamentoMFe.IDPagamento));
  finally
    PagamentoMFe.Free;
    if Assigned(RespostaPagamentoMFe) then
      RespostaPagamentoMFe.Free;
  end;
end;

 

  • Curtir 1
  • Obrigado 2
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

Bom dia.

Muito Obrigado @Daniel Simoes, e lembrando pra quem for implementar o MFE do Ceará sem o integrado. A opção de envio via DLL funciona apenas para Envio, Cancelamento e Inutilização, se foi enviar o pagamento POS tem que ter o integrador rodando pois ainda usa ele.

Obrigado.

  • Curtir 4

"A arte de programar consiste em organizar e dominar a complexidade." 🤖

-Edsger W. Dijkstra

  • 3 meses depois ...
  • Moderadores
Postado
1 hora atrás, Bruno Ravel disse:

estou com o seguinte erro

EACBrSATErro - Erro ao carregar a função: AssociarAssinatura na Biblioteca: C:\Program Files (x86)\SEFAZ-CE\Driver MFE\Biblioteca de funções\mfe.dll
 

Tente colocar a DLL na mesma pasta que seu executável.

  • Curtir 2
djsystem-logo.png
 youtube.png facebook.png instagram.png linkedin.png
André Ferreira de Moraes | Analista de Sistemas
www.djsystem.com.br | www.djpdv.com.br
www.tefhouse.com.br | www.xpos.com.br
  • 4 semanas depois ...
  • Administradores
Postado

Obrigado por reportar.

Fechando. Para novas dúvidas, criar um novo tópico.

  • Curtir 1
Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

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

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


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • Este tópico foi criado há 1963 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.

The popup will be closed in 10 segundos...
The popup will be closed in 10 segundos...