Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

  • Membros Pro
Postado (editado)

Olá,

 

Estou com dificuldades de geração do link para qrcode. Anexei o xml da nota. Se alguém puder dar uma olhada no que estou fazendo errado. acredito que seja no hash, mas já conferi e reconferi, inclusive com exemplos de colegas que postaram aqui no fórum, mas não consegui descobrir o erro.

 

Agradeço

 

String de para cálculo do Hash:
chNFe=51140107469270000195650010000000101066998074&nVersao=100&tpAmb=2&dhEmi=323031342D30312D30365431373A33383A31392D30333A3030&vNF=14.80&vICMS=0.00&digVal=564B303753356552556A6C436266376C4657756A644C46563143343D&cIdToken=0000010746927020140001
 
Hash gerado
3DEA898B051211B881CA3906762F35143D22FE7F
 
Link para o QrCode - Este link apresenta a nota, mas também mostra um erro de qrCode.
Editado por valdirdill

Valdir Dill

Rio de Janeiro - RJ

 

 

  • Membros Pro
Postado

 

Olá,

 

Estou com dificuldades de geração do link para qrcode. Anexei o xml da nota. Se alguém puder dar uma olhada no que estou fazendo errado. acredito que seja no hash, mas já conferi e reconferi, inclusive com exemplos de colegas que postaram aqui no fórum, mas não consegui descobrir o erro.

 

Agradeço

 

String de para cálculo do Hash:
chNFe=51140107469270000195650010000000101066998074&nVersao=100&tpAmb=2&dhEmi=323031342D30312D30365431373A33383A31392D30333A3030&vNF=14.80&vICMS=0.00&digVal=564B303753356552556A6C436266376C4657756A644C46563143343D&cIdToken=0000010746927020140001
 
Hash gerado
3DEA898B051211B881CA3906762F35143D22FE7F
 
Link para o QrCode - Este link apresenta a nota, mas também mostra um erro de qrCode.

 

Valdir Dill

Rio de Janeiro - RJ

 

 

  • Membros Pro
Postado

 

 

Olá,

 

Estou com dificuldades de geração do link para qrcode. Anexei o xml da nota. Se alguém puder dar uma olhada no que estou fazendo errado. acredito que seja no hash, mas já conferi e reconferi, inclusive com exemplos de colegas que postaram aqui no fórum, mas não consegui descobrir o erro.

 

Agradeço

 

String de para cálculo do Hash:
chNFe=51140107469270000195650010000000101066998074&nVersao=100&tpAmb=2&dhEmi=323031342D30312D30365431373A33383A31392D30333A3030&vNF=14.80&vICMS=0.00&digVal=564B303753356552556A6C436266376C4657756A644C46563143343D&cIdToken=0000010746927020140001
 
Hash gerado
3DEA898B051211B881CA3906762F35143D22FE7F
 
Link para o QrCode - Este link apresenta a nota, mas também mostra um erro de qrCode.

 

 

Resolvido! Depois de muito tentar, descobri que na formação do token (cnpj+ano+'0001'), esse "ano" não é o ano atual, mas devemos considerar o literal '2013' que está no manual. Eu estava colocando o ano da emissão da nota, ou seja '2014'. Foi só mudar para '2013' que abre a nota certinho no browser e sem nenhum erro.

Obrigado.

Valdir Dill

Rio de Janeiro - RJ

 

 

Postado

pessoal, li as 18 paginas aqui deste, portanto eu pergunto ? para meus clientes de SP, to fu..... né, eu continuo no ECF ou vou para o SAT, uma vez que o sat o meu cliente tem que comprar uma impressora fiscal de acordo com o convenio 09/09 ? confere ? e se sim, sp nao tem jeito mesmo, alguem sabe noticias novas de que em 2014 vai começar a usar ou se o projeto sat está forte e nao vai aderir a nfce ?

  • Moderadores
Postado

SAT e ECF 09/09 são coisas diferentes, hardwares diferentes, convênios diferentes, funcionamento diferente, tudo diferente,

 

O ECF 09/09 ainda é uma impressora fiscal mas com um algo a mais, ela possui um Módulo Fiscal Blindado, que possui placa protegida contra manipulação e adulteração, e um sistema de blindagem que se violado impede o funcionamento do ECF, justamente por isso esse equipamento não necessita de lacre, facilitando a intervenção técnica, ele também possui possibilidade de impressão da segunda via do cupom, conexão GPRS ou rede para transmissão de dados a receita em tempo real, porta USB para gravação de dados em pen-drive e foi abolida a impressão do bitmap na redução Z. Somente 1 estado sinalizou utilizar ele que é Santa Cataria, mesmo assim ainda não é obrigatório, foi protelado veja aqui: Prorrogada a exigência do novo ECF (Convênio 09/09).

 

