Jump to content

Promoção 25 Anos de Delphi
25% de desconto em todas as versões

Saiba mais

Ganhe o curso Tributação NF-e para Desenvolvedores

Assinando o SAC Anual este mês
botao.png

 

Balança SM100 performance surpreendente

Tecnologia Japonesa   Teclado e Visor resistentes a água
Consumo inteligente de etiquetas   Baixo custo de manutenção
Comunicação Ethernet e WIFI independentes

Saiba Mais

Impressora de Etiquetas ELGIN - L42 PRO

Protocolos PPLA, PPLB, ZPL, EPL (automático)
Porta USB padrão Opcionais: Ethernet, Serial, Paralela
Sensor de Etiquetas Móvel Garantia de 18 meses

Saiba mais

André Ferreira de Moraes

Integrador Fiscal MFE Ceará - Como usar com o ACBr

Recommended Posts

 

Enviei ao SVN os comandos EnviarPagamento e VerificarStatusValidador, no demo em Lazarus é possível visualizar como os comandos podem ser utilizados:

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 := '14034WL38205946';
      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);
    ShowMessage(IntToStr(RespostaPagamentoMFe.IDPagamento));
  finally
    PagamentoMFe.Free;
  end;
end;     

 

procedure TForm1.btMFEVerificarStatusClick(Sender: TObject);
var
  VerificarStatusValidador : TVerificarStatusValidador;
  RespostaVerificarStatusValidador : TRespostaVerificarStatusValidador;
begin
  VerificarStatusValidador := TVerificarStatusValidador.Create;
  try
    with VerificarStatusValidador do
    begin
      Clear;
      ChaveAcessoValidador := '25CFE38D-3B92-46C0-91CA-CFF751A82D3D';
      IDFila := StrToIntDef(InputBox('IDPagmento','Informe o ID do Pagamento',''),0);
      CNPJ:= edtEmitCNPJ.Text;
    end;
    RespostaVerificarStatusValidador := TACBrSATMFe_integrador_XML(ACBrSAT1.SAT).VerificarStatusValidador(VerificarStatusValidador) ;
  finally
    VerificarStatusValidador.Free;
  end;

  ShowMessage(RespostaVerificarStatusValidador.CodigoAutorizacao);
end;     

 


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.automacaototal.com.br

Share this post


Link to post
Share on other sites

Estou postando aqui informações do fluxo completo de venda e pagamento, para quem precisar.

@André Ferreira de Moraes se você puder colocar a rotina de pagamento no exemplo em delphi 7 na pasta exemplos seria massa, por que é um processo bem chato, segundo o administrador do projeto mfe é assim:

1 - Registrar o Cliente (AC - Sem Interface com o Integrador)
2 - Registrar Produtos  (AC - Sem Interface com o Integrador)
3 - Definir forma de pagamento (AC - Sem Interface com o Integrador)
4 - Enviar solicitação de pagamento ao Validador (Interface com o Integrador - Componente: VFP-e / Método: EnviarPagamento)
5 - Solicitar Status de Pagamento para o Validador, em casos de POS (Interface com o Integrador - Componente: VFP-e / Método: VerificarStatusValidador)
ou
5 - Enviar Status de Pagamento para o Validador, em caso de TEF  (Interface com o Integrador - Componente: VFP-e / Método: EnviarStatusPagamento)

6 - Gerar o CF-e (Interface com o Integrador - Componente: MF-e  / Método: EnviarDadosVenda)
7 - Enviar comprovante do Documento Fiscal para o Validador (Interface com o Integrador - Componente: VFP-e  / Método: RespostaFiscal)
8 - Imprimir o Cupom Fiscal em Impressora (AC - Sem Interface com o Integrador)
ou
8 - Imprimir o Cupom Fiscal no POS.

------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Importante implementar 2 cadastros no PDV.

1 - Cadastro de POS (Nome e Serial)
2 - Cadastro de Chave do validador (ChaveAcesso String (50) e ChaveRegistro String (50) ) e 
    Integrador (Identificador String (1) Chave Unica para relacionamento entre as mensagens e o retorno do Integrador )

------------------------------------------------------------------------------------------------------------------------------------------------------------------------

