Ir para conteúdo
  • Cadastre-se

dev botao

InfRespTec - Problemas na geração do Hash


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

Recommended Posts

Boa tarde.

Estou com alguma dificuldade para gerar o campo infRespTec.hashCSRT.

Meu grupo infresptec está saindo com erro no hashCSRT.

ACBRNfe1.Configuracoes.RespTec.CSRT = G8063VRTNDMO886SFNK5LDUDEI24XJ22YIPO

Chave = 33190310894867000191552070000001771000001779

CSRT_ValorInicial :=
       ACBRNfe1.Configuracoes.RespTec.CSRT + Chave;

hashCSRT_RespTec := getHashSHA1(CSRT_ValorInicial);

hashCSRT_RespTec = 4eRY3At/QvYyBzHW7/ouqjwJw9E=

ACBrNFe1.NotasFiscais.Add.NFe.infRespTec.hashCSRT := hashCSRT_RespTec;
 

Após enviar para Sefaz

image.png.d3fe9cb2a0d91e704cb96e50448cec66.png

Alguma sugestão?

Agradeço.

 

Eduardo Sena

 

Link para o comentário
Compartilhar em outros sites

Boa tarde, havia feito a postagem abaixo em outro tópico relacionado porém o tópico foi fechado e não obtive retorno, é o mesma situação que a postagem acima:

Estive analisando os tópicos e pelo que pude compreender para destacar os dados de CSRT bastaria preencher as configurações ACBRNFe.configuracoes.RespTec.IdCSRT e ACBRNFe.configuracoes.CSRT que seria gerado o HASH automaticamente pelo componente, porém quando preencho esses valores está me retornando o seguinte HASH:

