Ir para conteúdo
  • Cadastre-se

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

Recommended Posts

Postado

Respondido em:

 

Por favor, pergunto somente em um lugar e aguarde.

 

Obrigado Régys, e desculpe repetir a pergunta, já tinha postado e logo em seguinte eu encontrei um post relacionado a minha dúvida que seria o local mais adequado.

  • Curtir 1
Postado

Respondido em:

 

Por favor, pergunto somente em um lugar e aguarde.

Boa tarde Régys, 

Procurei muito no forum e não achei nada que pudesse me ajudar na formação do TOKEN em produção, estou usando a rotina abaixo, em homologação o QR Code esta 100% vai direto pro portal e mostra o DANFE, mais quando inseri o TOKEN valido para produção o QR Code não gera correto, visualizo na pagina apenas "Mensagem de erro não especificada".

Agradeço qualquer ajuda, obrigado.

 

  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;
 
  if (ACBrNFe1.NotasFiscais.Items[0].NFe.ide.tpAmb = taProducao) then
  begin
    FIdToken := '000001'
  end;
  if (ACBrNFe1.NotasFiscais.Items[0].NFe.ide.tpAmb = taProducao) then
  begin
    FToken := 'gg1c75db59f4afb2fe792a0b6f2e1685';
  end;
 
 
  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;

;)O valor do homem é determinado, em primeira linha, pelo grau e pelo sentido em que se libertou do seu ego. A-E

Postado

 

Boa tarde Régys, 

Procurei muito no forum e não achei nada que pudesse me ajudar na formação do TOKEN em produção, estou usando a rotina abaixo, em homologação o QR Code esta 100% vai direto pro portal e mostra o DANFE, mais quando inseri o TOKEN valido para produção o QR Code não gera correto, visualizo na pagina apenas "Mensagem de erro não especificada".

Agradeço qualquer ajuda, obrigado.

 

  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;
 
  if (ACBrNFe1.NotasFiscais.Items[0].NFe.ide.tpAmb = taProducao) then
  begin
    FIdToken := '000001'
  end;
  if (ACBrNFe1.NotasFiscais.Items[0].NFe.ide.tpAmb = taProducao) then
  begin
    FToken := 'gg1c75db59f4afb2fe792a0b6f2e1685';
  end;
 
 
  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;

 

 

Bom dia, agora sem fazer quaisquer alteração nos fontes a tela de consulta mudou, agora mostra que o token não existe para o CNPJ.

 

divisor2.gif

ERRO

Codigo do TOKEN inexistente para o CNPJ 07212380 e cIdToken 000002

 

DADOS INFORMADOS Chave de Acesso: 51-1312-07.212.380/0001-77-65-001-000.000.083-100.000.083-7 Versão: 100 Ambiente: PRODUÇÃO Doc. Identificação do Consumidor: 96778865253 Data Hora Emissão: 2013-12-11T08:36:51-03:00 Valor Total da NF R$: 0.12  Valor Total do ICMS R$: 0.00  Código do XML: 3LE+5D2a2lALGWcCZAvkLS3GeGc= ID Token do Contribuinte: 000002 Código Hash dos Parâmetros: A80406FB209932AF9330C4CA4E2627470E43B051

 

divisor.gif

© Copyright 2001-2013 Secretaria de Estado de Fazenda de Mato Grosso - Todos os direitos reservados

;)O valor do homem é determinado, em primeira linha, pelo grau e pelo sentido em que se libertou do seu ego. A-E

Postado

 

Bom dia, agora sem fazer quaisquer alteração nos fontes a tela de consulta mudou, agora mostra que o token não existe para o CNPJ.

 

divisor2.gif

ERRO

Codigo do TOKEN inexistente para o CNPJ 07212380 e cIdToken 000002

 

DADOS INFORMADOS Chave de Acesso: 51-1312-07.212.380/0001-77-65-001-000.000.083-100.000.083-7 Versão: 100 Ambiente: PRODUÇÃO Doc. Identificação do Consumidor: 96778865253 Data Hora Emissão: 2013-12-11T08:36:51-03:00 Valor Total da NF R$: 0.12  Valor Total do ICMS R$: 0.00  Código do XML: 3LE+5D2a2lALGWcCZAvkLS3GeGc= ID Token do Contribuinte: 000002 Código Hash dos Parâmetros: A80406FB209932AF9330C4CA4E2627470E43B051

 

divisor.gif