quando falamos de POS ele te envia os dados do pagamento e vc receber pelo passo 5 guarda os dados no seu sistema e alimenta a informação de pagamento do CF-e, apos a emissão do CF-e vc pega a chave de acesso e remete novamente ao integrador pelo passo 7

  • Like 3

Share this post


Link to post
Share on other sites
9 horas atrás, André Ferreira de Moraes disse:

 

Enviei ao SVN os comandos EnviarPagamento e VerificarStatusValidador, no demo em Lazarus é possível visualizar como os comandos podem ser utilizados:

Andre,

Como ta o tempo de resposta do Integrador com ACBr? Razoavel? Parece que o Integrador as vezes demora um pouco a responder, em média 4 segundos!

Outra,

Ha previsão de qndo essas alterações irão para o Monitor?

Edited by Janio

Share this post


Link to post
Share on other sites
19 minutos atrás, Janio disse:

Como ta o tempo de resposta do Integrador com ACBr? Razoavel? Parece que o Integrador as vezes demora um pouco a responder, em média 4 segundos!

Está nessa média de 4 segundos mesmo.

19 minutos atrás, Janio disse:

Ha previsão de qndo essas alterações irão para o Monitor?

Na próxima compilação semanal, os comandos que já existiam para o SAT estarão disponíveis para MFE.

Abaixo estou enviando um vídeo que mostra o comportamento do Integrador em Redes com proxy.

2017-04-27 08-44-59.mp4

Ao ocorrer esse comportamento é gerado o arquivo erros_integrador.txt

Além disso, alguns arquivos que seriam atualizados na inicialização ficam com conteúdo inválido:

DriverMFE_Instalador_01.04.01.exe
integradorMFE.jar
IntegradorTerminal.dll
nexgen-mensageria.jar
ValidadorFiscal.Integracao.dll

(Abra esses arquivos com o bloco de notas e verá que o conteúdo dele é o erro do proxy de arquivo não encontrado).


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.automacaototal.com.br

Share this post


Link to post
Share on other sites
1 hora atrás, André Ferreira de Moraes disse:

Abaixo estou enviando um vídeo que mostra o comportamento do Integrador em Redes com proxy.

2017-04-27 08-44-59.mp4

Ao ocorrer esse comportamento é gerado o arquivo erros_integrador.txt

Andre,

Luiz Abade indicou que esse problema está relacionado a firewall

 

 

Share this post


Link to post
Share on other sites
Agora, Janio disse:

Andre,

Luiz Abade indicou que esse problema está relacionado a firewall

Se vc abrir pelo bloco de notas qualquer um dos arquivos que anexei no tópico, verá que o erro é de endereço não encontrado. Uso a mesma máquina para fazer os testes, quando uso uma rede sem proxy ele funciona normalmente e qdo troco para uma rede com proxy acontece o problema.

Dentro do arquivo é exibido como URL <a href="/integrador/IntegradorTerminal.dll"> sendo que o endereço correto seria https://integrador.blob.core.windows.net/integrador/IntegradorTerminal.dll

Acredito que algum tipo de configuração no proxy até possa resolver esse problema, mas se consigo acessar esse endereço completo pelo browser, o integrador também deveria conseguir. E outro detalhe é que, aparentemente, sempre que inicia o Integrador ele tenta atualizar esses arquivos, e como é gerado um arquivo inválido ele para de funcionar. Seria melhor que ele baixasse os arquivos, fizesse algum tipo de validação(validar hash por exemplo) antes de substituir os arquivos atuais, pq do modo atual, caso exista algum problema na internet do cliente pode ser que apenas reiniciando o Integrador a loja pare de emitir CFe.


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.automacaototal.com.br

Share this post


Link to post
Share on other sites

@André Ferreira de Moraes No método:  ACBrSAT1.Resposta os valores que o componente disponibiliza são: numeroSessão, codigoRetorno etc, só que não retorna os valores que vem depois do xml da venda em base64 que são: Data e hora da emissão, chaveConsulta, valorTotalCFe, CPFCNPJValue e assinaturaQRCODE

