Jump to content

dev botao

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

Recommended Posts

  • Membros Pro
Posted (edited)

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.

Edited by hetoandrade
  • Membros Pro
Posted (edited)

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

Edited by hetoandrade
Posted

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 month later...
Posted
 
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 weeks later...
Posted (edited)

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);
Edited by scotchtriplo
  • Like 1
Posted

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.

Posted

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á 3826 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.