© Copyright 2001-2013 Secretaria de Estado de Fazenda de Mato Grosso - Todos os direitos reservados

 

 

Boa noite amigos.

Apos enviar um email para [email protected] com o erro e os tokens que estava usando o problema se resolveu só.

Agora não sei se foi por intervenção da sefaz ou se o problema era generalizado e voltou a funcionar e isso foi uma consciência...

o importante é que resolveu.

;)O valor do homem é determinado, em primeira linha, pelo grau e pelo sentido em que se libertou do seu ego. A-E

  • Membros Pro
Postado

Boa tarde!

Pessoal estou com o mesmo problema de erro 100 Qr code invalido. Segue em anexo a URL e dados para calcular o hash

Bom dia!

Pessoal resolvido.

 

O problema era o seguinte a sefaz MT estava mantendo um token que estava revogado para a validação e não estava aceitando o token atual.

 

Obrigado a todos

Postado

Bom dia Pessoal,

 

Como foi falado nos tópicos acima, apenas em alguns estados já se pode emitir NFC-e, porém, gostaria de saber se existe alguma forma das empresas que estao nos outros estados iniciarem a alterações dos pdvs para atender a nfc-e, antes de a obrigatoriedade, para poupar nosso tempo no futuro...

 

Já comecei a ler alguns manuais, porém queria algumas dicas:

1- Posso iniciar o desenvolvimento/testes?

2- Posso criar um client para apontar para um dos WebServices do ambiente de desenvolvimento?

3- Como faço para obter um CNPJ válido? existe algum cadastro junto a SEFAZ?

 

Agradeço a atenção.

  • Moderadores
Postado

Bom dia Pessoal,

 

Como foi falado nos tópicos acima, apenas em alguns estados já se pode emitir NFC-e, porém, gostaria de saber se existe alguma forma das empresas que estao nos outros estados iniciarem a alterações dos pdvs para atender a nfc-e, antes de a obrigatoriedade, para poupar nosso tempo no futuro...

 

Já comecei a ler alguns manuais, porém queria algumas dicas:

1- Posso iniciar o desenvolvimento/testes?

2- Posso criar um client para apontar para um dos WebServices do ambiente de desenvolvimento?

3- Como faço para obter um CNPJ válido? existe algum cadastro junto a SEFAZ?

 

Agradeço a atenção.

 

Estou vendo que é seu primeiro post, gostaria de convidá-lo a conhecer nossas

 

Veja que no tópico anterior ao que você postou, eu coloquei um link para uma matéria mostrando justamente o que você perguntou, o que me leva a crer que você não leu esse tópico.

Este tópico se lido do início ao fim vai tirar praticamente todas as suas dúvidas, e já temos outros tópicos também tratando desse mesmo assunto, por favor utiliza a ferramenta de pesquisa localizada logo acima no canto superior direito.

  • Curtir 1

Equipe ACBr

Régys Borges da Silveira

http://www.regys.com.br

certificacao delphicertificacao delphi
Postado

 

