Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

  • Membros Pro
Postado (editado)

Eu uso essa funcao para criar o qrcode

 

            tokem := '000001';

 

            if Form_NFe.ACBrNFe1.NotasFiscais.Items[0].NFe.Ide.tpAmb = taProducao then
              URL := 'http://www.sefaz.mt.gov.br/nfce/consultanfce?'
            else
              URL := 'http://homologacao.sefaz.mt.gov.br/nfce/consultanfce?';

            if Form_NFe.ACBrNFe1.NotasFiscais.Items[0].NFe.Ide.tpAmb = taProducao then
              tpAmb := '1'
            else
              tpAmb := '2';

            cDest := Iif(Length(Form_NFe.ACBrNFe1.NotasFiscais.Items[0].NFe.Dest.CNPJCPF) > 0, Form_NFe.ACBrNFe1.NotasFiscais.Items[0].NFe.Dest.CNPJCPF, '');

            Memo1.Lines.Clear;

 

            Memo1.Text :=  URL +
                           'chNFe='     + Form_NFe.ACBrNFe1.NotasFiscais.Items[0].NFe.procNFe.chNFe +
                           '&nVersao='  + '100' +
                           '&tpAmb='    + tpAmb +
                           Iif((Length(cDest) > 0),('&cDest=' + cDest), '') +
                           '&dhEmi='    + StringToHex(DateTimeTodhUTC(Form_NFe.ACBrNFe1.NotasFiscais.Items[0].NFe.Ide.dEmi,GetUTC(Form_NFe.ACBrNFe1.NotasFiscais.Items[0].NFe.emit.enderEmit.UF, Form_NFe.ACBrNFe1.NotasFiscais.Items[0].NFe.Ide.dEmi))) +
                           '&vNF='      + FormatFloat(',0.00;-,0.00', Form_NFe.ACBrNFe1.NotasFiscais.Items[0].NFe.Total.ICMSTot.vNF) +
                           '&vICMS='    + FormatFloat(',0.00;-,0.00', Form_NFe.ACBrNFe1.NotasFiscais.Items[0].NFe.Total.ICMSTot.vICMS) +
                           '&digVal='   + StringToHex(Form_NFe.ACBrNFe1.NotasFiscais.Items[0].NFe.procNFe.digVal) +
                           '&cIdToken=' + tokem;


            Hash_SHA1 := Form_NFe.ACBrEAD1.CalcularHash(UTF8Encode(Memo1.Text), dgstSHA1);  
            Memo1.Text := Memo1.Text + '&cHashQRCode=' + Hash_SHA1;
 

 

 

O Resultado disso da isto

 

http://homologacao.sefaz.mt.gov.br/nfce/consultanfce?chNFe=51140903953552000102650020000003601000003606&
nVersao=100&
tpAmb=2&
dhEmi=323031342D30392D30395431313A32313A31382D30343A3030&
vNF=58,35&
vICMS=0,00&
digVal=6947717550706D66654572782F7A45305469442F6D7645395532453D&
cIdToken=000001&
cHashQRCode=31E6075144254C592F4C520F6D177A609C31ED3F

 

link completo

http://homologacao.sefaz.mt.gov.br/nfce/consultanfce?chNFe=51140903953552000102650020000003601000003606&nVersao=100&tpAmb=2&dhEmi=323031342D30392D30395431313A32313A31382D30343A3030&vNF=58,35&vICMS=0,00&digVal=6947717550706D66654572782F7A45305469442F6D7645395532453D&cIdToken=000001&cHashQRCode=31E6075144254C592F4C520F6D177A609C31ED3F

 

se copiar este link e joga na web vai mostrar o cupom, mais mostrar este erro

 

Erro 100 - QR Code Inválido

 

 

 

Pegando um qrcode de uma loja que aparentemente nao tem diferença

 

http://www.sefaz.mt.gov.br/nfce/consultanfce?chNFe=51141101030685000696650020000005351054760777&
nVersao=100&
tpAmb=1&
dhEmi=323031342d31312d30335432303a33303a30392d30333a3030&
vNF=129.00&
vICMS=0.00&
digVal=4d684d6b6d535277387779326351524e584c68307a44506b6e32303d&
cIdToken=000001&
cHashQRCode=A3663ADC59B24F91207E3F51C6C3D6B68E809074

 

link completo