Já o SAT é um tipo de hardware totalmente novo com funções totalmente novas. O equipamento SAT é um módulo composto de hardware e software embarcado, que deverá gerar e autenticar, por meio de Certificado Digital próprio, o Cupom Fiscal Eletrônico – SAT (CF-e-SAT) e transmiti-lo periódica e automaticamente à Secretaria da Fazenda (SEFAZ), via Internet. O SAT não possui impressora a ele integrado, basicamente a automação gera o arquivo, muito similar ao arquivo NF-e, envia ao equipamento SAT que faz todo o resto e devolve se foi liberado ou não. SP deve, se nada mudar, começar a adotar o SAT agora a partir de 01/04/2014 seguindo está tabela: OBRIGATORIEDADE DE USO DO SAT

 

A NFC-e é uma nota eletrônica normal mas voltada para consumidor, já está sendo utilizada em alguns estados (AM, MT) e funciona como uma nota eletrônica normal, nesse tópico isso é bem discutido, portanto, não vou entrar em detalhes.

 

Se SP vai mesmo adotar ou não o SAT, já foi dito que adotará, mas há o problema de não haver hardware no mercado, não sei de nenhuma empresa que esteja produzindo hardware para o SAT, mas é claro isso pode mudar, ou eles estão aguardando algo.

 

Para o SAT o ACBr possui o ACBrSAT que já está sendo utilizado por diversos usuários em SP em testes utilizando o emulador da própria SEFAZ/SP, já para o ECF 09/09 utilize o componente ACBrECF, configurando o modelo para "ecfEscECF".

Equipe ACBr

Régys Borges da Silveira

http://www.regys.com.br

certificacao delphicertificacao delphi
Postado

 

Olá pessoal

 

Estou fazendo testes usando o Zint BarCode que é OPENSOURCE, instalei ele como componente no delphi7 e funciona, basta setar o tipo de codigo de barras e salvar como bmp:

 

   

    zint.Barcode.Data:=strQrCode;
    bc:=TBitmap.Create;
    zint.Barcode.GetBarcode(bc);
    bc.SaveToFile(ExtractFilePath(Application.ExeName)+'qrcode.bmp');
    freeandnil(bc);
    ACBrNFeDANFEFR1.ImgQrCode:=ExtractFilePath(Application.ExeName)+'qrcode.bmp';
 
Evandro

 

Bom dia a todos, evandromira ou alguém que tenha conseguido instalar o Zint BarCode.

Como foi possivel baixar e instalar? Pois entro na pasta Projects, D10 conforme orientado e clico no arquivo ZintBarCode.dpk só que ele abre o arquivo no próprio navegador e quando tento salvar o arquivo ele é salvo como arquivo txt.

Poderia me informar quais passos a serem feitos para conseguir instalar no delphi7.

  • Membros Pro
Postado

Resolvido! Depois de muito tentar, descobri que na formação do token (cnpj+ano+'0001'), esse "ano" não é o ano atual, mas devemos considerar o literal '2013' que está no manual. Eu estava colocando o ano da emissão da nota, ou seja '2014'. Foi só mudar para '2013' que abre a nota certinho no browser e sem nenhum erro.

Obrigado.

Em consulta feita à SEFAZ-MT, fomos informados que o problema está no servidor SEFAZ. Nossa interpretação do manual estava correta, ou seja, o ano a ser utilizado na composição do token em homologação é realmente o ano atual e não o literal '2013'. Ainda segundo a SEFAZ-MT, esse problema vai estar corrigido até 16/01/201

Valdir Dill

Rio de Janeiro - RJ

 

 

Postado

Bom dia, gostaria de saber se alguem já teve sucesso emitindo a NFC-e em SC.

 

Estou testando a emissão atravez do ACBRNfe_demo, as minhas configurações do emitente são as mesmas da nossa emissão de nfe (que já utiliza o componente ACBR e funciona sem problemas). O Certificado é de SC tambem, mas quando emito a NFC-e eu sempre recebo erros de processamento no retorno.

 

Definindo a UF de destino do WebService como SC (Homologação) eu recebo "UF informada no campo cUF não atendida pelo WebService" (campo cUF = 42 = SC). Tentei tambem definir o WebService como RS, nesse caso o lote é enviado e processado, mas recebo "Rejeição: Codigo da UF do Emitente diverge da UF autorizadora".

 

Caso alguem ja tenha feito os testes da NFC-e em SC e tenha conseguido enviar as notas, eu gostaria de saber se foi feito algum procedimento diferente na hora do envio para que não ocorram esses erros.

 

Obrigado.

Postado

SAT e ECF 09/09 são coisas diferentes, hardwares diferentes, convênios diferentes, funcionamento diferente, tudo diferente,

 

O ECF 09/09 ainda é uma impressora fiscal mas com um algo a mais, ela possui um Módulo Fiscal Blindado, que possui placa protegida contra manipulação e adulteração, e um sistema de blindagem que se violado impede o funcionamento do ECF, justamente por isso esse equipamento não necessita de lacre, facilitando a intervenção técnica, ele também possui possibilidade de impressão da segunda via do cupom, conexão GPRS ou rede para transmissão de dados a receita em tempo real, porta USB para gravação de dados em pen-drive e foi abolida a impressão do bitmap na redução Z. Somente 1 estado sinalizou utilizar ele que é Santa Cataria, mesmo assim ainda não é obrigatório, foi protelado veja aqui: Prorrogada a exigência do novo ECF (Convênio 09/09).

 

