Ir para conteúdo
  • Cadastre-se

dev botao

Paraná - Rejeição (464): Código de Hash no QR-Code difere do calculado


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

Recommended Posts

Postado
1 hora atrás, Fernando Di Pace disse:

Amigos,

Acabei de solicitar a revogação de um CSC e pedi para gerar um novo e deu certo, tenho mais alguns clientes que estão com o problema. Vou fazer um a um e deixarei o depoimento aqui.

Lembrando que a Mulesta do contador tem que revogar o antigo fazer um novo e consultar no link  https://www.receita.pb.gov.br/ser/servirtual/documentos-fiscais/nfc-e/consultar-csc se o mesmo está ativo. Pois os contadores podem criar e não ativa-lo.

 

Fernando, atualiza agente msm, foda que nao tenho acesso a emissao de CSC, solicitei a 2 contadores eles me enviarao um novo CSC, em 2 clientes emitiu algumas notas mas logo parou novamente retornando o erro 464, ta tenso!

Gabriel Rodrigues Da Costa Neto

  • Membros Pro
Postado
30 minutos atrás, gabriellc disse:

Fernando, atualiza agente msm, foda que nao tenho acesso a emissao de CSC, solicitei a 2 contadores eles me enviarao um novo CSC, em 2 clientes emitiu algumas notas mas logo parou novamente retornando o erro 464, ta tenso!

Cara, tá muito estranho isso, será que é alguma vulnerabilidade na SEFAZ??? Eu fiz em um cliente está funcionado de boa, amanhã vou testar em outros clientes. O pior que tem muito cliente meu que está funcionado de boa, sem precisar fazer nada. Acho que pode ser algum problema na SEFAZ.

Seria bom algum Moderador ou Administrador participar da conversa aqui. Para dá sua opinião!!! 

Postado
2 minutos atrás, Fernando Di Pace disse:

Cara, tá muito estranho isso, será que é alguma vulnerabilidade na SEFAZ??? Eu fiz em um cliente está funcionado de boa, amanhã vou testar em outros clientes. O pior que tem muito cliente meu que está funcionado de boa, sem precisar fazer nada. Acho que pode ser algum problema na SEFAZ.

Seria bom algum Moderador ou Administrador participar da conversa aqui. Para dá sua opinião!!! 

sim, peguei os dados de um cliente estava testando aqui, desde as 6 nao enviou nenhuma, agora agora conseguiu enviar sem fazer alteracao nenhuma, eles estao cagando no pau nessa validacao!

Gabriel Rodrigues Da Costa Neto

Postado

pessoal peguei esse trecho do manual de Padrões Técnicos do DANFE-NFC-e e QR Code versao 3.3

atentem para o item 5 que fala que o resultado SHA-1 deve estar em HEXA e em CAIXA BAIXA. 

olhei no XML e ele esta em caixa ALTA.

teria alguma coisa haver?

4.5.1 Passos para a geração do Hash do QR Code:

1º - Converter o valor da Data e Hora de Emissão da NFC-e (dhEmi) para HEXA;

2º - Converter o valor do Digest Value da NFC-e (digVal) para HEXA;

3º - Substituir os valores (“dhEmi” e “digVal”) nos parâmetros;

4º - Adicionar ao final dos parâmetros o CSC (CSC do contribuinte disponibilizado pela SEFAZ do Estado onde a empresa esta localizada);

5º - Aplicar o algoritmo SHA-1 sobre todos os parâmetros concatenados. O resultado do algoritmo SHA-1 deve estar em HEXA e em caixa baixa; 6º - Junte tudo sem o CSC entregue pela SEFAZ e gere a imagem QR Code: 1º parte (endereço da consulta) + 2º parte (itens da tabela indicados com “SIM” na última coluna) + cHashQRCode.

esse outro trecho se encontra no item 4.5:

Observação: todas as conversões para hexadecimal deverão ser efetuadas para hexadecimal em caixa baixa. A eventual utilização de conversão de hexadecimal para caixa
alta, sem observância da presente recomendação poderá gerar erro na validação do Hash do QR Code

 

Gabriel Rodrigues Da Costa Neto

Postado

