picuuai
-
Total de ítens
15 -
Registro em
-
Última visita
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Posts postados por picuuai
-
-
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/
-
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/ -
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..
-
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..?
-
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; -
37 minutos atrás, Juliomar Marchetti disse:
só olhar os fontes do nfe ou qualquer um dfe e tem lá como assinar dai tu usa e faz seu código
Então sou mei novato, e não entendi muito bem os fontes da assinatura
-
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... -
Ola pessoal
Consegui achar a solução..
ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.LerXMLFromFile(opendialog1.FileName);
depois é só fazer o for para ler os docszip.
Abraços.
- 1
-
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
-
Ola Italo, obrigado.
A questão é que nao disponibilizamos dos certificados digitais de todos os clientes, por isso a necessidade de uma forma alternativa de baixar os dados das notas para importação.
Aguardo ajuda.
-
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:
-
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 iniservicosACBrNFe1.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
-
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; -
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 iniservicosACBrNFe1.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.
Assinar XML Dctfweb
em Dúvidas Gerais sobre o ACBr
Postado
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');