Já o SAT é um tipo de hardware totalmente novo com funções totalmente novas. O equipamento SAT é um módulo composto de hardware e software embarcado, que deverá gerar e autenticar, por meio de Certificado Digital próprio, o Cupom Fiscal Eletrônico – SAT (CF-e-SAT) e transmiti-lo periódica e automaticamente à Secretaria da Fazenda (SEFAZ), via Internet. O SAT não possui impressora a ele integrado, basicamente a automação gera o arquivo, muito similar ao arquivo NF-e, envia ao equipamento SAT que faz todo o resto e devolve se foi liberado ou não. SP deve, se nada mudar, começar a adotar o SAT agora a partir de 01/04/2014 seguindo está tabela: OBRIGATORIEDADE DE USO DO SAT

 

A NFC-e é uma nota eletrônica normal mas voltada para consumidor, já está sendo utilizada em alguns estados (AM, MT) e funciona como uma nota eletrônica normal, nesse tópico isso é bem discutido, portanto, não vou entrar em detalhes.

 

Se SP vai mesmo adotar ou não o SAT, já foi dito que adotará, mas há o problema de não haver hardware no mercado, não sei de nenhuma empresa que esteja produzindo hardware para o SAT, mas é claro isso pode mudar, ou eles estão aguardando algo.

 

Para o SAT o ACBr possui o ACBrSAT que já está sendo utilizado por diversos usuários em SP em testes utilizando o emulador da própria SEFAZ/SP, já para o ECF 09/09 utilize o componente ACBrECF, configurando o modelo para "ecfEscECF".

Perfeita explicacao, mas quanto a SP adotar a NFCE ? sabe de algo ?

Postado

Bom dia a todos, evandromira ou alguém que tenha conseguido instalar o Zint BarCode.

Como foi possivel baixar e instalar? Pois entro na pasta Projects, D10 conforme orientado e clico no arquivo ZintBarCode.dpk só que ele abre o arquivo no próprio navegador e quando tento salvar o arquivo ele é salvo como arquivo txt.

Poderia me informar quais passos a serem feitos para conseguir instalar no delphi7.

 

Bom dia pessoal, quero agradecer a todos que me ajudaram tirando as duvidas de como baixar e instalar no delphi7 o ZintBarcode.

Agora é dar sequencia na impressão do Danfe da nfc-e. Obrigado

Postado

Bom dia Alex_porthal, 

 

no svn ainda não tem nada até onde sei até o momento não há nada certo, mas neste tópico do forum tem uma opção em Fast Report que estão mexendo.

Foi postado a ultima alteração pelo Ivr(Leonardo) o link é

Postado

Olá boa tarde,

 

Ja estou conseguindo emitir a NFCe 100%, ele envia para a sefaz-am sem problemas porém na hora de consultar o qrcode ele até abre o browser mais apresenta o erro 100.

Abaixo segue o código que estou usando para gerar:

 

 if fPrincipal.ACBrNFCe.NotasFiscais.Items[0].NFe.Ide.tpAmb = taProducao then
 Begin
  URL := 'sistemas.sefaz.am.gov.br/nfceweb/consultarNFCe.jsp?';
  tpAmb := '1';
  IdToken := '000001';
  Token   := '1491174001476968';
  cIdToken := IdToken + Token;
 End
 else
  Begin
   URL := 'homnfce.sefaz.am.gov.br/nfceweb/consultarNFCe.jsp?';
   tpAmb := '2';
   IdToken := '000001';
   Token   := '0502279120130001';// CNPJ Base da Empresa(8 digitos) + ano (2014) + IdToken (0001) - Apenas para o ambiente de Homologação
   cIdToken := IdToken + Token;
 End;
 
 cDest := Iif(Length(fPrincipal.ACBrNFCe.NotasFiscais.Items[0].NFe.Dest.CNPJCPF) > 0, fPrincipal.ACBrNFCe.NotasFiscais.Items[0].NFe.Dest.CNPJCPF, '');
 digVal := StrToHex(fPrincipal.ACBrNFCe.NotasFiscais.Items[0].NFe.signature.DigestValue);
 chNFE  := SomenteNumeros(fPrincipal.ACBrNFCe.NotasFiscais.Items[0].NFe.infNFe.ID);
 vNF    := FormatFloat(',0.00;-,0.00',fPrincipal.ACBrNFCe.NotasFiscais.Items[0].NFe.Total.ICMSTot.vNF);
 vICMS  := FormatFloat(',0.00;-,0.00',fPrincipal.ACBrNFCe.NotasFiscais.Items[0].NFe.Total.ICMSTot.vICMS);
 
 MemoDados.Lines.Clear;
 MemoDados.Text :=  'chNFe='     + chNFE +
              '&nVersao='  + '100' +
              '&tpAmb='    + tpAmb +
              Iif((Length(cDest) > 0),('&cDest=' + cDest), '') +
              '&dhEmi='    + StrToHex(DateTimeTodhUTC(fPrincipal.ACBrNFCe.NotasFiscais.Items[0].NFe.Ide.dEmi,GetUTC(fPrincipal.ACBrNFCe.NotasFiscais.Items[0].NFe.emit.enderEmit.UF, fPrincipal.ACBrNFCe.NotasFiscais.Items[0].NFe.Ide.dEmi))) +
              '&vNF='      + vNF +
              '&vICMS='    + vICMS +
              '&digVal='   + digVal +
              '&cIdToken=' + cIdToken;
 
 Hash_SHA1 := ACBrEAD.CalcularHash(UTF8Encode(MemoDados.Text), dgstSHA1);
 
 MemoDados.Lines.Clear;
 MemoDados.Text :=  URL +
              'chNFe='     + chNFE +
              '&nVersao='  + '100' +
              '&tpAmb='    + tpAmb +
              Iif((Length(cDest) > 0),('&cDest=' + cDest), '') +
              '&dhEmi='    + StrToHex(DateTimeTodhUTC(fPrincipal.ACBrNFCe.NotasFiscais.Items[0].NFe.Ide.dEmi,GetUTC(fPrincipal.ACBrNFCe.NotasFiscais.Items[0].NFe.emit.enderEmit.UF, fPrincipal.ACBrNFCe.NotasFiscais.Items[0].NFe.Ide.dEmi))) +
              '&vNF='      + vNF +
              '&vICMS='    + vICMS +
              '&digVal='   + digVal +
              '&cIdToken=' + '000001';
 