pessoal, acho q o problema pode ser aqui(so um chute), alterei o codigo do acbr, coloquei o CSC diretamente no codigo, e esta indo normal ate agora!

  // Passo 1
  sdhEmi_HEX := AsciiToHex(DateTimeTodh(DataHoraEmissao) +
    GetUTC(CodigoParaUF(CUF), DataHoraEmissao));
  sdigVal_HEX := AsciiToHex(DigestValue);

  if (CUF in [35, 41, 50]) then
  begin
    sdhEmi_HEX := LowerCase(sdhEmi_HEX);
    sdigVal_HEX := LowerCase(sdigVal_HEX);
  end;

  // Passo 3 e 4
  cIdCSC := IntToStrZero(StrToIntDef(Configuracoes.Geral.IdCSC,0),6);
  //cCSC := Configuracoes.Geral.CSC;
  cCSC := 'FBD8D05E-BA6B-544B-037A-C90B38204390';

  if EstaVazio(cCSC) then
    cCSC := Copy(idNFe, 7, 8) + '20' + Copy(idNFe, 3, 2) + Copy(cIdCSC, 3, 4);

  sCSC := cIdCSC + cCSC;
  sNF := StringReplace(FormatFloat('0.00', ValorTotalNF), ',', '.', [rfReplaceAll]);
  sICMS := StringReplace(FormatFloat('0.00', ValorTotalICMS), ',', '.', [rfReplaceAll]);

  sEntrada := 'chNFe=' + idNFe + '&nVersao=100&tpAmb=' +
    TpAmbToStr(TipoAmbiente) + IfThen(cDest = '', '', '&cDest=' +
    cDest) + '&dhEmi=' + sdhEmi_HEX + '&vNF=' + sNF + '&vICMS=' +
    sICMS + '&digVal=' + sdigVal_HEX + '&cIdToken=';

  // Passo 5 calcular o SHA-1 da string sEntrada
  cHashQRCode := AsciiToHex(SHA1(sEntrada + sCSC));

  // Passo 6
  if Pos('?', urlUF) > 0 then
    Result := urlUF + '&' + sEntrada + cIdCSC + '&cHashQRCode=' + cHashQRCode
  else
    Result := urlUF + '?' + sEntrada + cIdCSC + '&cHashQRCode=' + cHashQRCode;

Gabriel Rodrigues Da Costa Neto

Postado (editado)

adicionei este codigo abaixo do local em negrito anteriormente, e o resultado vem um . no final apos o CSC:

  GerarException(ACBrStr('ERRO: '+Configuracoes.Geral.CSC));

Editado por gabriellc

Gabriel Rodrigues Da Costa Neto

Postado

o problema esta aqui com certeza, é so substituir para o codigo original que retorna o erro 464, colocando o CSC diratamente no codigo vai normal

 

 // Passo 3 e 4
  cIdCSC := IntToStrZero(StrToIntDef(Configuracoes.Geral.IdCSC,0),6);
  //cCSC := Configuracoes.Geral.CSC;
  cCSC := 'FBD8D05E-BA6B-544B-037A-C90B38204390';

  • Curtir 1

Gabriel Rodrigues Da Costa Neto

  • Membros Pro
Postado (editado)
6 minutos atrás, gabriellc disse:

o problema esta aqui com certeza, é so substituir para o codigo original que retorna o erro 464, colocando o CSC diratamente no codigo vai normal

 

 // Passo 3 e 4
  cIdCSC := IntToStrZero(StrToIntDef(Configuracoes.Geral.IdCSC,0),6);
  //cCSC := Configuracoes.Geral.CSC;
  cCSC := 'FBD8D05E-BA6B-544B-037A-C90B38204390';

O problema é esse mesmo acabei de testar aqui também e esta ok. vc acertou em cheio. e agora o pessoal do acbr vai consertar e disponibilizar para o svn quando?

Por enquanto vou colocar um replace para tirar o ponto. depois que setar o csc.

Editado por Fernando Di Pace
Postado
1 minuto atrás, Fernando Di Pace disse:

O problema é esse mesmo acabei de testar aqui também e esta ok. vc acertou em cheio. e agora o pessoal do acbr vai consertar e disponibilizar para o svn quando?

bicho estou desde as 3 da tarde quebrando a cabeca com isso lol

monte de cliente ligando!!!! eu colocando a culpa na receita :D

 

  • Curtir 1

Gabriel Rodrigues Da Costa Neto

  • Membros Pro
Postado
2 minutos atrás, gabriellc disse:

bicho estou desde as 3 da tarde quebrando a cabeca com isso lol

monte de cliente ligando!!!! eu colocando a culpa na receita :D

 

Pois é, no fim a culpa é da receita mesmo. rsrsrsrs

  • Membros Pro
