Ir para conteúdo
  • Cadastre-se

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

Recommended Posts

Postado

Obrigado pelo retorno, Italo

 

Estou com os fontes atualizados sim, e nesse método NotasFiscais.Assinar(True) tem uma verificação:

 

    if self.Configuracoes.Certificados.AssinaRPS and AssinaRPS
     then begin

       ...Assina;

 

a variavel AssinaRPS está True mas a propriedade self.Configuracoes.Certificados.AssinaRPS está False então não entra nessa rotina de assinar.

 

Só entra nessa rotina de assinar quando eu mudo em tempo de execução o valor da propriedade para True na Função:

 

function TProvedorPublica.GetConfigCidade(ACodCidade,
  AAmbiente: Integer): TConfigCidade;

 

ConfigCidade.AssinaRPS  := False; // Coloco True aqui para Assinar o RPS

  • Consultores
Postado

Elder,

 

Você não deve incluir na sua aplicação a chamada para que o componente assine o XML.

 

Você deve apenas alimentar o componente com os dados do RPS e executar o Enviar ou Gerar.

 

Não devemos alterar a unit referente ao provedor, pois para alguns provedores quando é enviado um lote devemos apenas assinar o lote os RPS não e quando usamos o Gerar o RPS deve ser assinado.

 

Altere de:

if self.Configuracoes.Certificados.AssinaRPS and AssinaRPS

para

if self.Configuracoes.Certificados.AssinaRPS or AssinaRPS

 

E teste novamente.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Postado (editado)

Italo,

 

fiz a alteração que você pediu na procedure TNotasFiscais.Assinar(AssinaRPS: Boolean = True);  alterando de AND para OR e funcionou perfeitamente.

 

Muito Obrigado.

 

 

Acredito que não me expressei corretamente, eu não chamo o componente para assinar, apenas faço assim:

 

         try

            
            ConfiguraComponenteACBr;

            { Aqui nesse metodo, chamo o

                  ACBrNFSe1.Configuracoes.WebServices.SetConfigMunicipio(ACBrNFSe1.Configuracoes.Geral.PathSchemas)

              que foi onde identifiquei o problema que ocorria comigo, pois seta o componente para nao assinar o RPS e sim só o Lote

              que é o caso do provedor Pública quando se envia o Lote (ACBrNFSe.Enviar(Lote))

             }

 
            ACBrNFSe1.NotasFiscais.Clear;
            ACBrNFSe1.NotasFiscais.LoadFromFile(sNomeArquivoRPS);

            if ACBrNFSe1.Configuracoes.WebServices.Provedor = proPublica then
               ACBrNFSe1.Gerar(iRPS)
            else
               ACBrNFSe1.Enviar(sLotRPS);

         except

Editado por elder
  • 4 meses depois ...
Postado

Boa tarde,

 

No início deste mês atualizei os fontes do ACBrNFSe (estava na revisão 7877 do dia 28/11/2014) e entao o erro "Assinatura do HASH não confere" voltou a acontecer e não consegui mais enviar (Utilizo o método ACBrNFSe1.Gerar) NFS-e para Itajaí, cujo provedor é o Pública.

      

Contornei o erro voltando a pasta dos fontes do ACBrNFSe para a revisão 7877 enquanto esperava por um tempo livre para encontrar a causa do erro. Hoje encontrei e vim postar para que se mais alguém passe pelo mesmo problema, possa achar uma possível solução, e para que se for mesmo erro no componente, que possa ser corrigido.

 

Bom, na revisão 7907, foi comentado o seguinte código na Unit pnfsNFSeW:

procedure TNFSeW.GerarXML_ABRASF_V1;
begin
  //if FProvedor in [proLexsom, proPublica] then
  //  FIdentificador := 'id';

Isso faz com que o XML fosse primeiro assinado e só depois de assinar fosse subistituído a tag "Id" para "id" causando assim o erro de HASH (assinatura ficava inválida também na validação no site da receita), removi o comentário e não deu mais o erro pois então o XML seria assinado e enviado sem modificações posteriores.

 

No Log, o motivo desse código ter sido comentado:

[*] Para os provedores Lexsom e Publica o identificador estava sendo alterado para
    id antes de ocorrer a assinatura.

 

Mas acredito que essa é a forma correta, modificar e então assinar, não o contrario, mas em fim, ficaria grato se alguém puder me informar o motivo de estar dessa forma e se eu estou equivocado, como então proceder para evitar o erro de HASH.

 

 

Obrigado.

  • Curtir 1
Postado

Bom dia Italo,

 

 

Consigo assinar com o ID todo em minúsculo sem erros.

 

 

E só consigo validar a assinatura se for assinado com o atributo em minúsculo.

  • 2 semanas depois ...
Postado

Boa Tarde,

 

Estava sofrendo com o mesmo problema de quando emitíamos uma NFSe com o provedor Publica gerava uma rejeição, "Assinatura do HASH não confere" .

Então efetuei uma alteração no método "GetConfigCidade" da unit "ACBrProvedorPublica", para que quando for da cidade 4208203 - Itajaí/SC  ele altere o identificador para 'id' ( tudo em minusculo). Com essa alteração emitiu corretamente a NFSe.

Segue a unit em anexo para que verifiquem se é isso mesmo.

 

Obrigado pela atenção!

ACBrProvedorPublica.pas

  • 2 semanas depois ...
  • 3 semanas depois ...
Postado

Boa tarde pessoal,

 

Atualizei os fontes, veio as alterações feitas.

Mas ao testar um cancelamento de NFS-e, me retorna o erro "Assinatura do Hash nao confere.".

 

Mais alguém continua com o problema?

 

Att.

 

Massao Aihara

Postado

Achei o "problema",

 

o ACBr gera a assinatura do xml com o texto de cancelamento com caracteres especiais, do jeito que passei para o componente.

Mas na hora de enviar o envelope da um string replace, trocando as letras com acentos e "ç".

 

Resolvi o problema passando o texto já formatado para o componente.

 

Att.

Massao Aihara

  • 3 anos depois...
Postado

Bom dia!

Preciso de uma ajuda, estou Enviando o XML,  Integração com o provedor Publica para emissão da NFSe de Chapecó - SC, ocorre o seguinte erro.

 Erro:E1 | Mensagem:Assinatura do Hash não confere. | Correção:Reenvie assinatura do Hash conforme algoritmo estabelecido no Manual de Instrução da NFS-e.

XML que estou enviando esta em anexo.

Agradeço!!!

TESTE.xml

Postado
Em 01/02/2019 at 11:42, Pedro Dalpian disse:

Bom dia!

Preciso de uma ajuda, estou Enviando o XML,  Integração com o provedor Publica para emissão da NFSe de Chapecó - SC, ocorre o seguinte erro.

 Erro:E1 | Mensagem:Assinatura do Hash não confere. | Correção:Reenvie assinatura do Hash conforme algoritmo estabelecido no Manual de Instrução da NFS-e.

XML que estou enviando esta em anexo.

Agradeço!!!

TESTE.xml

Consegui, problema na assinatura, faltou informar uma letra no valor da "id"

  • Curtir 1
  • Este tópico foi criado há 2112 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.