MemoDados.Text := MemoDados.Text + '&cHashQRCode=' + StrToHex(Hash_SHA1);
 
s := MemoDados.Text;
 
x := eGerarQrCodeArquivo_DUAL_DarumaFramework(PAnsiChar('C:\QrCode\Qrcode-NFCe.bmp'), pAnsiChar(s));
 
fPrincipal.ACBrNFeDANFEFR1.ImgQrCode := PAnsiChar('C:\QrCode\Qrcode-NFCe.bmp');
 
 
 
Realizei a emissão de uma NFCe no ambiente de homologação para testes, segue abaixo a sequencia sobre a qual foi calculado hash sha1:
chNFe=13140105022791000174650010000000331000000335&nVersao=100&tpAmb=2&dhEmi=323031342D30312D31385431383A32323A32322D30343A3030&vNF=20.00&vICMS=0.00&digVal=674C48464A5A6543503932772F654B4170377A376E7A70504272733D&cIdToken=0000010502279120130001
 
resultado do cálculo do hash sha1 sobre a sequência acima:
A1D791A7DA39EF0664885BE30C147D778F566FA2
 
Url Formada que foi incluída no QRCode:
 
 
Se alguém puder me ajudar a identificar onde está o erro, agradeço.
 

post-13101-0-37668200-1390084139.jpg

NFCe-Ambiente de Homologacao.pdf

Postado

 

 if fPrincipal.ACBrNFCe.NotasFiscais.Items[0].NFe.Ide.tpAmb = taProducao then

 Begin
  URL := 'sistemas.sefaz.am.gov.br/nfceweb/consultarNFCe.jsp?';
  tpAmb := '1';
  IdToken := '000001';
  Token   := '1491174001476968';
  cIdToken := IdToken + Token;
 End
 else
  Begin
   URL := 'homnfce.sefaz.am.gov.br/nfceweb/consultarNFCe.jsp?';
   tpAmb := '2';
   IdToken := '000001';
   Token   := '0502279120130001';// CNPJ Base da Empresa(8 digitos) + ano (2014) + IdToken (0001) - Apenas para o ambiente de Homologação
   cIdToken := IdToken + Token;
 End;
 

Bom dia, tente alterar onde deixei negrito para 2014

Postado

Bom dia, tente alterar onde deixei negrito para 2014

Ola elrond, alterei como você pediu mais mesmo assim continua apresentando o erro 100(Qr Code Inválido) conforme mostra o link abaixo de uma nova nota que emiti para testes.

http://homnfce.sefaz.am.gov.br/nfceweb/consultarNFCe.jsp?chNFe=13140105022791000174650010000000341000000340&nVersao=100&tpAmb=2&dhEmi=323031342D30312D32315431333A32313A33382D30343A3030&vNF=20.00&vICMS=0.00&digVal=59423278536B3958554D5878514D654761587735694F3168324B4D3D&cIdToken=000001&cHashQRCode=41334633344241303744333833384138313044383635413233423830444530413737443330373143

 

Abaixo seguem as informações onde foram geradas o hash:

chNFe=13140105022791000174650010000000341000000340&nVersao=100&tpAmb=2&dhEmi=323031342D30312D32315431333A32313A33382D30343A3030&vNF=20.00&vICMS=0.00&digVal=59423278536B3958554D5878514D654761587735694F3168324B4D3D&cIdToken=0000010502279120140001

 

Abaixo o hash gerado:

A3F34BA07D3838A810D865A23B80DE0A77D3071C

 

Eu li em um post nesse mesmo fórum que o ano deveria permanecer em 2013 não lembro ao certo o motivo.

Postado (editado)

Ola elrond, alterei como você pediu mais mesmo assim continua apresentando o erro 100(Qr Code Inválido) conforme mostra o link abaixo de uma nova nota que emiti para testes.

