Ir para conteúdo
  • Cadastre-se

dev botao

Recuperar XML junto ao SEFAZ


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

Recommended Posts

O meu amigo, você posta um componente que você colocou em seu projeto chamado BtnCertificadoClick(Self) e eu vou saber o que seu botão faz, em algum momento você informou a finalidade deste seu botão BtnCertificadoClick(Self), vou passar um trecho de código meu faltando partes e não vou explicar os componentes que eu coloquei e vamos ver se você compreende.

Obrigado pela ajuda.

Quando eu terminar o projeto para fazer Download do XML da NF-e eu posto os fontes aqui no fórum para quem precisar.

Att.

Carlos Fitl.

Link para o comentário
Compartilhar em outros sites

rsrssrsrs,

Amigo esquenta não.

A verdade é que você já tem código todo, falta mais nada não. Só não coloco o código por motivo obvio, ele já esta integrado a meu projeto, comigo não garra, tanto que passei. O espirito do fórum e justamente isto ajudar.

Se você achar necessário passo a Unit, você só não vai conseguir aproveitar. Mas este recupera XML via certificado digital e muito simples, sua simplicidade e muita, o recuperar XML sem o certificado erá complexo (muito mais difícil de ser desenvolvido), veja bem não estou dizendo que ela era pior pelo contrário muito mais difícil, este via certificado não precisa transformar o HTML em XML, só fazer o download mesmo, fiz nada d+.

Todo meu código foi postado.

Se vc precisar de mais alguma coisa só falar.

Link para o comentário
Compartilhar em outros sites

cara como vc faz a recuperação do xml com o certificado?

Já consigo simular o click no botão de download mas ele fica pedindo para salvar o xml em um diretorio, como você fez para passar via parametro o diretorio direto para salvar o xml, e como você fez para ele não ficar pedindo toda hora o certificado?

Att.

Carlos Fitl.

Você conseguiu baixar o componente? EmbeddedWB?

procedure TFrmPesquisaDanFe.EmbeddedWB1DocumentComplete(ASender: TObject;

const pDisp: IDispatch; var URL: OleVariant);

var

k, i: Integer;

Source, dest, texto: string;

textoNFe : IHTMLDocument2;

begin

if WebBrowser1.LocationURL = 'http://www.nfe.fazenda.gov.br/portal/consulta.aspx?tipoConsulta=completa&tipoConteudo=XbSeqxE8pl8=' then

begin

for k := 0 to WebBrowser1.OleObject.Document.Images.Length - 1 do

begin

Source := WebBrowser1.OleObject.Document.Images.Item(k).Src;

if (Source = 'http://www.nfe.fazenda.gov.br/scripts/srf/intercepta/captcha.aspx?opt=image') then

begin

dest := ExtractFilePath(ParamStr(0)) + 'captcha.gif';

DownloadFile(Source, dest);

end;

end;

Image1.Picture.LoadFromFile(dest);

BrnConsultar.Enabled :=True;

BtnCertificado.Enabled:=True;

//BtnCertificadoClick(Self);

end;

texto:='';

texto:=GetPlainTextOnBrowser(WebBrowser1);

if Pos('Requer certificado digital',TEXTO) <> 0 then

begin

BtnCertificadoClick(Self);

edtCaptcha.Clear;

end;

if WebBrowser1.LocationURL = 'https://www.nfe.fazenda.gov.br/portal/inexistente_completa.aspx' then

begin

MessageDlg('NF-e INEXISTENTE na base nacional, favor consultar esta NF-e no site da SEFAZ de origem.',mtError,[mbok],0);

BtnNovaConsultaClick(Self);

edtCaptcha.Clear;

end;

texto:='';

texto:=GetPlainTextOnBrowser(WebBrowser1);

if Pos('não está autorizado a fazer o download do documento.',TEXTO) <> 0 then

begin

MessageDlg('O CNPJ ou CPF do certificado não está autorizado a fazer o download do documento.',mtError,[mbok],0);

BtnNovaConsultaClick(Self);

edtCaptcha.Clear;

end;

Status.Panels[0].Text:='';

end;

Aqui que passo o Parâmetro no WebBrowser que vem junto ao Delphi não é possível:

procedure TFrmPesquisaDanFe.WebBrowser1FileDownload(Sender: TCustomEmbeddedWB;

pmk: IMoniker; pbc: IBindCtx; dwBindVerb, grfBINDF: Cardinal;

pBindInfo: PBindInfo; pszHeaders, pszRedir: PWideChar; uiCP: Cardinal;

var Rezult: HRESULT);