"...=|20151210094740|CFe35151208723218000186599000025910004311835531|26.66||deTVk7//zHsxWCBdsgh83SypwpIsJ3kh9Yshu4OO6Nn3FdMs6xlrc3bd4nknlmEgGn7M3NcSAdpiaeMiPluUIR2BiXVNQ/tsRFbFOqjzNkaf12YxCSlpBHc1e1N/Y7YZISwPdZgvtrmI0sGZZ6wUN6E1wzXw6KTyhFC4CFkZHTDRT9oesBspRj29qf6G9QNZKbwc03aIzQ7PEbPS/nUQe+XNwmzy3LHl1vpbBC347zQ5ypo8epgZZi2RPIfvKZwcZzetu/ttbvndGYhj30Jm0DjpcXm8dbWT8FJf7Av5CfGOmUBJRnY8eHepgL0x4gs+boPbgFCQgZxwhe3wlNxL2g" 

Se tivesse como disponibilizar esses campos também na resposta, ficaria show.

Segue o layout: https://portal.fazenda.sp.gov.br/servicos/sat/Downloads/Especificacao_SAT_v_ER_2_21_08.pdf

Esses campos estão na página: 214

Desde já muito obrigado André pelas implementações que tu já fizestes, vc é o cara.

 

  • Like 1

Share this post


Link to post
Share on other sites
1 minuto atrás, jackson Lima disse:

@André Ferreira de Moraes No método:  ACBrSAT1.Resposta os valores que o componente disponibiliza são: numeroSessão, codigoRetorno etc, só que não retorna os valores que vem depois do xml da venda em base64 que são: Data e hora da emissão, chaveConsulta, valorTotalCFe, CPFCNPJValue e assinaturaQRCODE

"...=|20151210094740|CFe35151208723218000186599000025910004311835531|26.66||deTVk7//zHsxWCBdsgh83SypwpIsJ3kh9Yshu4OO6Nn3FdMs6xlrc3bd4nknlmEgGn7M3NcSAdpiaeMiPluUIR2BiXVNQ/tsRFbFOqjzNkaf12YxCSlpBHc1e1N/Y7YZISwPdZgvtrmI0sGZZ6wUN6E1wzXw6KTyhFC4CFkZHTDRT9oesBspRj29qf6G9QNZKbwc03aIzQ7PEbPS/nUQe+XNwmzy3LHl1vpbBC347zQ5ypo8epgZZi2RPIfvKZwcZzetu/ttbvndGYhj30Jm0DjpcXm8dbWT8FJf7Av5CfGOmUBJRnY8eHepgL0x4gs+boPbgFCQgZxwhe3wlNxL2g" 

Se tivesse como disponibilizar esses campos também na resposta, ficaria show.

Segue o layout: https://portal.fazenda.sp.gov.br/servicos/sat/Downloads/Especificacao_SAT_v_ER_2_21_08.pdf

Esses campos estão na página: 214

Desde já muito obrigado André pelas implementações que tu já fizestes, vc é o cara.

 

Seria bom mesmo hein! rsrs


Obrigado a todos!

Share this post


Link to post
Share on other sites
3 minutos atrás, jackson Lima disse:

@André Ferreira de Moraes No método:  ACBrSAT1.Resposta os valores que o componente disponibiliza são: numeroSessão, codigoRetorno etc, só que não retorna os valores que vem depois do xml da venda em base64 que são: Data e hora da emissão, chaveConsulta, valorTotalCFe, CPFCNPJValue e assinaturaQRCODE

"...=|20151210094740|CFe35151208723218000186599000025910004311835531|26.66||deTVk7//zHsxWCBdsgh83SypwpIsJ3kh9Yshu4OO6Nn3FdMs6xlrc3bd4nknlmEgGn7M3NcSAdpiaeMiPluUIR2BiXVNQ/tsRFbFOqjzNkaf12YxCSlpBHc1e1N/Y7YZISwPdZgvtrmI0sGZZ6wUN6E1wzXw6KTyhFC4CFkZHTDRT9oesBspRj29qf6G9QNZKbwc03aIzQ7PEbPS/nUQe+XNwmzy3LHl1vpbBC347zQ5ypo8epgZZi2RPIfvKZwcZzetu/ttbvndGYhj30Jm0DjpcXm8dbWT8FJf7Av5CfGOmUBJRnY8eHepgL0x4gs+boPbgFCQgZxwhe3wlNxL2g" 

Se tivesse como disponibilizar esses campos também na resposta, ficaria show.