http://homnfce.sefaz.am.gov.br/nfceweb/consultarNFCe.jsp?chNFe=13140105022791000174650010000000341000000340&nVersao=100&tpAmb=2&dhEmi=323031342D30312D32315431333A32313A33382D30343A3030&vNF=20.00&vICMS=0.00&digVal=59423278536B3958554D5878514D654761587735694F3168324B4D3D&cIdToken=000001&cHashQRCode=41334633344241303744333833384138313044383635413233423830444530413737443330373143

 

Abaixo seguem as informações onde foram geradas o hash:

chNFe=13140105022791000174650010000000341000000340&nVersao=100&tpAmb=2&dhEmi=323031342D30312D32315431333A32313A33382D30343A3030&vNF=20.00&vICMS=0.00&digVal=59423278536B3958554D5878514D654761587735694F3168324B4D3D&cIdToken=0000010502279120140001

 

Abaixo o hash gerado:

A3F34BA07D3838A810D865A23B80DE0A77D3071C

 

Eu li em um post nesse mesmo fórum que o ano deveria permanecer em 2013 não lembro ao certo o motivo.

Bom vc leu a respeito do servidor de MT, que esta com problema e deveria informar 2013, mais ja foi arrumado.

 

Como vc esta utilizando servidor de AM, creio que este esteje ok.

 

vou postar o meu fonte, apesar de ser Copia do pessoal ( credito a quem desenvolveu ) e que aqui esta funcionando corretamente, pelo menos para o MT esta blzinha.

function TFNFCe.StringToHex(const S: String): string;
begin
  SetLength(result, 2*Length(S));
  BinToHex(@S[1], @result[1], Length(S));
end;

function TFNFCe.GetSiteConsulta(UF: string; Ambiente: TpcnTipoAmbiente ): string;
const
  site_uf_prod : array[0..6] of string =
     ('http://www.sefaznet.ac.gov.br/nfe/NFe.jsp?opc=3'
     'http://sistemas.sefaz.am.gov.br/nfceweb/consultarNFCe.jsp'
     'http://www.nfce.sefaz.ma.gov.br/portal/consultarNFCe.jsp'
     'http://www.sefaz.mt.gov.br/nfe/portal/consultanfce'
     'http://www.nfe.rn.gov.br/portal/consultarNFCe.jsp'
     'https://www.sefaz.rs.gov.br/NFCE/NFCE-COM.aspx'
     'http://www.nfe.se.gov.br/portal/consultarNFCe.jsp');
  site_uf_hom : array[0..6] of string =
      ('http://hml.sefaznet.ac.gov.br'
      'http://homnfe.sefaz.am.gov.br/nfceweb/consultarNFCe.jsp'
      'http://www.hom.nfce.sefaz.ma.gov.br/portal/consultarNFCe.jsp'
      'http://homologacao.sefaz.mt.gov.br/nfce/consultanfce'
      'http://www.hom.nfe.rn.gov.br/portal/consultarNFCe.jsp'
      'https://www.sefaz.rs.gov.br/NFCE/NFCE-COM.aspx'
      'http://www.hom.nfe.se.gov.br/portal/consultarNFCe.jsp');
begin
  case Ambiente of
    taProducao:  begin
          if UF = 'AC' then
            Result := site_uf_prod[0]
          else if UF = 'AM' then
            Result := site_uf_prod[1]
          else if UF = 'MA' then
            Result := site_uf_prod[2]
          else if UF = 'MT' then
            Result := site_uf_prod[3]
          else if UF = 'RN' then
            Result := site_uf_prod[4]
          else if UF = 'RS' then
            Result := site_uf_prod[5]
          else if UF = 'SE' then
            Result := site_uf_prod[6]
        end;
    taHomologacao:  begin
          if UF = 'AC' then
            Result := site_uf_hom[0]
          else if UF = 'AM' then
            Result := site_uf_hom[1]
          else if UF = 'MA' then
            Result := site_uf_hom[2]
          else if UF = 'MT' then
            Result := site_uf_hom[3]
          else if UF = 'RN' then
            Result := site_uf_hom[4]
          else if UF = 'RS' then
            Result := site_uf_hom[5]
          else if UF = 'SE' then
            Result := site_uf_hom[6]
        end;
  end;

end;


procedure TFNFCe.GerarQrCode;
var
  s_aux, dh_emi, s_hash: string;
  qrcode : TxpQrCode;