Para quem ainda esta com problemas pra gerar o qrCode vou postar aqui da maneira que esta funcionando, pelo menos para o MT:

 

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

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

  s_aux :='chNFe=<chaveacesso>'+
          '&nVersao=100'+
          '&tpAmb=<ambiente>'+
          IIf(facbr.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(facbr.NotasFiscais.Items[0].NFe.infNFe.ID), []);
  s_aux := StringReplace(s_aux, '<ambiente>', TpAmbToStr(facbr.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',facbr.NotasFiscais.Items[0].NFe.Total.ICMSTot.vNF),',','.',[]),[] );
  s_aux := StringReplace(s_aux, '<valor_icms>', StringReplace(FormatFloat('##,##0.00',facbr.NotasFiscais.Items[0].NFe.Total.ICMSTot.vICMS),',','.',[]),[] );
  s_aux := StringReplace(s_aux, '<digito_val>', StrToHex(facbr.NotasFiscais.Items[0].NFe.signature.DigestValue), []);
  s_aux := StringReplace(s_aux, '<id_token>', FIdToken, []);
  s_aux := StringReplace(s_aux, '<cnpj_dest>', facbr.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(FAcbr.NotasFiscais.Items[0].NFe.Ide.cUF), FAcbr.NotasFiscais.Items[0].NFe.Ide.tpAmb ) +'?'+ s_aux;

  MontarQrCode(s_aux);

end;

Notem que, quando for gerar o hash, deve ser feito com IdToken e Com o Token, para homologação deve ser IdToken = '000001',

e Token, (primeiros 8 digitos do CNPJ)+Ano+0001. Quando for gerar o qrCode deve remover o "token" e deixar apenas o IdToken senão não vai fechar e vai retornar o erro 100.

 

pra quem tiver interesse segue uma string do qr_code funcionando.

http://homologacao.sefaz.mt.gov.br/nfce/consultanfce?chNFe=51131115319954000139650050000001031175076630&nVersao=100&tpAmb=2&dhEmi=323031332D31312D30375431363A33343A35322D30333A3030&vNF=111.01&vICMS=19.98&digVal=486256502F3478596278784230314470377466474E4151356949553D&cIdToken=000001&cHashQRCode=56A39A17537CAB21C1632887C332BE95CD1BD51F

Abaixo a string sob a qual foi gerado o hash

STRING:
chNFe=51131115319954000139650050000001031175076630&nVersao=100&tpAmb=2&dhEmi=323031332D31312D30375431363A33343A35322D30333A3030&vNF=111.01&vICMS=19.98&digVal=486256502F3478596278784230314470377466474E4151356949553D&cIdToken=0000011531995420130001


HASH: 
56A39A17537CAB21C1632887C332BE95CD1BD51F

Olá, poderias postar o MontarQrCode(s_aux), só ta pendente a geração desse qrcode não consegui identificar esse MontarQrCode(s_aux);

Grato.

Postado

Bom dia,

 

 esta função corresponde a função utilizada para gerar o QrCode, eu alterei aqui então não vou ter a mesma função, no entanto vou te passar a unit que utilizo pra gerar o qrcode utilizando o ZintBarcode.

unit uQrCode;

interface

uses
  SysUtils, uZintBarcode, Graphics;

type
  TxpQrCode = class
  private
    FQrCode: TBitmap;
  public
    function GerarQrCode(Valor: string): Boolean;
    destructor Destroy; override;
    property QrCode: TBitmap read FQrCode write FQrCode;
  end;

implementation

{ TQrCode }

destructor TxpQrCode.Destroy;
begin
  if Assigned(FQrCode) then
    FQrCode.Free;
  inherited;
end;

function TxpQrCode.GerarQrCode(Valor: string): Boolean;
var
  zint: TZintBarcode;
begin
  zint := TZintBarcode.Create;
  if not Assigned(FQrCode) then
    FQrCode := TBitmap.create;
  try
    zint.Data := Valor;
    zint.BarcodeType := tBARCODE_QRCODE;
    zint.GetBarcode( FQrCode );
    Result := True;
  finally
    zint.Free;
  end;
end;

end.

exemplo de uso:

  qrcode := TxpQrCode.Create;
  try
    if qrcode.GerarQrCode( s_aux ) then
      qrcode.QrCode.SaveToFile(ExtractFilePath(ParamStr(0))+'qrcode_temp.bmp');
  finally
    qrcode.Free;
  end;
Postado

Pessoal venho a agradecer aqui a todos que postaram duvidas/resolucoes de problemas apresentado no desenvolvimento do NFC-e.

baseando-se nisso consegui efetuar os testes em homologacao de primeira =D.

 

agora estou efetuando as validacoes de campos e alguns detalhes, mais ja esta ok a NFC-e ( MT ) .

 

Muito obrigado a todos.

  • Curtir 3
Postado

Pessoal venho a agradecer aqui a todos que postaram duvidas/resolucoes de problemas apresentado no desenvolvimento do NFC-e.

baseando-se nisso consegui efetuar os testes em homologacao de primeira =D.

 

agora estou efetuando as validacoes de campos e alguns detalhes, mais ja esta ok a NFC-e ( MT ) .

 

Muito obrigado a todos.

O meu projeto NFC-e esta rodando 100% em produção, tbm fiquei muito grato e satisfeito com o forum do Projeto, parabéns a todos e estou a disposição para ajudar a quem ainda esta desenvolvendo...

  • Curtir 1

;)O valor do homem é determinado, em primeira linha, pelo grau e pelo sentido em que se libertou do seu ego. A-E

Postado

Status Código : 767

Status Descrição : Rejeicao: NFC-e com somatorio dos pagamentos diferente do total da Nota Fiscal
 
meu xml esta correto tem apenas 2 item e não consigo resolver esse problema, a somatória esta correta mais permanece isso alguem ja pasosu por isso?
  • 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

 

 

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

The popup will be closed in 10 segundos...
The popup will be closed in 10 segundos...