Postado
7 horas atrás, Fernando Di Pace disse:

Vamos fazer um apelo ai que o pessoal do acbr que administra os códigos para fazer a correção e jogar a versao no svn.

 

Gabriellc,

Se liga numa coisa! Além de ter o ponto ele tira a formatação do CSS.

Exeplo: 0F7381D8­322B­1883­A4C2­DDA0CA98854E está ficando assim:  0F7381D8322B1883A4C2DDA0CA98854E.

Obs: Como a Paraiba está validando o QrCode então o problem está ai também. Seria bom abrir um tópico novo para os moderadores e administradores dá uma olhada. Tipo ERRO NA GERAÇÂO DO QRCode CSC

  • Membros Pro
Postado
Agora, gabriellc disse:

eh ta tenso, jaja comeca as ligacoes dos clientes rsrsrs, ja to pensando em compila uma versao pra cada cliente com o CSC direto no codigo!

 

19 minutos atrás, Fernando Di Pace disse:

 

Gabriellc,

Se liga numa coisa! Além de ter o ponto ele tira a formatação do CSS.

Exeplo: 0F7381D8­322B­1883­A4C2­DDA0CA98854E está ficando assim:  0F7381D8322B1883A4C2DDA0CA98854E.

Obs: Como a Paraiba está validando o QrCode então o problem está ai também. Seria bom abrir um tópico novo para os moderadores e administradores dá uma olhada. Tipo ERRO NA GERAÇÂO DO QRCode CSC

Estamos falando besteira rsrsrs, quando se usa  a conversão  ACBrStr ele tira a formatação e joga o ponto no fim, se vc colocar um showMessage e implementar a uses vc vai ver que o CSC vem certo!

Postado (editado)

ja vi isso, mais a ideia continua a mesma, nao sei o que esta havendo, quando se coloca direto o CSC no codigo ele vai normal, talvez seja um problema de conversao de tipo nao sei!

fiz essa gamibiarra aqui pra funcionar hj, se nao os clientes me comem vivo:

 

  IniFile := ChangeFileExt( Application.ExeName, '.ini');
  Ini := TIniFile.Create( IniFile );
  cCSC := Ini.ReadString( 'Geral','Token'  ,'') ;

 

e o patrão tb!

Editado por gabriellc

Gabriel Rodrigues Da Costa Neto

  • Membros Pro
Postado
17 minutos atrás, Fernando Di Pace disse:

 

Estamos falando besteira rsrsrs, quando se usa  a conversão  ACBrStr ele tira a formatação e joga o ponto no fim, se vc colocar um showMessage e implementar a uses vc vai ver que o CSC vem certo!

Quanto ao ponto . no fim do CSC é o  GerarException que no fim da geração da exceção coloca um ponto. Cara tem algo estranho, eu fiz um teste onte colocado da forma que vc está colocando e deu certo pois o CSC foi regerado, mais acabei de fazer um que não foi regerado e o problema continua eu acho que o problema não seja esse Gabriellc.

 

Acho que o problema está na SEFAZ mesmo! Vou tentar Regerar desse cliente que está dando erro e qualquer coisa posto aqui!

Postado
1 minuto atrás, Fernando Di Pace disse:

Quanto ao ponto . no fim do CSC é o  GerarException que no fim da geração da exceção coloca um ponto. Cara tem algo estranho, eu fiz um teste onte colocado da forma que vc está colocando e deu certo pois o CSC foi regerado, mais acabei de fazer um que não foi regerado e o problema continua eu acho que o problema não seja esse Gabriellc.

 

Acho que o problema está na SEFAZ mesmo! Vou tentar Regerar desse cliente que está dando erro e qualquer coisa posto aqui!

mais pior que: tetando aqui com um regerado tb tava dando o erro 464 sempre, quando troquei esse pedaco do codigo parou ta indo normal! 

ainda nao testei com um que nao foi regerado, vou testar hj!

ta muito estranho isso

Gabriel Rodrigues Da Costa Neto

Postado (editado)
1 hora atrás, Fernando Di Pace disse:

Quanto ao ponto . no fim do CSC é o  GerarException que no fim da geração da exceção coloca um ponto. Cara tem algo estranho, eu fiz um teste onte colocado da forma que vc está colocando e deu certo pois o CSC foi regerado, mais acabei de fazer um que não foi regerado e o problema continua eu acho que o problema não seja esse Gabriellc.

 