begin
  dh_emi := GetUTC( CodigoParaUF(ACBrNFe1.NotasFiscais.Items[0].NFe.Ide.cUF),
              StrToDateTime(FormatDateTime('dd/mm/yyyy',ACBrNFe1.NotasFiscais.Items[0].NFe.Ide.dEmi)+' '+
              FormatDateTime('hh:mm:ss', ACBrNFe1.NotasFiscais.Items[0].NFe.Ide.dEmi)));

  dh_emi := StringToHex( FormatDateTime('yyyy-mm-dd',ACBrNFe1.NotasFiscais.Items[0].NFe.Ide.dEmi)+'T'+
              FormatDateTime('hh:mm:ss', ACBrNFe1.NotasFiscais.Items[0].NFe.Ide.dEmi)+dh_emi );

  if (ACBrNFe1.NotasFiscais.Items[0].NFe.ide.tpAmb = taHomologacao) then
  begin
    FIdToken := '000001';
  end;
  if (ACBrNFe1.NotasFiscais.Items[0].NFe.ide.tpAmb = taHomologacao) then
  begin
    FToken := Copy(ACBrNFe1.NotasFiscais.Items[0].NFe.Emit.CNPJCPF, 1, 8)+ IntToStr(YearOf(Now))+'0001';
  end;                                                                     // '20130001';//


 s_aux :='chNFe=<chaveacesso>'+
          '&nVersao=100'+
          '&tpAmb=<ambiente>'+
          IIf(ACBrNFe1.NotasFiscais.Items[0].NFe.Dest.CNPJCPF<>'', '&cDest=<cnpj_dest>', '')+
          '&dhEmi=<data_hora>'+
          '&vNF=<valor>'+
          '&vICMS=<valor_icms>'+
          '&digVal=<digito_val>'+
          '&cIdToken=<id_token><token>';

  s_aux := StringReplace(s_aux, '<chaveacesso>', SomenteNumeros(ACBrNFe1.NotasFiscais.Items[0].NFe.infNFe.ID), []);
  s_aux := StringReplace(s_aux, '<ambiente>',    TpAmbToStr(ACBrNFe1.NotasFiscais.Items[0].NFe.Ide.tpAmb), []);
  s_aux := StringReplace(s_aux, '<data_hora>',   dh_emi, []);
  s_aux := StringReplace(s_aux, '<valor>',       StringReplace(FormatFloat('##,##0.00',ACBrNFe1.NotasFiscais.Items[0].NFe.Total.ICMSTot.vNF),',','.',[]),[] );
  s_aux := StringReplace(s_aux, '<valor_icms>',  StringReplace(FormatFloat('##,##0.00',ACBrNFe1.NotasFiscais.Items[0].NFe.Total.ICMSTot.vICMS),',','.',[]),[] );
  s_aux := StringReplace(s_aux, '<digito_val>',  StringToHex(ACBrNFe1.NotasFiscais.Items[0].NFe.signature.DigestValue), []);
  s_aux := StringReplace(s_aux, '<id_token>',    FIdToken, []);
  s_aux := StringReplace(s_aux, '<cnpj_dest>',   ACBrNFe1.NotasFiscais.Items[0].NFe.Dest.CNPJCPF, []);


  with TACBrEAD.Create(nil) do
  try
    s_hash := StringReplace(s_aux,'<token>',FToken,[]);
    s_hash := CalcularHash(s_hash, dgstSHA1);
  finally
    Free;
  end;



  s_aux :=  StringReplace(s_aux,'<token>', '',[]) + '&cHashQRCode='+s_hash;
  s_aux := GetSiteConsulta( CodigoParaUF(ACBrNFe1.NotasFiscais.Items[0].NFe.Ide.cUF), ACBrNFe1.NotasFiscais.Items[0].NFe.Ide.tpAmb ) +'?'+ s_aux;
  
 // MontarQrCode(s_aux);
   qrcode := TxpQrCode.Create;
  try
    if qrcode.GerarQrCode( s_aux ) then
      qrcode.QrCode.SaveToFile(ExtractFilePath(ParamStr(0))+'qrcode_temp.bmp');

  finally
    qrcode.Free;
  end;
end;
 

 

essa foi gerada por esse codigo.

 

Essa parte onde Monta o QrCode vc utiliza o comando direto para a impressora Daruma.

 

sua nota ...

peguei a url de consulta + chNFe + Hash

 

sendo que .... no IdToken=000001 em vez de 0000010502279120140001

 

http://homnfce.sefaz.am.gov.br/nfceweb/consultarNFCe.jsp?chNFe=13140105022791000174650010000000341000000340&nVersao=100&tpAmb=2&dhEmi=323031342D30312D32315431333A32313A33382D30343A3030&vNF=20.00&vICMS=0.00&digVal=59423278536B3958554D5878514D654761587735694F3168324B4D3D&cIdToken=000001&cHashQRCode=A3F34BA07D3838A810D865A23B80DE0A77D3071C

 

A Hash gerada na url de consulta ( no seu link do post acima esta ) : &cHashQRCode=41334633344241303744333833384138313044383635413233423830444530413737443330373143

ao inves de &cHashQRCode=A3F34BA07D3838A810D865A23B80DE0A77D3071C

 

 

Bom creio que va resolver seu problema

Editado por elrond
Postado

Bom vc leu a respeito do servidor de MT, que esta com problema e deveria informar 2013, mais ja foi arrumado.

 

Como vc esta utilizando servidor de AM, creio que este esteje ok.

 

vou postar o meu fonte, apesar de ser Copia do pessoal ( credito a quem desenvolveu ) e que aqui esta funcionando corretamente, pelo menos para o MT esta blzinha.

function TFNFCe.StringToHex(const S: String): string;
begin
  SetLength(result, 2*Length(S));
  BinToHex(@S[1], @result[1], Length(S));
