Jump to content

logo_acbr_paygo.png

TEF ACBr PayGo
Seja um revendedor e ofereça uma solução completa para seu cliente.


Saiba mais

beneficios.png

click.png

click.png

click.png

click.png

click.png

click.png

click.png

click.png

click.png

click.png click.png click.png

297 Rejeicao: Assinatura difere do calculado


Go to solution Solved by simon de la reza,
  • Este tópico foi criado há 584 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui

Recommended Posts

Boa tarde.

Não consigo validar essa NFC-e que testo em homologação.

Testei na minha aplicação e em https://www.sefaz.rs.gov.br/NFE/NFE-VAL.aspx.

O retorno é  sempre aquilo: 297 - [Simulacao] Rejeicao: Assinatura difere do calculado

Fiz um busca exaustiva, porém não encontro nenhum espaço branco ou caractere especial.

Vi os outros tópicos similares mas nenhum deles veio com alguma dica.

Poderia ser relacionado com outro erro, talvez  relacionado ao certificado?

O arquivo está anexado.

Agradeço qualquer ajuda.

 

ArquivoExemplo.xml

Link to comment
Share on other sites

  • Moderadores
1 hora atrás, simon de la reza disse:

O retorno é  sempre aquilo: 297 - [Simulacao] Rejeicao: Assinatura difere do calculado

Fiz a validação do teu XML e acusou falta da tag uTrib.

1 hora atrás, simon de la reza disse:

Fiz um busca exaustiva, porém não encontro nenhum espaço branco ou caractere especial.

Esse XML não foi gerado pelo ACBrNFe certo?

Tem quebras de linha no XML, você deve retirar todas elas antes de assinar.

 

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Link to comment
Share on other sites

A tag uTrib está presente.

Trata-se de uma aplicação WPF (um PDV ou Ponto de Venda) que usa a biblioteca ZeusAutomação.

A função abaixo gera um arquivo xml que é mandado pro SEFAZ e obtém o retorno

Penso que devo remover as quebras de linha depois que a string xmlEnvio é gerada?

 

 private RetornoNFeAutorizacao NFeAutorizacao4(int idLote, IndicadorSincronizacao indSinc, List<Classes.NFe> nFes, bool compactarMensagem)
        {
            var versaoServico = ServicoNFe.NFeAutorizacao.VersaoServicoParaString(_cFgServico.VersaoNFeAutorizacao);

            #region Cria o objeto wdsl para consulta

            var ws = CriarServicoAutorizacao(ServicoNFe.NFeAutorizacao);

            #endregion

            #region Cria o objeto enviNFe

            var pedEnvio = new enviNFe4(versaoServico, idLote, indSinc, nFes);

            #endregion

            #region Valida, Envia os dados e obtém a resposta

            var xmlEnvio = _cFgServico.RemoverAcentos
                ? pedEnvio.ObterXmlString().RemoverAcentos()
                : pedEnvio.ObterXmlString();

            if (_cFgServico.cUF == Estado.PR)
                //Caso o lote seja enviado para o PR, colocar o namespace nos elementos <NFe> do lote, pois o serviço do PR o exige, conforme https://github.com/adeniltonbs/Zeus.Net.NFe.NFCe/issues/33
                xmlEnvio = xmlEnvio.Replace("<NFe>", "<NFe xmlns=\"http://www.portalfiscal.inf.br/nfe\">");

   
            xmlEnvio = xmlEnvio.Replace("<cEAN/>", "<cEAN>SEM GTIN</cEAN>");
            xmlEnvio = xmlEnvio.Replace("<cEAN />", "<cEAN>SEM GTIN</cEAN>");
            xmlEnvio = xmlEnvio.Replace(" />", "/>");
            xmlEnvio = RemoverCaracteresEspeciais(xmlEnvio);
            
            
             Validador.Valida(ServicoNFe.NFeAutorizacao, _cFgServico.VersaoNFeAutorizacao, xmlEnvio, cfgServico: _cFgServico);
            var dadosEnvio = new XmlDocument();
            dadosEnvio.LoadXml(xmlEnvio);

            SalvarArquivoXml(idLote + "-env-lot.xml", xmlEnvio);

            XmlNode retorno;
            try
            {
                if (compactarMensagem)
                {
                    var xmlCompactado = Convert.ToBase64String(Compressao.Zip(xmlEnvio));
                    retorno = ws.ExecuteZip(xmlCompactado);
                }
                else
                {
                    retorno = ws.Execute(dadosEnvio);
                }
            }
            catch (WebException ex)
            {
                throw FabricaComunicacaoException.ObterException(ServicoNFe.NFeAutorizacao, ex);
            }

 

 

 

Link to comment
Share on other sites

  • Moderadores
40 minutos atrás, simon de la reza disse:

Trata-se de uma aplicação WPF (um PDV ou Ponto de Venda) que usa a biblioteca ZeusAutomação.

Movendo para subfórum mais adequado.

Talvez você tenha mais sucesso buscando ajuda num fórum dessa biblioteca.

  • Like 1
Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Link to comment
Share on other sites

Boa tarde,

A rejeição "assinatura difere do calculado" irá acontecer no validador de homologação quando o certificado digital instalado na sua maquina não é igual ao utilizado na montagem do XML (isso não significa que um erro, pois o validador faz apenas um PARSE nas tags do XML).
Observei também que você tem duas rejeições no XML, uma relacionada a data e hora (provavelmente por conta do horário de verão) e outra relacionada ao código de barras de um determinado produto.

Realize as correções e mande validar o XML.

  • Like 1
Link to comment
Share on other sites

  • Solution

Bom dia

O erro não foi causado por um caractere especial (do tipo & ou º), como praticamente todos os sites ou fóruns vão assinalar.

Era que o certificado digital não estava igual ao XML montado, como Matheus assinalou.

Numa primeira etapa, as informações da nota fiscal são agrupadas numa classe, que será em seguida assinada.
Numa próxima etapa, esses dados assinados serão convertidos numa variável string, que será mandada ao SEFAZ para validação.

O erro foi ter feito algumas modificações na variável string logo antes do envio para o SEFAZ. O que resultava na mensagem "297 Rejeicao: Assinatura difere do calculado",
pois a variável string obviamente não correspondia mais ao valor original assinado.

A modificação tinha que ser feita na primeira etapa, antes da assinatura.

Essa modificação era devido à presença de um campo string de nome cEAN vazio. Como o SEFAZ não reconhece um campo cEAN vazio, devia apenas
colocar uma frase do tipo "campo cEAN vazio" no campo.

Agradeço pela ajuda!

Edited by simon de la reza
  • Like 1
Link to comment
Share on other sites

  • Consultores

Obrigado por reportar.

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

Consultora SAC ACBr

Juliana Tamizou
Ajude o Projeto ACBr crescer - Assine o SAC

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

Link to comment
Share on other sites

  • Este tópico foi criado há 584 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui
Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.