Segue o layout: https://portal.fazenda.sp.gov.br/servicos/sat/Downloads/Especificacao_SAT_v_ER_2_21_08.pdf

Esses campos estão na página: 214

Desde já muito obrigado André pelas implementações que tu já fizestes, vc é o cara.

 

Esses campos vc já tem no XML de retorno que é populado no objeto CFe.

    ACBrSAT1.CFe.ide.dEmi;
    ACBrSAT1.CFe.infCFe.ID;
    ACBrSAT1.CFe.Total.vCFe;
    ACBrSAT1.CFe.Dest.CNPJCPF;
    ACBrSAT1.CFe.ide.assinaturaQRCODE; 

 

  • Like 1

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.automacaototal.com.br

Share this post


Link to post
Share on other sites
Em 25/04/2017 at 22:04, André Ferreira de Moraes disse:

Acabei de comitar as alterações para compatibilizar o ACBrSAT com o MFe, tive tempo de testar apenas os comandos compatíveis com o SAT, os comandos de pagamento ainda serão desenvolvidos.

Abaixo um passo-a-passo para utilizar o integrador fiscal fornecido pela SEFAZ do Ceará com o ACBrSAT:

  • Baixe o instalador em https://integrador.blob.core.windows.net/releases/Integrador Setup 1.5.86.exe
  • Faça a instalação do mesmo e ao executar pela primeira vez utilize os seguintes dados na tela de configuração/opções:
    • CNPJ do Estabelecimento: 30146465000116
    • Inscrição Estadual do Estabelecimento: 065911482
    • CNPJ da Software House: 98155757000159
    • Código de Validação do Aplicativo Comercial: MD2Nof/O0tQMPKiYeeAydSjYt7YV9kU0nWKZGXHVdYIzR2W9Z6tgXni/Y5bnjmUAk8MkqlBJIiOOIskKCjJ086k7vAP0EU5cBRYj/nzHUiRdu9AVD7WRfVs00BDyb5fsnnKg7gAXXH6SBgCxG9yjAkxJ0l2E2idsWBAJ5peQEBZqtHytRUC+FLaSfd3+66QNxIBlDwQIRzUGPaU6fvErVDSfMUf8WpkwnPz36fCQnyLypqe/5mbox9pt3RCbbXcYqnR/4poYGr9M9Kymj4/PyX9xGeiXwbgzOOHNIU5M/aAs0rulXz948bZla0eXABgEcp6mDkTzweLPZTbmOhX+eA==
    • Selecione o checkbox "Servidor" (Talvez seja necessário alterar o campo IsServer para True no arquivo Integrador.cnf - Use o SQLiteStudio -http://sqlitestudio.pl/)
  • Atualize seu fontes do ACBr e no demo do ACBrSAT para Lazarus(E:\delphi\ACBr\trunk2\Exemplos\ACBrSAT\Lazarus) configure a nova aba MFE, escolha o modelo "MFe_Integrador_XML" e clique em inicializar.
  • Para o MDK da TANCA use os seguinte dados na criação do XML de Venda:
    • Código de Ativação: 12345678
    • CNPJ do Contribuinte: 08.723.218/0001-86
    • IE do Contribuinte: 562.377.111.111
    • CNPJ da Software House: 16.716.114/0001-72
    • Assinatura da Software House: SGR-SAT SISTEMA DE GESTAO E RETAGUARDA DO SAT

Pontos de atenção:

Como tratar um comando com erro?
Em todos os comandos existe o campo IDENTIFICADOR, mas ao enviar um comando com erro, a resposta não vem com este campo, então fica difícil saber se o XML que está na pasta se refere ao último comando enviado.

Exemplo do arquivo de resposta a um comando com erro: 7b96d469f63c4973af180a991804f0ec20170425220009.xml

Fiz a instalação não tenho o MFE físico. Fiz conforme orientado colocando na pasta do Integrador o arquivo debug.dgb, mas o monitor não mfe continua sem comunicação! É assim mesmo? Os retornos ficarão no exemplo enviado ou podera ser visualizado em emulador?

Share this post


Link to post
Share on other sites

Boa Tarde

 

Estou com um xml de envio de venda testando com o integrador, foi pedido pelo Luiz abade que aonde se encontra a Tag codigodeAtivacao seja colocado codigoDeAtivacao,  segundo o mesmo isso causa problemas, provocando no meu caso a não resposta do Integrador.

 

segue o ACBrSATMFe_integrador, Alterado, 

ACBrSATMFe_integrador.pas

Share this post


Link to post
Share on other sites
53 minutos atrás, Giovanne Fontenele Trevia disse:

Boa Tarde

 

Estou com um xml de envio de venda testando com o integrador, foi pedido pelo Luiz abade que aonde se encontra a Tag codigodeAtivacao seja colocado codigoDeAtivacao,  segundo o mesmo isso causa problemas, provocando no meu caso a não resposta do Integrador.

 

segue o ACBrSATMFe_integrador, Alterado, 

ACBrSATMFe_integrador.pas

Qual o erro? Até ontem estava funcionando normalmente o comando de venda.

De qualquer forma, alterei a grafia do codigoDeAtivacao e commitei. Fiz diversas mudanças no código, mas não tive como testar, pois o meu Integrador não funciona na rede da empresa.


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.automacaototal.com.br

Share this post


Link to post
Share on other sites
1 hora atrás, André Ferreira de Moraes disse:

Qual o erro? Até ontem estava funcionando normalmente o comando de venda.

De qualquer forma, alterei a grafia do codigoDeAtivacao e commitei. Fiz diversas mudanças no código, mas não tive como testar, pois o meu Integrador não funciona na rede da empresa.

@André Ferreira de Moraes, Segundo o Abade, em audio no grupo, ele disse que aconteceu também com ele em testes mas foi o FIREWALL da empresa que estava bloqueando, ai o sistema entra em loop.

Ele disse que não é problema no PROXY e que o integrador usa as configurações de rede da maquina.


Obrigado a todos!

Share this post


Link to post
Share on other sites

O meu esta tudo desativado eu tenho um mfe funcionando e o meu integrador não responde a nada

 

Alguem encontrou o mesmo problema

 

Encontrei o Arquivo erros_integrador.txt

com o seguinte conteudo 

Thu Apr 27 2017 15:50:58 GMT-0300 (Hora oficial do Brasil):  TypeError: Cannot read property 'split' of undefined
 

Share this post


Link to post
Share on other sites
2 horas atrás, Giovanne Fontenele Trevia disse:

Pior é que não da Erro, segundo o próprio Luiz Abade simplesmente o integrador não consome o arquivo quando do acontecimento do erro de grafia, então o arquivo fica na pasta input gerando erro no log do emissor

Isso acontece qdo não está selecionado o modo servidor nas opções do Integrador. Como falado no primeiro post, vc deve verificar no arquivo Integrador.cnf como está o campo IsServer.

 


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.automacaototal.com.br

Share this post


Link to post
Share on other sites
8 minutos atrás, Janio disse:

Andre,

Acabei de baixar o acbr e compilei o monitor. Testando com Mfe Elgin, aparentemente tudo funcionando. Mas ao enviar um cupom recebo retorno "ERRO DE VALIDAÇÃO DE CONTEÚDO"

Tem ideia do que eu possa estar fazendo errado?

 

AD20170427203557-011836-env.xml

ent.txt

sai.txt

Aparentemente seu arquivo está incompleto(CNPJ SH, SignAC, etc), ele funciona com o SAT?


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.automacaototal.com.br

Share this post


Link to post
Share on other sites

Sim, com o Emulador do SAT funcionava sim!

Outra coisa,

Coloquei o "identificador" no .ini, mas não vi onde ele jogou no xml

Share this post


Link to post
Share on other sites

O identificador é o número da sessão, que é gerado automaticamente pelo componente.

Caso vc queira controlar esse número, deverá usar o comando SAT.setnumerosessao(NumSessao) antes de cada comando enviado ao ACBrMonitorPLUS.

20 minutos atrás, Janio disse:

Sim, com o Emulador do SAT funcionava sim!

Informe os dados do equipamento que vc está usando atualmente, se estiver usando o da TANCA os dados estão disponíveis no primeiro post deste tópico.


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.automacaototal.com.br

Share this post


Link to post
Share on other sites

Amigos, uma dúvida.

Aqueles POS que existem hoje, que não controlam vendas, eu preciso enviar o método EnviarPagamento e VerificarStatus? Ou mando como se fosse uma venda em Especie?

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

×
×
  • Create New...