end;

function TFNFCe.GetSiteConsulta(UF: string; Ambiente: TpcnTipoAmbiente ): string;
const
  site_uf_prod : array[0..6] of string =
     ('http://www.sefaznet.ac.gov.br/nfe/NFe.jsp?opc=3'
     'http://sistemas.sefaz.am.gov.br/nfceweb/consultarNFCe.jsp'
     'http://www.nfce.sefaz.ma.gov.br/portal/consultarNFCe.jsp'
     'http://www.sefaz.mt.gov.br/nfe/portal/consultanfce'
     'http://www.nfe.rn.gov.br/portal/consultarNFCe.jsp'
     'https://www.sefaz.rs.gov.br/NFCE/NFCE-COM.aspx'
     'http://www.nfe.se.gov.br/portal/consultarNFCe.jsp');
  site_uf_hom : array[0..6] of string =
      ('http://hml.sefaznet.ac.gov.br'
      'http://homnfe.sefaz.am.gov.br/nfceweb/consultarNFCe.jsp'
      'http://www.hom.nfce.sefaz.ma.gov.br/portal/consultarNFCe.jsp'
      'http://homologacao.sefaz.mt.gov.br/nfce/consultanfce'
      'http://www.hom.nfe.rn.gov.br/portal/consultarNFCe.jsp'
      'https://www.sefaz.rs.gov.br/NFCE/NFCE-COM.aspx'
      'http://www.hom.nfe.se.gov.br/portal/consultarNFCe.jsp');
begin
  case Ambiente of
    taProducao:  begin
          if UF = 'AC' then
            Result := site_uf_prod[0]
          else if UF = 'AM' then
            Result := site_uf_prod[1]
          else if UF = 'MA' then
            Result := site_uf_prod[2]
          else if UF = 'MT' then
            Result := site_uf_prod[3]
          else if UF = 'RN' then
            Result := site_uf_prod[4]
          else if UF = 'RS' then
            Result := site_uf_prod[5]
          else if UF = 'SE' then
            Result := site_uf_prod[6]
        end;
    taHomologacao:  begin
          if UF = 'AC' then
            Result := site_uf_hom[0]
          else if UF = 'AM' then
            Result := site_uf_hom[1]
          else if UF = 'MA' then
            Result := site_uf_hom[2]
          else if UF = 'MT' then
            Result := site_uf_hom[3]
          else if UF = 'RN' then
            Result := site_uf_hom[4]
          else if UF = 'RS' then
            Result := site_uf_hom[5]
          else if UF = 'SE' then
            Result := site_uf_hom[6]
        end;
  end;

end;


procedure TFNFCe.GerarQrCode;
var
  s_aux, dh_emi, s_hash: string;
  qrcode : TxpQrCode;
begin
  dh_emi := GetUTC( CodigoParaUF(ACBrNFe1.NotasFiscais.Items[0].NFe.Ide.cUF),
              StrToDateTime(FormatDateTime('dd/mm/yyyy',ACBrNFe1.NotasFiscais.Items[0].NFe.Ide.dEmi)+' '+
              FormatDateTime('hh:mm:ss', ACBrNFe1.NotasFiscais.Items[0].NFe.Ide.dEmi)));

  dh_emi := StringToHex( FormatDateTime('yyyy-mm-dd',ACBrNFe1.NotasFiscais.Items[0].NFe.Ide.dEmi)+'T'+
              FormatDateTime('hh:mm:ss', ACBrNFe1.NotasFiscais.Items[0].NFe.Ide.dEmi)+dh_emi );

  if (ACBrNFe1.NotasFiscais.Items[0].NFe.ide.tpAmb = taHomologacao) then
  begin
    FIdToken := '000001';
  end;
  if (ACBrNFe1.NotasFiscais.Items[0].NFe.ide.tpAmb = taHomologacao) then
  begin
    FToken := Copy(ACBrNFe1.NotasFiscais.Items[0].NFe.Emit.CNPJCPF, 1, 8)+ IntToStr(YearOf(Now))+'0001';
  end;                                                                     // '20130001';//


 s_aux :='chNFe=<chaveacesso>'+
          '&nVersao=100'+
          '&tpAmb=<ambiente>'+
          IIf(ACBrNFe1.NotasFiscais.Items[0].NFe.Dest.CNPJCPF<>'', '&cDest=<cnpj_dest>', '')+
          '&dhEmi=<data_hora>'+
          '&vNF=<valor>'+
          '&vICMS=<valor_icms>'+
          '&digVal=<digito_val>'+
          '&cIdToken=<id_token><token>';

  s_aux := StringReplace(s_aux, '<chaveacesso>', SomenteNumeros(ACBrNFe1.NotasFiscais.Items[0].NFe.infNFe.ID), []);
  s_aux := StringReplace(s_aux, '<ambiente>',    TpAmbToStr(ACBrNFe1.NotasFiscais.Items[0].NFe.Ide.tpAmb), []);
  s_aux := StringReplace(s_aux, '<data_hora>',   dh_emi, []);
  s_aux := StringReplace(s_aux, '<valor>',       StringReplace(FormatFloat('##,##0.00',ACBrNFe1.NotasFiscais.Items[0].NFe.Total.ICMSTot.vNF),',','.',[]),[] );
  s_aux := StringReplace(s_aux, '<valor_icms>',  StringReplace(FormatFloat('##,##0.00',ACBrNFe1.NotasFiscais.Items[0].NFe.Total.ICMSTot.vICMS),',','.',[]),[] );
  s_aux := StringReplace(s_aux, '<digito_val>',  StringToHex(ACBrNFe1.NotasFiscais.Items[0].NFe.signature.DigestValue), []);
  s_aux := StringReplace(s_aux, '<id_token>',    FIdToken, []);
  s_aux := StringReplace(s_aux, '<cnpj_dest>',   ACBrNFe1.NotasFiscais.Items[0].NFe.Dest.CNPJCPF, []);


  with TACBrEAD.Create(nil) do
  try
    s_hash := StringReplace(s_aux,'<token>',FToken,[]);
    s_hash := CalcularHash(s_hash, dgstSHA1);
  finally
    Free;
  end;



  s_aux :=  StringReplace(s_aux,'<token>', '',[]) + '&cHashQRCode='+s_hash;
  s_aux := GetSiteConsulta( CodigoParaUF(ACBrNFe1.NotasFiscais.Items[0].NFe.Ide.cUF), ACBrNFe1.NotasFiscais.Items[0].NFe.Ide.tpAmb ) +'?'+ s_aux;
  
 // MontarQrCode(s_aux);
   qrcode := TxpQrCode.Create;
  try
    if qrcode.GerarQrCode( s_aux ) then
      qrcode.QrCode.SaveToFile(ExtractFilePath(ParamStr(0))+'qrcode_temp.bmp');

  finally
    qrcode.Free;
  end;
