Ir para conteúdo
  • Cadastre-se

dev botao

297 Rejeicao: Assinatura difere do calculado


Ver Solução Respondido por simon de la reza,
  • Este tópico foi criado há 1794 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

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

  • Moderadores
Postado
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

 

 

Postado

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);
            }

 

 

 

  • Moderadores
Postado
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.

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

Projeto ACBr

 

 

Postado

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.

  • Curtir 1
  • Solution
Postado (editado)

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!

Editado por simon de la reza
  • Curtir 1
  • Administradores
Postado

Obrigado por reportar.

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

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