Jump to content

click.png

click.png

click.png

click.png click.png click.png

click.png click.png click.png

click.png

click.png

click.png

click.png

click.png

click.png

Ajuda Com Geracao Da Url Para O Qr Code Da Nfc-E


Go to solution Solved by Rubens-JP,
  • Este tópico foi criado há 1669 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Pessoal estou tendo dificuldades para gerar a Url para o qr code em ambiente de produção.

Estou usando essa rotina.

 

procedure TFrmVendasLoc.BtGeraHashClick(Sender: TObject);
var
  Hash_SHA1, linha, linha2: string;
begin
  Memo1.Lines.Clear;
  // MONTA
  linha := 'chNFe=' + ''+
    '&nVersao=' + '' +
    '&tpAmb=' + ''+
    '&cDest=' + '' +
    '&dhEmi=' + LowerCase(stringtohex(''))+
    '&vNF=' + ''+
    '&vICMS=' + ''  +
    '&digVal=' + LowerCase(stringtohex('')) +
    '&cIdToken=' + '';
  linha2 := 'chNFe=' + ''+
    '&nVersao=' + ''+
    '&tpAmb=' + '' +
    '&cDest=' + '' +
    '&dhEmi=' + LowerCase(stringtohex(''))+
    '&vNF=' + '' +
    '&vICMS=' + ''+
    '&digVal=' + LowerCase(stringtohex('')) +
    '&cIdToken=' + '';
  Hash_SHA1 := ACBrEAD1.CalcularHash(linha, dgstSHA1);
  Memo2.Text := Hash_SHA1;
  Memo1.Text := '<a data-ipb="nomediaparse" data-cke-saved-href="?" href="?" %20+"="">http://www.sefaz.mt....onsultanfce?' +
    linha2 +
    '&cHashQRCode=' + Memo2.Text;
end;

Alguem tem alguma rotina que esteja funcionando ou consegue identificar meu erro?

Obrigado a todos.

Edited by bolinha182
Link to comment
Share on other sites

Meu código funciona assim:

function StringToHex(S: String): String;
var i: Integer;
begin
  Result:= '';
  for i := 1 to length(S) do
    Result:= Result+IntToHex(ord(S[i]),2);
end;
function Iif(Condicao: Boolean; Verdadeiro, Falso: Variant): Variant;
begin
 if Condicao then
   Result := Verdadeiro
 else Result := Falso;
end;
if 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 ACBrNFe1.NotasFiscais.Items[0].NFe.Ide.tpAmb = taProducao then
  tpAmb := '1'
else
  tpAmb := '2';
cDest := Iif(Length(ACBrNFe1.NotasFiscais.Items[0].NFe.Dest.CNPJCPF) > 0, ACBrNFe1.NotasFiscais.Items[0].NFe.Dest.CNPJCPF, '');

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

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

Link to comment
Share on other sites

 

Meu código funciona assim:

function StringToHex(S: String): String;
var i: Integer;
begin
  Result:= '';
  for i := 1 to length(S) do
    Result:= Result+IntToHex(ord(S[i]),2);
end;
function Iif(Condicao: Boolean; Verdadeiro, Falso: Variant): Variant;
begin
 if Condicao then
   Result := Verdadeiro
 else Result := Falso;
end;
if 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 ACBrNFe1.NotasFiscais.Items[0].NFe.Ide.tpAmb = taProducao then
  tpAmb := '1'
else
  tpAmb := '2';
cDest := Iif(Length(ACBrNFe1.NotasFiscais.Items[0].NFe.Dest.CNPJCPF) > 0, ACBrNFe1.NotasFiscais.Items[0].NFe.Dest.CNPJCPF, '');

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

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

Leonardo, Primeiramente obrigado pela resposta. Eu implementei o código e continuo sem sucesso. No código que vc me mandou o campo está  '&cIdToken=' + '000001' eu devo modificar para '&cIdToken=' + '000001' + o token da empresa não é mesmo? A empresa tem dois tokens que me foram enviados como sendo um da matriz e um da filial, as notas foram geradas na filial.