end;
 

 

essa foi gerada por esse codigo.

 

Essa parte onde Monta o QrCode vc utiliza o comando direto para a impressora Daruma.

 

sua nota ...

peguei a url de consulta + chNFe + Hash

 

sendo que .... no IdToken=000001 em vez de 0000010502279120140001

 

http://homnfce.sefaz.am.gov.br/nfceweb/consultarNFCe.jsp?chNFe=13140105022791000174650010000000341000000340&nVersao=100&tpAmb=2&dhEmi=323031342D30312D32315431333A32313A33382D30343A3030&vNF=20.00&vICMS=0.00&digVal=59423278536B3958554D5878514D654761587735694F3168324B4D3D&cIdToken=000001&cHashQRCode=A3F34BA07D3838A810D865A23B80DE0A77D3071C

 

A Hash gerada na url de consulta ( no seu link do post acima esta ) : &cHashQRCode=41334633344241303744333833384138313044383635413233423830444530413737443330373143

ao inves de &cHashQRCode=A3F34BA07D3838A810D865A23B80DE0A77D3071C

 

 

Bom creio que va resolver seu problema

Boa tarde Elrond,
 
Eu consegui resolver o problema no ambiente de homologação, a bronca era que eu estava mandando converter em Hexa o Hash depois de gerado, removi a parte em que ele manda converte e pronto.
 
Agora fui gerar a NFc-e no ambiente de Produção, a única troca que fiz trocar o token para 0000025691381601420864 (IdToken: 000002 + Numero Token: 5691381601420864) e ele voltou a apresentar o problema do código 100 - QRCode inválido.
 
Existe alguma particularidade que eu esteja esquecendo, pois estou gerando conforme os padrões.
 
Link da Nota tirada no ambeinte de Producao:
 
Testo de onde foi gerada o Hash Sha:
chNFe=13140105022791000174650010000000431000000439&nVersao=100&tpAmb=1&dhEmi=323031342D30312D32355431323A31353A30392D30343A3030&vNF=62.00&vICMS=0.00&digVal=6659346E59523334345A78343541414558712B53594E416E51376B3D&cIdToken=0000025691381601420864
 
Hash Sha gerado pelo Sistema:
585F3A1D427CD1BCC0FFF3447E518476F04AA8DF
Postado

Pessoal desculpa o topico mas nao consegui encontrar onde se inutiliza a NFC-e...

 

Estou utilizando o seguinte: ACBrNFe1.WebServices.Inutiliza(...)

 

Porem esta dando falha nos schemas...

 

O que pode ser ... Ja atualizei... Att

 

 

Dionatan

Postado

Pessoal desculpa o topico mas nao consegui encontrar onde se inutiliza a NFC-e...

 

Estou utilizando o seguinte: ACBrNFe1.WebServices.Inutiliza(...)

 

Porem esta dando falha nos schemas...

 

O que pode ser ... Ja atualizei... Att

 

 

Dionatan

 

Dionatan,

 

Quando tento enviar a inutilização o webservice sempre me retorna que a NFCe não existe, mesmo a consulta resultar que ela está autorizada.

 

Não encontrei nada sobre inutilização de NFCe nas Notas Técnicas, como também não encontrei nada sobre Cancelamento porém o cancelamento por evento funciona.

 

Não é problema no componente e sim nos serviços do webservice.

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