http://www.sefaz.mt.gov.br/nfce/consultanfce?chNFe=51141101030685000696650020000005351054760777&nVersao=100&tpAmb=1&dhEmi=323031342d31312d30335432303a33303a30392d30333a3030&vNF=129.00&vICMS=0.00&digVal=4d684d6b6d535277387779326351524e584c68307a44506b6e32303d&cIdToken=000001&cHashQRCode=A3663ADC59B24F91207E3F51C6C3D6B68E809074

 

 

da tudo certo sem erro nenhum

 

o que deve ser?

 

agradeço desde ja.

Editado por hetoandrade
  • Membros Pro
Postado (editado)

Estou em MT, mesmo assim ficou

Qrcode Erro 100 - Qr Code Inválido

Sabendo que fis manual, teria como da uma olhada pra ver se fis errado , ta homologacao nao testei ainda em producao.

 

 

            ///////////////////////  NOVO 2014  ///////////////////////////////////
              //51
              AUF := StrToInt( Copy( Form_NFe.ACBrNFe1.NotasFiscais.Items[0].NFe.procNFe.chNFe,0,2) );
              //PRODUCAO
              AAmbiente :=  Form_NFe.ACBrNFe1.NotasFiscais.Items[0].NFe.Ide.tpAmb;
              //URL CONSULTA
              if Form_NFe.ACBrNFe1.NotasFiscais.Items[0].NFe.Ide.tpAmb = taProducao then
                urlUF := 'http://www.sefaz.mt.gov.br/nfce/consultanfce'
              else
                urlUF := 'http://homologacao.sefaz.mt.gov.br/nfce/consultanfce';
              //CHEVE DE ACESSO
              AchNFe :=  Form_NFe.ACBrNFe1.NotasFiscais.Items[0].NFe.procNFe.chNFe;
              //DESTINO
              AcDest := '';//Form_NFe.ACBrNFe1.NotasFiscais.Items[0].NFe.Dest;
              //DATAEMISSAO
              AdhEmi :=  Form_NFe.ACBrNFe1.NotasFiscais.Items[0].NFe.Ide.dEmi;
              AvNF :=    Form_NFe.ACBrNFe1.NotasFiscais.Items[0].NFe.Total.ICMSTot.vNF;
              AvICMS :=  Form_NFe.ACBrNFe1.NotasFiscais.Items[0].NFe.Total.ICMSTot.vICMS;
              AdigVal:=  Form_NFe.ACBrNFe1.NotasFiscais.Items[0].NFe.procNFe.digVal;
              AidToken:= tokem;         //000001
              AToken:=   id_tokem;     //372571E09FF51F8AF9E6CDB328511C01
            ///////////////////////  NOVO 2014  ///////////////////////////////////
             Memo1.Lines.Clear;

 

 

 

              AchNFe := OnlyNumber(AchNFe);

              // Passo 1
              sdhEmi_HEX  := AsciiToHex(DateTimeTodh(AdhEmi) + GetUTC(CodigoParaUF(AUF), AdhEmi));

              // Passo 2
              sdigVal_HEX := AsciiToHex(AdigVal);

              // Passo 3 e 4
              cIdToken  := AidToken;
              if DFeUtil.EstaVazio(AToken) then
                 cTokenHom := Copy(AchNFe, 7, 8) + '20' + Copy(AchNFe, 3, 2) + Copy(cIdToken, 3, 4)
              else
                 cTokenHom := AToken;

              cTokenPro := AToken;

              // Alterado por Italo em 05/06/2014
              // Essa alteração foi feita, pois algumas UF estão gerando o Token também para o Ambiente de Homologação
              // Neste caso o mesmo deve ser informado na propriedade Token caso contario deve-se atribuir a
              // essa propriedade uma String vazia
              if (AAmbiente = taHomologacao) then
               begin
                 if (AToken = '') then
                    cTokenHom := Copy(AchNFe, 7, 8) + '20' + Copy(AchNFe, 3, 2) + Copy(cIdToken, 3, 4)
                 else
                    cTokenHom := AToken;
               end
              else
                 cTokenPro := AToken;

              sToken    := DFeUtil.SeSenao(AAmbiente = taProducao, cIdToken + cTokenPro, cIdToken + cTokenHom);

              sNF       := StringReplace(FormatFloat('0.00', AvNF), ',', '.', [rfReplaceAll]);
              sICMS     := StringReplace(FormatFloat('0.00', AvICMS), ',', '.', [rfReplaceAll]);

              sEntrada  := 'chNFe=' + AchNFe + '&nVersao=100&tpAmb=' + TpAmbToStr(AAmbiente) +
                           DFeUtil.SeSenao(AcDest = '', '', '&cDest='+AcDest) +
                           '&dhEmi=' + sdhEmi_HEX + '&vNF=' + sNF + '&vICMS=' + sICMS +
                           '&digVal=' + sdigVal_HEX + '&cIdToken=';

              // Passo 5 calcular o SHA-1 da string sEntrada
              if fsHashQRCode = nil then
                fsHashQRCode := TACBrEAD.Create(nil);
              try
                cHashQRCode := fsHashQRCode.CalcularHash(sEntrada + sToken, dgstSHA1);
              except
                raise Exception.Create('Erro ao calcular Hash do QR-Code');
              end;

              // Passo 6
              Memo1.Text := urlUF + '?' + sEntrada + cIdToken+ '&cHashQRCode=' + cHashQRCode;


            ///////////////////////  NOVO 2014  ///////////////////////////////////
 