Vou postar o xml da nota e a url que esta sendo gerada para darem uma olhada. Sera que tem algum problema em postar os tokens aki?

a url que estou gerando é essa aki quando nao substituo o token.

http://www.sefaz.mt.gov.br/nfce/consultanfce?chNFe=51131003460900000290650010000000031000000031&nVersao=100&tpAmb=1&cDest=02801244147&dhEmi=323031332D31302D32345431363A32313A30332D30333A3030&vNF=1,00&vICMS=0,00&digVal=78764D34764E2B48586A735657516F653474415A547855547764383D&cIdToken=000001&cHashQRCode=7AF4285DA2D18133BEF9F9370AD4A185B2527AFB

Xml51131003460900000290650010000000031000000031-ProcNFe.xml

Edited by bolinha182
Link to comment
Share on other sites

Verifiquei um erro na sua URL, vou postar aqui talvez ajude, você colocou virgula no separador decimal do valor da nf e valor do ICMS, quando no manual diz pra se colocar pontos, como separador. talvez seja isso,

 

Fiz o teste e abriu conforme imagem abaixo, dando erro apenas de QRCode.

 

Solivan.

 

Link: http://www.sefaz.mt.gov.br/nfce/consultanfce?chNFe=51131003460900000290650010000000031000000031&nVersao=100&tpAmb=2&cDest=02801244147&dhEmi=323031332D31302D32345431363A32313A30332D30333A3030&vNF=1.00&vICMS=0.00&digVal=78764D34764E2B48586A735657516F653474415A547855547764383D&cIdToken=000001&cHashQRCode=7AF4285DA2D18133BEF9F9370AD4A185B2527AFB

post-2563-0-94046500-1382915575_thumb.pn

Edited by Solivan

Sistema de Automação Comercial para diversos segmentos
NF-e, NFC-e, SPED Fiscal - www.arenasoft.com.br

Link to comment
Share on other sites

  • 1 month later...
  • 7 months later...

Alguém conseguiu abrir o link do QR-Code sem apresentar o erro "Erro 100 - QR Code Inválido"?

Revisei o manual, pesquisei em outros foruns chamei uma outra pessoa para olhar o código baseado no manual para geração do link e mesmo assim, ainda estou com problema  "100 - QR Code Inválido". Será que alguém tem uma dica, por favor?

 

Obs.:

Estou utlizando o ACBrEAD1.CalcularHash para o cálculo do Hash-Code.

Em um email enviado para sefaz-MT me falaram que o probema estava no cálculo do Hash e pediram para olhar o manual mais uma vez. Assim foi feito e nada resolvido.

 

 

chNFe=              51140819645307000178650010000001851000001500

&nVersao=          100

&tpAmb=            2

&cDest=             99999999000191

&dhEmi=             2014-08-04T16:47:03-03:00

      Hexa:           323031342D30382D30345431363A34373A30332D30333A3030

 

&vNF=               100.00

&vICMS=            17.00

&digVal=             zrUFBzCpUJCUzPtkb6YjVGKjvBY=

    Hexa:             7A725546427A4370554A43557A50746B6236596A56474B6A7642593D

 

&cIdToken=        000001

CSC:                  A639A0FD-8887-E68C66CF-11276B5A3FA6

 

 

 

Link Gerado:

http://homologacao.sefaz.mt.gov.br/nfce/consultanfce?chNFe=51140819645307000178650010000001851000001500&nVersao=100&tpAmb=2&cDest=99999999000191&dhEmi=323031342D30382D30345431363A34373A30332D30333A3030&vNF=100.00&vICMS=17.00&digVal=7A725546427A4370554A43557A50746B6236596A56474B6A7642593D&cIdToken=000001&cHashQRCode=DB03F37AA4D41E49066C2FE68710B6AC67B79B53

Link to comment
Share on other sites

O ACBr já possui um método para fazer isso "NotaUtil.GetURLQRCode", bastaria utilizar ele, declare ACBrNFeUtil no uses e ele estará disponível.

 

Fiz o que você propôs Regys, mas mesmo assim ainda apresenta a danada da mensagem "Erro 100 - QR Code Inválido".

 

