Ir para conteúdo
  • Cadastre-se

picuuai

Membros
  • Total de ítens

    15
  • Registro em

  • Última visita

Posts postados por picuuai

  1. Prezados, achei a solução, obrigado pela ajuda @italo

    procedure Tfrmdctf.AssinarXml(const ElementoFinal:String);
    var SSL : TDFeSSL;
        XMLUTF8, XMLAssinado : String;
    begin
      SSL := TDFeSSL.Create;
      try
        SSL.SSLDgst := dgstSHA256; // esse paramentro muda o tipo de assinatura SHA
        SSL.SSLCryptLib     := cryWinCrypt;
        SSL.SSLXmlSignLib   := xsLibXml2;
        SSL.ArquivoPFX      := integra.caminhocertificado;
        SSL.Senha           := '33711196';
        SSl.CarregarCertificado;
        XMLUTF8 := memo3.Lines.Text;
        XMLAssinado := SSL.Assinar(XMLUTF8, ElementoFinal, '', '','','','id'); // o parametro idattr coloca o conteudo (id) do elemento dentro da reference na assinatura
        memo4.Lines.Text:= XMLAssinado;
      finally
        SSL.free;
        PANEL2.Caption:='PROBLEMAS AO ASSINAR XML.';
      end;
      PANEL2.Caption:='XML ASSINADO COM SUCESSO.';

    para chamar a funcao

    AssinarXml('ConteudoDeclaracao');

  2. Prezados, 

    Sou contador e programador(nao profissinal) e recentemente estou desenvolvento aplicativo proprio para consumir as API do SERPO(Receita Federal) relacionas ao Integra Contador..mas criar um componente esta longe da minha capacidade.

    La tem disponivel uma gama muito grande de serviços relacionadas a facilidade de integração entre Contador e Receita Federal.. abaixo alguns exemplos de funcionalidades disponiveis no sistema:

    PGDASD - Consultar Declarações PGDASD - Consultar a Última Declaração/Recibo PGDASD - Consultar Declaração/Recibo  PGDASD - Consultar Extrato do DAS PGMEI - Consultar Dívida Ativa DCTFWeb - Consultar o Recibo da Declaração DCTFWeb - Consultar Declaração Completa DCTFWeb - Consultar o XML da declaração Procurações - Obter procuração DCTFWeb - Gerar Guia Declaração  Sicalc - Consolidar Emitir DARF PAGTOWEB - Gerar Comprovante de Pagamento...etc

    Minha sugestao seria criar componente para ajudar os contadores nas taferas diarias..Ja que a maioria dos sofwares hoje que fazem esse tipo de tarefas utilizam navegadores por exemplo  para conseguir as informações.(passando pelos chatos captchas)..

    Mais informacoes estao no site 
    https://apicenter.estaleiro.serpro.gov.br/documentacao/api-integra-contador/

     

     

     
  3. Prezados..

    Alguma coisa eu ja consegui resolver sobre a assinatura do XML com o codigo abaixo...

    procedure Tfrmdctf.AssinarXml(const ElementoFinal:String);
    var SSL : TDFeSSL;
        XMLUTF8, XMLAssinado : String;
    begin
      SSL := TDFeSSL.Create;
      try
        SSL.SSLCryptLib     := cryWinCrypt;
        SSL.SSLXmlSignLib   := xsLibXml2;
        SSL.ArquivoPFX      := integra.caminhocertificado;
        SSL.Senha           := '33711196';
        SSl.CarregarCertificado;
        XMLUTF8 := memo3.Lines.Text;
        XMLAssinado := SSL.Assinar(XMLUTF8, ElementoFinal, '');
        memo4.Lines.Text:= XMLAssinado;
      finally
        SSL.free;
      end;
    end;

     

    Preciso resolver outras 2 coias..
    1) a assinatura tem ser em SHA256 e esta em SHA1, como mudar isso?
    2) eu preciso na reference colocar o a referencia do conteudodadeclaracao do xml anexo.. como faço isso, pois esta saindo vazio?

    manual técnico
    https://apicenter.estaleiro.serpro.gov.br/documentacao/api-integra-contador/pt/sistemas/dctfweb/servicos/entregar_declaracao/

    arquivo.xml arquivo_assinado.xml

  4. Em 06/09/2023 at 16:46, picuuai disse:

    Obrigado..

    Eu achei esse codigo aqui na internet que ajudou bastante na assinatura..

    procedure Tfrmdctf.AssinarXml(const ElementoFinal:String);
    var SSL : TDFeSSL;
        XMLUTF8, XMLAssinado : String;
    begin
      SSL := TDFeSSL.Create;
      try
        SSL.SSLCryptLib     := cryWinCrypt;
        SSL.SSLXmlSignLib   := xsLibXml2;
        SSL.ArquivoPFX      := integra.caminhocertificado;
        SSL.Senha           := '******';
        SSl.CarregarCertificado;
        XMLUTF8 := memo3.Lines.Text;
        XMLAssinado := SSL.Assinar(XMLUTF8, ElementoFinal, '');
        memo4.Lines.Text:= XMLAssinado;
      finally
        SSL.free;
      end;
    end;

     

    So tem uma diferença, o arquivo esta com Sha1 e teria que ser Sha256, como faço para mudar esse tipo de assinatura..?

    Alguem sabe como mudar a sha? e tambem no meu codigo ele nao esta aparecendo a reference = url esta vazia..  e eu precisava referenciar o conteudododocumento..

  5. Em 25/08/2023 at 09:41, picuuai disse:

    Eu entendi o que quiz dizer, mas eu ja tentei de tudo para identificar como o sistema troca de Sha1 para Sha256 dentro da ABCRDFESLL e ate agora nao entendi..
    Na assinatura da esocial por exemplo ele assina sha256 e na NFE ele assina sha1.. mas em nenhum dos eventos vc menciona que tipo de SignatureMethod ele vai usar..

     

    function TDFeSSL.Assinar(const ConteudoXML, docElement, infElement: String;
      const SignatureNode: String; const SelectionNamespaces: String; const IdSignature: String;
      const IdAttr: String 😞 String;
    Var
      XmlAss, DeclaracaoXMLAntes, DeclaracaoXMLDepois: String;
      Assinado: Boolean;
    begin
      // Nota: ConteudoXML, DEVE estar em UTF8 //
      // Lendo Header antes de assinar, Se Header não for UTF8 não usa... //
      if XmlEhUTF8(ConteudoXML) then
        DeclaracaoXMLAntes := ObtemDeclaracaoXML(ConteudoXML)
      else
        DeclaracaoXMLAntes := '';

      Assinado := False;

      if Assigned(FAntesDeAssinar) then
      begin
        XmlAss := ConteudoXML;
        FAntesDeAssinar( XmlAss, docElement, infElement, SignatureNode,
                         SelectionNamespaces, IdSignature);
        Assinado := (XmlAss <> ConteudoXML);
      end;

      if not Assinado then
      begin
        XmlAss := FSSLXmlSignClass.Assinar( ConteudoXML, docElement, infElement,
                                            SignatureNode, SelectionNamespaces,
                                            IdSignature, IdAttr);

        // Verificando se modificou o Header do XML assinado, e voltando para o anterior //
        if (DeclaracaoXMLAntes <> '') then
        begin
          DeclaracaoXMLDepois := ObtemDeclaracaoXML(XmlAss);

          if (DeclaracaoXMLDepois = '') then
            XmlAss := DeclaracaoXMLAntes + XmlAss
          else if (DeclaracaoXMLAntes <> DeclaracaoXMLDepois) then
            XmlAss := StringReplace(XmlAss, DeclaracaoXMLAntes, DeclaracaoXMLDepois, []);
        end;
      end;

      Result := XmlAss;
    end;

    Obrigado..

    Eu achei esse codigo aqui na internet que ajudou bastante na assinatura..

    procedure Tfrmdctf.AssinarXml(const ElementoFinal:String);
    var SSL : TDFeSSL;
        XMLUTF8, XMLAssinado : String;
    begin
      SSL := TDFeSSL.Create;
      try
        SSL.SSLCryptLib     := cryWinCrypt;
        SSL.SSLXmlSignLib   := xsLibXml2;
        SSL.ArquivoPFX      := integra.caminhocertificado;
        SSL.Senha           := '******';
        SSl.CarregarCertificado;
        XMLUTF8 := memo3.Lines.Text;
        XMLAssinado := SSL.Assinar(XMLUTF8, ElementoFinal, '');
        memo4.Lines.Text:= XMLAssinado;
      finally
        SSL.free;
      end;
    end;

     

    So tem uma diferença, o arquivo esta com Sha1 e teria que ser Sha256, como faço para mudar esse tipo de assinatura..?

  6. 8 minutos atrás, Juliomar Marchetti disse:

    Indiferente de ser novo ou não . programação é igual

    depura o código e olha ele pedaço a pedaço e tu vai conseguir bem fácil

    olha o blocoX que tem uma assinatura especifica

    Eu entendi o que quiz dizer, mas eu ja tentei de tudo para identificar como o sistema troca de Sha1 para Sha256 dentro da ABCRDFESLL e ate agora nao entendi..
    Na assinatura da esocial por exemplo ele assina sha256 e na NFE ele assina sha1.. mas em nenhum dos eventos vc menciona que tipo de SignatureMethod ele vai usar..

     

    function TDFeSSL.Assinar(const ConteudoXML, docElement, infElement: String;
      const SignatureNode: String; const SelectionNamespaces: String; const IdSignature: String;
      const IdAttr: String 😞 String;
    Var
      XmlAss, DeclaracaoXMLAntes, DeclaracaoXMLDepois: String;
      Assinado: Boolean;
    begin
      // Nota: ConteudoXML, DEVE estar em UTF8 //
      // Lendo Header antes de assinar, Se Header não for UTF8 não usa... //
      if XmlEhUTF8(ConteudoXML) then
        DeclaracaoXMLAntes := ObtemDeclaracaoXML(ConteudoXML)
      else
        DeclaracaoXMLAntes := '';

      Assinado := False;

      if Assigned(FAntesDeAssinar) then
      begin
        XmlAss := ConteudoXML;
        FAntesDeAssinar( XmlAss, docElement, infElement, SignatureNode,
                         SelectionNamespaces, IdSignature);
        Assinado := (XmlAss <> ConteudoXML);
      end;

      if not Assinado then
      begin
        XmlAss := FSSLXmlSignClass.Assinar( ConteudoXML, docElement, infElement,
                                            SignatureNode, SelectionNamespaces,
                                            IdSignature, IdAttr);

        // Verificando se modificou o Header do XML assinado, e voltando para o anterior //
        if (DeclaracaoXMLAntes <> '') then
        begin
          DeclaracaoXMLDepois := ObtemDeclaracaoXML(XmlAss);

          if (DeclaracaoXMLDepois = '') then
            XmlAss := DeclaracaoXMLAntes + XmlAss
          else if (DeclaracaoXMLAntes <> DeclaracaoXMLDepois) then
            XmlAss := StringReplace(XmlAss, DeclaracaoXMLAntes, DeclaracaoXMLDepois, []);
        end;
      end;

      Result := XmlAss;
    end;

  7. Prezados, tudo bem..

    Estou desenvolvendo uma aplicação que consome a API do Integra Contador para transmissao e geração de guias da DCTFWEB..
    https://apicenter.estaleiro.serpro.gov.br/documentacao/api-integra-contador/pt/sistemas/dctfweb/servicos/entregar_declaracao/
    Eu consigo fazer o download do arquivo XML, mas eu nao tenho nenhuma noção de como eu consigo assinar esse arquivo XML dentro da programação..
    Estou utilizando delphi Tokio.

    Gostaria de ajuda de como fazer uma rotina para que o sistema leia o XML e assine com o certificado PFX, nos padroes exigidos..

    Agradeço por qualquer ajuda.

    Fica a dica ai para os senior desenvolver componentes para consumir essa api oficial da Receita, é muito util...

  8. Prezados, tudo bem

    Com as novas mudanças da SEFAZ, limitando os downloads do XML através da distribuicaodfe, surgiram alguns problemas e nao estou conseguindo sem ajuda.

    o procedimento  anfe.EventoNFe.LerXML(DirectoryListBox4.Directory+'\'+ filelistbox6.Items.Strings[notayyy]);  esta funcionando perfeitamente, mas a questao seria que eu preciso carregar no componente o arquivo de retorno da distribuicaodfe onde contem todas as informações do doczip.

    <docZip NSU="000000000002253" schema="resNFe_v1.01.xsd">H4sIAAAAAAAEAIVSXU/CQBD8K6Tv9O62vZY2yyWIYDBYkRLFx1IOerEf2J4W/70HRQ1PvtzOTmZ2NpvDWjbRVPaORV424bHZDq1M60NISNu2duvYVb0nQCkj64d5nGaySKxfsfpf3Fdlo5MylVbvU9ZNUg0tZlN2mXHlP1S1TvKdatIkt1W5szc1KXfSEphmZkXhMADqUOoH1AdGTYwLnJtiIHgeB8Ycf+DyYACApPPgOFrci2sPkjOJx6gqpBjf9Kaz+Wr5GPfmq9sRko7G2UQwBoGJCALjNy7D4DabFEoABehTpw+wYjx03ZAOTBtSiqQToD5EU8GQnCt+modTbgdGcMK4VfvnJBd+/LZmT+931Vf04qiG5a+xbotRRD8mQzOqE5nMpUw3urqK9ULqhS77i71osFzUlRbsdCzXc7jLXfACJB2Naaz06S5mtR+IpPsC4hvkqtNzCwIAAA==

    Como proceder nesse caso? nao achei nenhuma funçao tipo anfe.webservice.loadfromfile por exemplo.

    Agradeço a ajuda. Abraços

     

     

  9. Olá amigos,

    Montei um programa para pegar os dados da nfe direto do site da receita federal e montar um arquivo xml(somente para importação dos dados) com as informações do HTML. Ate ai tudo bem consegui recuperar as informações e montar o arquivo xml.

    So que estou com um problema, pois na hora de gravar o xml o sistema este gerando outra chave de acesso e colocado dentro do arquivo´(anexo).

    i:= 0;
    linha:= '';
    linha:= memo1.Strings[0];
    nf.NFe.infNFe.ID:= trim(copy(linha,pos('=',linha)+1,length(linha))); aqui pego a chave da nota original.

    nf.GravarXML(diretorio+'\'+ copy(NF.NFe.infNFe.id,1,44)+'.xml'); aqui gravo o xml no diretorio, e salvo com o nome original.
     

    Minha pergunta é tem como contornar esse problema, pois já tenho a chave da nfe existente...

    chave correta da nfe é a mesma que esta no nome do arquivo: 35190401186408000162550010000399001000285142

    chave que o sistema gerou: 35190401186408000162550010000399001577940241

     

    como resolver isso. 

     

    Aguardo: 

    35190401186408000162550010000399001000285142.xml

  10. John Boa tarde

     

    Não precisa do arquivo ini o código que postei já resolve a questão na geração do qrcode. 

    Em 18/02/2019 at 16:34, picuuai disse:

    Prezados, boa tarde

    Estou tentando implementar o meu sistema para emissão de NFC-e em MG e estou me deparando com o seguinte erro:

    URL para o serviço "URL-QRCode" não encontrada na sessão "NFCe_MG_H" no arquivo "ACBrNFeServicos"

    no componente indiquei o caminho do iniservicos

    ACBrNFe1.Configuracoes.Arquivos.IniServicos:= extractfilepath(paramstr(0))+'ACBrNFeServicos.ini';

    Mas ainda não sei como eliminar o erro. o que mais preciso?

        ulr:= ACBrNFe1.GetURLQRCode(ide.cUF,
                                       ide.tpAmb,
                                       copy(infnfe.ID,4,44),
                                       dest.CNPJCPF,
                                       ide.dEmi,
                                       total.ICMSTot.vNF,
                                       Total.ICMSTot.vICMS,
                                       procNFe.digVal,
                                       strtofloat(versao.Text));
       infNFeSupl.qrCode:= ulr;
    //   infnfesupl.urlChave:=  'https://nfce.fazenda.mg.gov.br/portalnfce/sistema/qrcode.xhtml';

    Agradeço a atenção.

    Então o código que postei e somente para emissão online. Mas funcionou. Por algum motivo o sistema não reconhece o arquivo ini que carreguei e está gerando o erro com a função do acbr. Tudo está atualizado inclusive a biblioteca do acbr  

  11. Ola big Wings

    Esta tudo configurado certinho.. versao 400 e o qrcode 200

    mas eu consegui resolver de outra forma..

    segue codigo

      ACBrNFe1.NotasFiscais.GerarNFe;
      VersaoQrCode := acbrnfe1.Configuracoes.Geral.VersaoQRCode;
      cCSC := edtToken.Text;

      cIdCSC := edtIdToken.Text;

      sCSC := cIdCSC + cCSC;

          sEntrada := copy(ACBrNFe1.NotasFiscais.Items[0].NFe.infNFe.ID,4,44)+'|'+ VersaoQrCodeToStr(VersaoQrCode)+  '|'  +
          TpAmbToStr(ACBrNFe1.NotasFiscais.Items[0].NFe.Ide.tpAmb) + '|';

       hash:= AsciiToHex(SHA1(sEntrada + sCSC));
       ACBrNFe1.NotasFiscais.Items[0].NFe.infNFeSupl.qrCode:= 'https://nfce.fazenda.mg.gov.br/portalnfce/sistema/qrcode.xhtml'+
                           copy(ACBrNFe1.NotasFiscais.Items[0].NFe.infnfe.ID,4,44)+'|'+
                           '2'+'|'+
                           TpAmbToStr(ACBrNFe1.NotasFiscais.Items[0].NFe.ide.tpAmb)+'|'+
                          // datetostr(ide.dEmi)+'|'+
                           edtIdToken.Text+'|'+
                           edtToken.Text+'|'+
                           hash;

     

  12. Prezados, boa tarde

    Estou tentando implementar o meu sistema para emissão de NFC-e em MG e estou me deparando com o seguinte erro:

    URL para o serviço "URL-QRCode" não encontrada na sessão "NFCe_MG_H" no arquivo "ACBrNFeServicos"

    no componente indiquei o caminho do iniservicos

    ACBrNFe1.Configuracoes.Arquivos.IniServicos:= extractfilepath(paramstr(0))+'ACBrNFeServicos.ini';

    Mas ainda não sei como eliminar o erro. o que mais preciso?

        ulr:= ACBrNFe1.GetURLQRCode(ide.cUF,
                                       ide.tpAmb,
                                       copy(infnfe.ID,4,44),
                                       dest.CNPJCPF,
                                       ide.dEmi,
                                       total.ICMSTot.vNF,
                                       Total.ICMSTot.vICMS,
                                       procNFe.digVal,
                                       strtofloat(versao.Text));
       infNFeSupl.qrCode:= ulr;
    //   infnfesupl.urlChave:=  'https://nfce.fazenda.mg.gov.br/portalnfce/sistema/qrcode.xhtml';

    Agradeço a atenção.

×
×
  • 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.