Editado por hetoandrade
Postado

Boa tarde,

 

Utilizo a função NotaUtil.GetURLQRCode a vários meses em Mato Grosso e não ocorre erro.

 

Veja se está utilizando o Código de Segurança do Contribuinte (CSC) e a sequencia do CSC de homologação ou produção, os códigos são diferentes e cadastrados no site da SEFAZ.

 

* Homologação: http://homologacao.sefaz.mt.gov.br/nfce/codigosegurancactbn/ViewCadastroPublicoCSC.jsp

* Produção: http://www.sefaz.mt.gov.br/nfce/codigosegurancactbn/ViewCadastroPublicoCSC.jsp

  • 1 mês depois ...
Postado
 
Bom tarde, estou fazendo testes no ambiente de homologação e a principio esta tudo Ok com a transmissão e autorização da NFC-e no PR, para a consulta tive que alterar no ACBrNFeUtil.pas a URL de consulta que estava com o caracter '?' no final do endereço causando erro na consulta, porem quando vou consultar a nota pelo QR Code, a nota aparece com todos os dados porem com a mensagem 'Documento Fiscal com erro no código. Verifique se os dados de seu documento são iguais aos aqui apresentados'  100 - QR Code Invalido. Estou informando o CSC conforme fornecido pelo Portal RECEITA/PR.
 
consegui resolver, no manual que esta no site 'http://www.sped.fazenda.pr.gov.br/modules/conteudo/conteudo.php?conteudo=104%27'pede pra informar a 'dhEmi' e o 'digVal' com o Valor convertido pera hexadecimal (caixa baixa) porem a unit ACBrNFeUtil está gerando as informações com caixa alta. por isso estava apresentando a mensagem  100 - QR Code Invalido. alterei para informar com caixa baixa esses campos e agora mostra na consulta da NFC-e QR Code Válido.
 
Seria essa a melhor solução, alguem mais teve esse problema ?
  • 2 semanas depois ...
Postado (editado)

Boa tarde, desculpe a demora, somente agora que vi sua mensagem.

 

  // Passo 1   Linha 2086
  if AUF = 41 then
   sdhEmi_HEX  := LowerCase(AsciiToHex(DateTimeTodh(AdhEmi) + GetUTC(CodigoParaUF(AUF), AdhEmi)))
  else
   sdhEmi_HEX  := AsciiToHex(DateTimeTodh(AdhEmi) + GetUTC(CodigoParaUF(AUF), AdhEmi));
 
  // Passo 2
  if AUF = 41 then
   sdigVal_HEX := LowerCase(AsciiToHex(AdigVal))
  else
   sdigVal_HEX := AsciiToHex(AdigVal);
Editado por scotchtriplo
  • Curtir 1
Postado

Boa tarde, estou fazendo os testes de homologação no PR, depois que fiz essa alteração o QR-Code esta sendo gerando sem nenhum problema, antes da alteração estava aparecendo a mensagem "100 - QR Code Invalido". Coloquei o teste  'if AUF = 41 then ' porque não encontrei nenhuma mensagem relatando o problema em outros estados.

Postado

Só um detalhe referente a URL de consulta que esta com o caracter '?' no final do endereço, como ja esta incluindo o '?' no passo 6 tem que tirar da URL no PR.

Eu tinha comentado isso antes e esqueci de confirmar quando me perguntou,  desculpe.

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