O link gerado a baixo foi pelo NotaUtil.GetURLQRCode

 

Link to comment
Share on other sites

  • Solution

Consegui resolver meu problema, depois de vários e-mails enviados para Sefaz-MT, objetive uma resposta satisfatória.

Eu estava enviando para o cálculo do hash o CSC seguindo uma formatação existente no exemplo do manual utilizando traço para separar os grupos dos caracteres: A639A0FD-8887-E68C66CF-11276B5A3FA6

A resposta que a SEFAZ - MT mandou, foi que não pode ter formatação, tem que ser exatamente da forma que a  página  web de sua  Secretaria da  Fazenda disponibilizou. O que inclui maiúsculo e minúsculo.

Edited by Rubens-JP
  • Like 1
Link to comment
Share on other sites

  • 1 year later...

Minha duvi é quanto ao numero de caracteres, pois tenho interesse em enviar via SMS a URL para consulta... Porem o numero maximo de caracteres permitido nos serviços que conheço sao de até 160 caracteres e pelo que vi a url esta com cerca de 320 caracteres

 

 

caso alguem possa ajudar ... agradeço.

Edited by diego ribas
Link to comment
Share on other sites

  • 3 weeks later...
  • 3 weeks later...

Consegui resolver meu problema, depois de vários e-mails enviados para Sefaz-MT, objetive uma resposta satisfatória.

Eu estava enviando para o cálculo do hash o CSC seguindo uma formatação existente no exemplo do manual utilizando traço para separar os grupos dos caracteres: A639A0FD-8887-E68C66CF-11276B5A3FA6

A resposta que a SEFAZ - MT mandou, foi que não pode ter formatação, tem que ser exatamente da forma que a  página  web de sua  Secretaria da  Fazenda disponibilizou. O que inclui maiúsculo e minúsculo.

O ACBr já possui um método para fazer isso "NotaUtil.GetURLQRCode", bastaria utilizar ele, declare ACBrNFeUtil no uses e ele estará disponível.

 

Fiz o que você propôs Regys, mas mesmo assim ainda apresenta a danada da mensagem "Erro 100 - QR Code Inválido".

 

O link gerado a baixo foi pelo NotaUtil.GetURLQRCode

 

Por favor me desculpe a pergunta mais em qual metodo do ACBRNFE eu coloco essa URL gerarda  por esse outro metodo NotaUtil.GetURLQRCode , desde ja agradeço 

Link to comment
Share on other sites

  • Moderadores

tem algum que você sugere, que tenha uma boa integração com software externo ?

 

Obrigado

Quanto ao encurtador o Google possui um e se não me engano tem API para usar e integrar.

Quanto ao envio dos SMS não tenho nenhum para indicar, você teria que analisar os vários serviços de envio de SMS disponíveis e verificar qual o melhor para sua necessidade.

Consegui resolver meu problema, depois de vários e-mails enviados para Sefaz-MT, objetive uma resposta satisfatória.

Eu estava enviando para o cálculo do hash o CSC seguindo uma formatação existente no exemplo do manual utilizando traço para separar os grupos dos caracteres: A639A0FD-8887-E68C66CF-11276B5A3FA6

A resposta que a SEFAZ - MT mandou, foi que não pode ter formatação, tem que ser exatamente da forma que a  página  web de sua  Secretaria da  Fazenda disponibilizou. O que inclui maiúsculo e minúsculo.

 

O ACBr já possui um método para fazer isso "NotaUtil.GetURLQRCode", bastaria utilizar ele, declare ACBrNFeUtil no uses e ele estará disponível.

 

Fiz o que você propôs Regys, mas mesmo assim ainda apresenta a danada da mensagem "Erro 100 - QR Code Inválido".

 

O link gerado a baixo foi pelo NotaUtil.GetURLQRCode

 

Por favor me desculpe a pergunta mais em qual metodo do ACBRNFE eu coloco essa URL gerarda  por esse outro metodo NotaUtil.GetURLQRCode , desde ja agradeço 