<hashCSRT>- A {W t 5ubOaewa:</hashCSRT>

Onde não passa na validação conforme a resposta acima.

 

OBS: Utilizei o mesmo CSRT da NT para teste: G8063VRTNDMO886SFNK5LDUDEI24XJ22YIPO 

         Não utilizei o mesmo idCSRT pois no componente este o campo idCSRT é um inteiro, quando forneço o valor de 01 por ser um inteiro é convertido em 1. No meu ver também é um problema.

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Onde você obteve um IdCSRT  ?

@Italo Jurisato Junior, parece que a rotina que computou o Hash, não transformou o resultado para Base64

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.

Link para o comentário
Compartilhar em outros sites

13 horas atrás, Daniel Simoes disse:

Onde você obteve um IdCSRT  ?

@Italo Jurisato Junior, parece que a rotina que computou o Hash, não transformou o resultado para Base64

Bom dia,

Utilizei um ID aleatório para testes.

Tentei utilizar o ID da NT 2018.005 que seri 01, porém como o campo no componente é um inteiro não está funcionado, pois é retirado o 0 da frente, ficando apenas 1.

Link para o comentário
Compartilhar em outros sites

  • Administradores

Bom dia.

Os dados referentes ao IDSCRT foram postergados indefinidamente conforme NT 2018.005 v.120... Tente informar este grupo conforme  o tópico a seguir

Att.

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

Link para o comentário
Compartilhar em outros sites

14 horas atrás, Daniel Simoes disse:

Onde você obteve um IdCSRT  ?

@Italo Jurisato Junior, parece que a rotina que computou o Hash, não transformou o resultado para Base64

A minha rotina getHashSHA1 calcula o HASH, gerando um string Hexa (40 caracteres) e eu uso outra rotina para transformar em um string de 20 caracteres (HexToAscii), depois submeto esse resultado ao EncodeBase64, que gera um string de 28 caracteres, que foi informado aí. O que ocorre é que eu atribuo para o campo "infRespTec.hashCSRT" o valor, mas quando a nota é transmitida, o valor que aparece é o que printei, e não o que informei.

 

14 horas atrás, Daniel Simoes disse:

Onde você obteve um IdCSRT  ?

@Italo Jurisato Junior, parece que a rotina que computou o Hash, não transformou o resultado para Base64

 

Link para o comentário
Compartilhar em outros sites

16 horas atrás, João Paulo Müller disse:

Boa tarde, havia feito a postagem abaixo em outro tópico relacionado porém o tópico foi fechado e não obtive retorno, é o mesma situação que a postagem acima:

Estive analisando os tópicos e pelo que pude compreender para destacar os dados de CSRT bastaria preencher as configurações ACBRNFe.configuracoes.RespTec.IdCSRT e ACBRNFe.configuracoes.CSRT que seria gerado o HASH automaticamente pelo componente, porém quando preencho esses valores está me retornando o seguinte HASH:

<hashCSRT>- A {W t 5ubOaewa:</hashCSRT>

Onde não passa na validação conforme a resposta acima.

 

OBS: Utilizei o mesmo CSRT da NT para teste: G8063VRTNDMO886SFNK5LDUDEI24XJ22YIPO 

         Não utilizei o mesmo idCSRT pois no componente este o campo idCSRT é um inteiro, quando forneço o valor de 01 por ser um inteiro é convertido em 1. No meu ver também é um problema.

"Para quem esta com os fontes atualizados e reinstalados, ao selecionar o componente ACBrNFe ou ACBrCTe ou ACBrMDFe vai notar no Object Inspector em Configurações o grupo RespTec e dentro deste as propriedades idCSRT e CSRT.

O grupo <infRespTec> contem as seguintes informações: CNPJ, Nome, e-mail, telefone, idCSRT e HashCSRT do Responsável Técnico.

Sendo que as duas ultimas são geradas automaticamente se as propriedades idCSRT e CSRT forem informadas."

Li isso agora. Será que está aí o problema? Eu estou calculando  o HASH e não aguardando a geração automática deste. Também usei o CSRT exemplo da NT.

Link para o comentário
Compartilhar em outros sites

Bom dia, acredito que o ideal seria deixar o proprio componente calcular, apenas parametrizando os campos idCSRT e CSRT nas configurações.

Porém, conforme havia comentado acima, está com problema nessa rotina, o HASH não está correto. Pode ser que seja apenas o encode para base64 conforme relatou o Daniel.

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia a todos,

Favor anexar um XML gerado com os campos idCSRT e hashCSRT.

Outra coisa, devemos configurar o componente alimentando as propriedades: idCSRT e CSRT.

Os campos que são gerados no XML são calculados automaticamente, uma vez que o hashCSRT se utiliza da chave do documento que esta sendo gerado mais o CSRT.

Já existe alguma SEFAZ fornecendo o idCSRT e CSRT para os desenvolvedores?

Que eu saiba ainda não.

Outra coisa importante, ocorreu uma atualização dos Schemas na NF-e onde foi corrigido o tamanho do hashCSRT.

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

Entendi sua posição, @Italo Jurisato Junior, mas para validar o desenvolvimento, utilizei o código exemplo da Nota Técnica e coloquei o ID 1, mas o restante está correto. 

Estou encaminhando os XML, mas vou aguardar o uso real dos valores. 

33190310894867000191552070000001821000001825-nfe_ComCSRT.xml 33190310894867000191552070000001821000001825-nfe_SemCSRT.xml

Link para o comentário
Compartilhar em outros sites

Olá pessoal, 

Realizei a alteração sugerida pelo Daniel e a principio funcionou corretamente, ao menos passou na validação.

Em 21/03/2019 at 18:47, Daniel Simoes disse:

Onde você obteve um IdCSRT  ?

@Italo Jurisato Junior, parece que a rotina que computou o Hash, não transformou o resultado para Base64

 

Original

Unit ACBrDFeUtil, linha 471: 

function CalcularHashCSRT(const ACSRT, AChave: String): string;
begin
  Result := SHA1(ACSRT + AChave);
end;

 

Alteração

function CalcularHashCSRT(const ACSRT, AChave: String): string;
begin
  Result := EncodeBase64(SHA1(ACSRT + AChave));
end;

 

Grupo RespTec XML:

<infRespTec>
  <CNPJ>XXXXXXXX</CNPJ> 
  <xContato>XXXXXXX</xContato> 
  <email>XXXXXX</email> 
  <fone>XXXXXXXXX</fone> 
  <idCSRT>01</idCSRT> 
  <hashCSRT>BZwkyscVlyYgWGWsGL1zmlF3Nxg=</hashCSRT> 
</infRespTec>

 

Link para o comentário
Compartilhar em outros sites

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