Acho que o problema está na SEFAZ mesmo! Vou tentar Regerar desse cliente que está dando erro e qualquer coisa posto aqui!

era bom algum administrador que conheca bem o codigo, dar uma opniao ja olhei o codigo nao consigo enchergar onde estaja um possivel erro!

mais o fato é que alterando aquela linha que falei mais cima ta funcionando!

Editado por gabriellc

Gabriel Rodrigues Da Costa Neto

Postado
1 hora atrás, Fernando Di Pace disse:

Quanto ao ponto . no fim do CSC é o  GerarException que no fim da geração da exceção coloca um ponto. Cara tem algo estranho, eu fiz um teste onte colocado da forma que vc está colocando e deu certo pois o CSC foi regerado, mais acabei de fazer um que não foi regerado e o problema continua eu acho que o problema não seja esse Gabriellc.

 

Acho que o problema está na SEFAZ mesmo! Vou tentar Regerar desse cliente que está dando erro e qualquer coisa posto aqui!

fernando acabei de testar com um cliente que nao regerou o CSC, foi normal tb, unica coisa que fiz foi adicionar os - no CSC que estava sem

Gabriel Rodrigues Da Costa Neto

  • Moderadores
Postado
2 horas atrás, Fernando Di Pace disse:

 

Estamos falando besteira rsrsrs, quando se usa  a conversão  ACBrStr ele tira a formatação e joga o ponto no fim, se vc colocar um showMessage e implementar a uses vc vai ver que o CSC vem certo!

Parece estar havendo algum tipo de conversão, ao dar CTRL+C e CTRL+V nesse CSC e colar num editor de texto simples (notepad) e salvar, os '-' estão sendo gerados com caractere diferente, conforme imagem:

Ele gera o caracter $AD (ASCII 173), o correto seria gerar o caractere $2D (ASCII 45), conforme último caractere digitado por mim.

Resta saber se a conversão está no site da SEFAZ onde foi gerado o CSC ou aqui no fórum.

Tentem passar o CSC diretamente no código (cuidado com os CTRL+C - CTRL+V), sem mexer no código do ACBr, ex.:

ACBrNFe1.Configuracoes.Geral.CSC := '0F7381D8-322B-1883-A4C2-DDA0CA98854E'; 

 

csc.png

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

Projeto ACBr

 

 

Postado
10 minutos atrás, BigWings disse:

Parece estar havendo algum tipo de conversão, ao dar CTRL+C e CTRL+V nesse CSC e colar num editor de texto simples (notepad) e salvar, os '-' estão sendo gerados com caractere diferente, conforme imagem:

Ele gera o caracter $AD (ASCII 173), o correto seria gerar o caractere $2D (ASCII 45), conforme último caractere digitado por mim.

Resta saber se a conversão está no site da SEFAZ onde foi gerado o CSC ou aqui no fórum.

Tentem passar o CSC diretamente no código (cuidado com os CTRL+C - CTRL+V), sem mexer no código do ACBr, ex.:


ACBrNFe1.Configuracoes.Geral.CSC := '0F7381D8-322B-1883-A4C2-DDA0CA98854E'; 

 

csc.png

amigo faz sentido o que voce esta falando, mais nos meus testes, eu fiz esses testes, digitando minusculo maiusculo copiando e colando e mesmo assim continou com o erro 464, so resolvendo com a gambiarra que fiz, vou aguardar uma posicao oficial dos administradores por enquanto sou obrigado a fazer assim! :D

 

Gabriel Rodrigues Da Costa Neto

  • Moderadores
Postado
5 minutos atrás, gabriellc disse:

amigo faz sentido o que voce esta falando, mais nos meus testes, eu fiz esses testes, digitando minusculo maiusculo copiando e colando e mesmo assim continou com o erro 464, so resolvendo com a gambiarra que fiz, vou aguardar uma posicao oficial dos administradores por enquanto sou obrigado a fazer assim! :D

 

Você tentou passar o CSC direto no fonte sem alterar o código do ACBr?

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

Projeto ACBr

 

 

Postado

ASSIM: 

essa alteracao que fiz no acbr:    IniFile := ChangeFileExt( Application.ExeName, '.ini');
  Ini := TIniFile.Create( IniFile );
  cCSC := Ini.ReadString( 'Geral','Token'  ,'') ;

é o mesmo codigo que uso pra carregar o componente.

Gabriel Rodrigues Da Costa Neto

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

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • 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.