Veja que o que postei é de 2014, nada tem a ver com o problema da falta de QRCode dois dias de hoje.

Hoje para atender a nova nota técnica o ACBr gera o QRCode e já preenche a tag automaticamente, para incluir a tag ou não no XML coloque True ou False na propriedade ACBrNFe1.Configuracoes.Geral.IncluirQRCOdeXMLNFCe.

Equipe ACBr

Régys Borges da Silveira

http://www.regys.com.br

certificacao delphicertificacao delphi
Link to comment
Share on other sites

tem algum que você sugere, que tenha uma boa integração com software externo ?

 

Obrigado

Quanto ao encurtador o Google possui um e se não me engano tem API para usar e integrar.

Quanto ao envio dos SMS não tenho nenhum para indicar, você teria que analisar os vários serviços de envio de SMS disponíveis e verificar qual o melhor para sua necessidade.

Consegui resolver meu problema, depois de vários e-mails enviados para Sefaz-MT, objetive uma resposta satisfatória.

Eu estava enviando para o cálculo do hash o CSC seguindo uma formatação existente no exemplo do manual utilizando traço para separar os grupos dos caracteres: A639A0FD-8887-E68C66CF-11276B5A3FA6

A resposta que a SEFAZ - MT mandou, foi que não pode ter formatação, tem que ser exatamente da forma que a  página  web de sua  Secretaria da  Fazenda disponibilizou. O que inclui maiúsculo e minúsculo.

 

O ACBr já possui um método para fazer isso "NotaUtil.GetURLQRCode", bastaria utilizar ele, declare ACBrNFeUtil no uses e ele estará disponível.

 

Fiz o que você propôs Regys, mas mesmo assim ainda apresenta a danada da mensagem "Erro 100 - QR Code Inválido".

 

O link gerado a baixo foi pelo NotaUtil.GetURLQRCode

 

Por favor me desculpe a pergunta mais em qual metodo do ACBRNFE eu coloco essa URL gerarda  por esse outro metodo NotaUtil.GetURLQRCode , desde ja agradeço 

Veja que o que postei é de 2014, nada tem a ver com o problema da falta de QRCode dois dias de hoje.

Hoje para atender a nova nota técnica o ACBr gera o QRCode e já preenche a tag automaticamente, para incluir a tag ou não no XML coloque True ou False na propriedade ACBrNFe1.Configuracoes.Geral.IncluirQRCOdeXMLNFCe.

Infelizmente a versão do acbr que uso não tem essa propriedade , acha que devo atualizar a partir do trunc2

Link to comment
Share on other sites

  • Consultores

O quanto antes pois já está congelado o trunk e não recebe mais atualizações

Consultor SAC ACBr Juliomar Marchetti
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

skype: juliomar
telegram: juliomar
http://www.juliomarmarchetti.com.br
Embarcadero MVP
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil
Link to comment
Share on other sites

  • 3 weeks later...

Boa tarde Juliomar, obrigado pela resposta! Fiquei com uma dúvida após a instalação do trunc2 minha aplicação começou a pedir as seguintes dlls nos servidores dos meus clientes: 

iconv.dll
inpout32.dll
libxml2.dll
libxmlsec.dll
libxmlsec-openssl.dll
libxslt.dll
msvcr71.dll
zlib1.dll

Isso é normal ou foi algum erro meu durante a instalação ?

Link to comment
Share on other sites

8 minutos atrás, fabricarneiro disse:

Boa tarde Juliomar, obrigado pela resposta! Fiquei com uma dúvida após a instalação do trunc2 minha aplicação começou a pedir as seguintes dlls nos servidores dos meus clientes: 

iconv.dll
inpout32.dll
libxml2.dll
libxmlsec.dll
libxmlsec-openssl.dll
libxslt.dll
msvcr71.dll
zlib1.dll

Isso é normal ou foi algum erro meu durante a instalação ?

Absolutamente normal. No meu instalador / atualizador já incluo estes arquivos, uma vez que estes são necessários para funcionar a suite ACBr.

Att,

  • Like 1

_____________

Prates, Agnaldo

Link to comment
Share on other sites

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