begin

DownloadFile1.DownloadNow(pszRedir,DIR_XML+'\'+CHAVE_TMP+'.xml'); // Aqui é um componente para fazer download, mas existe vários meios de fazer o download. Onde (pszRedir é arquivo xml , Diretório + nome do arquivo

Rezult := S_FALSE; /// A grande sacada esta aqui: S_FALSE significa que não pedir para a caixinha de onde salvar.

end;

Se você tiver dúvida volte a chamar.

T+

Cara Muito Obrigado Ajudou Muito!

Valeu!

Link para o comentário
Compartilhar em outros sites

rsrsrsrs,

Que isso...

Estamos ai pra isto.

O código em si é até do ACBR, mas passei bem uns 15 dias até achar este componente que salvou, aquela caixinha de pedir pra salvar o XML que matou.

E uma rotina simples de ser criada, e XML 100% correto, e funciona para todo cliente sendo que ele tem o certificado para emissão da nf-e.

Link para o comentário
Compartilhar em outros sites

ninguém tem idéia de como chegar no valor do "a" para efetuar o download do xml com o certificado?

a página de download é dessa forma:

https://www.nfe.fazenda.gov.br/PORTAL/d ... xE8pl8=&a=HASH

Esse hash parece ser sempre de 64 digítos, e com o link completo, somente abrindo ele no IE ele pede o certificado e faz o download independente da sessão.

Link para o comentário
Compartilhar em outros sites

  • 3 semanas depois ...

Eu tambem já fiz várias tentativas de baixar os xmls mais não consigo, ele n vem por inteiro, vem sempre faltando dados.

Estou precisando com uma certa urgência, e já n sei o q fazer.

Se alguem tiver alguma solução pra isso, eu agradeço..

Obrigado.

Link para o comentário
Compartilhar em outros sites

  • 1 mês depois ...
  • 11 meses depois ...

Pessoal

Este anexo foi compilado com a versão oficial do SVN, tem funcionado perfeitamente com todas as situações a que foi submetido. Se alguém descobrir alguma incompatibilidade ou falha, me comuniquem para que eu possa corrigir ou então se corrigirem, me enviem para merge.

Ederson Selvati

!   RecuperarXML (2).rar: Unexpected end of archive
Link para o comentário
Compartilhar em outros sites

Olá,

Amigo.

Existe uma DLL.

A DLL/Unit e no link: http://www.transym.com/download-sample-source-code.htm- Mas eu já desisti dela.

Vale a pena conferir.

Boa parte das pessoas que usam este recurso usam esta UNIT.

Agora se eu fosse você faria a recuperação do XML via Certificado Digital usando o mesmo RecuperaXML, uma vez que todos seus clientes já tem o certificado para emissão de NF-e.

Antes de investir seu dinheiro em algo que SEFAZ vai ficar sabendo e não demora sobre esta conversão de imagens, basta ela cair a qualidade da imagem e bau...bau esses aplicativos de conversão de imagem.

A recuperação via certificado digital você não vai ter problemas.

No inicio eu estava com problema usando IE, porque ele perguntava onde eu queria salvar o XML.

Agora eu o componente: Embedded Web Browser, emula o IE, e eu passo o parâmetro do diretório e não abre aquela caixinha de salvar como.

Você só coloca a chave e seleciona o certificado. Se o usuário não sair do sistema ele não pedi o certificado nas próximas.

Eu tenho maior prazer em fornecer mais informações sem cobrar nada.

Eu cheguei a fazer a conversão de imagem e no final achei mais profissional recuperar via certificado. No meu caso todos tem certificado e obrigado a ter.

Abraços,

ótimo dia.

vc poderia passar o código de como vc passou o parametro pro EmbeddedWB ? gostaria de saber como vc fez isso pra não abrir mais a caixa de salvar ou abrir

Link para o comentário
Compartilhar em outros sites

tenta esse:

sourceforge.net/projects/utilitarioserp/files/

ta uma bagunça mais funciona até hoje

dei uma olhada mais ainda não solucionou minha questão de como fazer não abrir a caixa de dialogo de salvamento no embeddedwb, o parceiro ali falou que tem que passar um parametro eu gostaria de saber onde e como faço isso

Link para o comentário
Compartilhar em outros sites

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