Carlos Pais Posted February 15, 2017 at 01:13 PM Report Share #602509 Posted February 15, 2017 at 01:13 PM Boas Alguém já tem algum código , ou alguma ideia de como fazer a importação automática dos documentos existentes no portal do E-Fatura. Sem ser pelo ficheiro que eles lá tem da importação (e-fatura.csv), pois essa importação não separa os documentos por taxas de IVA .. Já tenho um código para fazer o login automático no site .. que é o seguinte: Try Dim IE IE = CreateObject("InternetExplorer.Application") IE.Visible = True IE.FullScreen = False IE.AddressBar = True IE.StatusBar = True IE.Toolbar = False ' IE.Width = Ambiente.Width - 200 ' IE.Height = Ambiente.Height - 200 IE.top = 100 IE.left = 100 IE.Navigate("https://faturas.portaldasfinancas.gov.pt/consultarDocumentosAdquirente.action") Do While IE.Busy System.Threading.Thread.Sleep(100) Loop IE.Navigate("https://faturas.portaldasfinancas.gov.pt/consultarDocumentosAdquirente.action") Do While IE.Busy System.Threading.Thread.Sleep(100) Loop IE.Document.All("username").InnerText = "???????????" ' Nº Contribuinte IE.Document.all("password").focus() IE.Document.All("password").InnerText = "?????????????" ' Senha do Portal IE.Document.All("sbmtLogin").Click() Catch ex As Exception MsgBox("Erro: Volte a Tentar", MsgBoxStyle.Critical) End Try 😵😴🥵🥴 No Desenvolvimento as Possibilidades são Infinitas 😵😴🥵🥴 , podemos é ficar doidos ... Link to comment Share on other sites More sharing options...
Carvalho2017 Posted May 24, 2017 at 11:42 AM Report Share #604595 Posted May 24, 2017 at 11:42 AM Em 15-02-2017 às 13:13, Carlos Pais disse: Boas Alguém já tem algum código , ou alguma ideia de como fazer a importação automática dos documentos existentes no portal do E-Fatura. Sem ser pelo ficheiro que eles lá tem da importação (e-fatura.csv), pois essa importação não separa os documentos por taxas de IVA .. Já tenho um código para fazer o login automático no site .. que é o seguinte: Try Dim IE IE = CreateObject("InternetExplorer.Application") IE.Visible = True IE.FullScreen = False IE.AddressBar = True IE.StatusBar = True IE.Toolbar = False ' IE.Width = Ambiente.Width - 200 ' IE.Height = Ambiente.Height - 200 IE.top = 100 IE.left = 100 IE.Navigate("https://faturas.portaldasfinancas.gov.pt/consultarDocumentosAdquirente.action") Do While IE.Busy System.Threading.Thread.Sleep(100) Loop IE.Navigate("https://faturas.portaldasfinancas.gov.pt/consultarDocumentosAdquirente.action") Do While IE.Busy System.Threading.Thread.Sleep(100) Loop IE.Document.All("username").InnerText = "???????????" ' Nº Contribuinte IE.Document.all("password").focus() IE.Document.All("password").InnerText = "?????????????" ' Senha do Portal IE.Document.All("sbmtLogin").Click() Catch ex As Exception MsgBox("Erro: Volte a Tentar", MsgBoxStyle.Critical) End Try Boas, Também tenho este problema. Alguém me pode ajudar? Obrigado. Link to comment Share on other sites More sharing options...
General Posted May 25, 2017 at 10:34 AM Report Share #604632 Posted May 25, 2017 at 10:34 AM 22 hours ago, Carvalho2017 said: Boas, Também tenho este problema. Alguém me pode ajudar? Obrigado. Já chegaste alguma conclusão? Link to comment Share on other sites More sharing options...
Carvalho2017 Posted May 25, 2017 at 10:54 AM Report Share #604634 Posted May 25, 2017 at 10:54 AM Creio que por esta via não conseguimos obter as faturas dos fornecedores. Por aqui, apenas obtê-los por via da exportação para excel. Eu pretendia o acesso direto a essa informação. Link to comment Share on other sites More sharing options...
General Posted May 25, 2017 at 01:15 PM Report Share #604636 Posted May 25, 2017 at 01:15 PM 2 hours ago, Carvalho2017 said: Creio que por esta via não conseguimos obter as faturas dos fornecedores. Por aqui, apenas obtê-los por via da exportação para excel. Eu pretendia o acesso direto a essa informação. string param = "username=MyUserName&password=123456"; string url = "https://lms.nust.edu.pk/portal/login/index.php"; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Method = "POST"; request.ContentLength = param.Length; request.ContentType = "application/x-www-form-urlencoded"; request.CookieContainer = new CookieContainer(); using (Stream stream = request.GetRequestStream()) { byte[] paramAsBytes = Encoding.Default.GetBytes(param); stream.Write(paramAsBytes, 0, paramAsBytes.Count()); } using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) { foreach (var cookie in response.Cookies) { var properties = cookie.GetType() .GetProperties() .Select(p => new { Name = p.Name, Value = p.GetValue(cookie) }); foreach (var property in properties) { Console.WriteLine ("{0}: {1}", property.Name, property.Value); } } } Isso é uma das coisas que tenho para fazer.. Se quiseres podemos partilhar informação. O que tenho aqui é um código que penso que poderás aproveitar para fazer login automatico ao site. Depois dentro podes fazer um post json para obteres a informação. Que achas trocarmos emails? Link to comment Share on other sites More sharing options...
General Posted May 25, 2017 at 01:17 PM Report Share #604637 Posted May 25, 2017 at 01:17 PM Just now, General said: string param = "username=MyUserName&password=123456"; string url = "https://lms.nust.edu.pk/portal/login/index.php"; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Method = "POST"; request.ContentLength = param.Length; request.ContentType = "application/x-www-form-urlencoded"; request.CookieContainer = new CookieContainer(); using (Stream stream = request.GetRequestStream()) { byte[] paramAsBytes = Encoding.Default.GetBytes(param); stream.Write(paramAsBytes, 0, paramAsBytes.Count()); } using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) { foreach (var cookie in response.Cookies) { var properties = cookie.GetType() .GetProperties() .Select(p => new { Name = p.Name, Value = p.GetValue(cookie) }); foreach (var property in properties) { Console.WriteLine ("{0}: {1}", property.Name, property.Value); } } } Isso é uma das coisas que tenho para fazer.. Se quiseres podemos partilhar informação. O que tenho aqui é um código que penso que poderás aproveitar para fazer login automatico ao site. Depois dentro podes fazer um post json para obteres a informação. Que achas trocarmos emails? No caso do site das finanças o url é : https://www.acesso.gov.pt/jsp/loginRedirectForm.jsp?&partID=EFPF Link to comment Share on other sites More sharing options...
Guest Posted May 25, 2017 at 02:16 PM Report Share #604639 Posted May 25, 2017 at 02:16 PM (edited) Bem, uma vez que não há webservice para consumir, e não há, parece fácil fazer uns ciclos para sacar todos os documentos. Uma iteração para o intervalo total, no fim do json está o número de documentos para esse intervalo. Controlar cada ciclo, para verificar se ultrapassou os 300 documentos. (se sim reduzir o intervalo) No fim, controlar o número total de documentos As linhas é o mesmo principio. Por cada documentId (dos totais), iterar para obter as linhas.(aqui a resposta não é apenas um json, mas uma página inteira onde teremos que localizar e ler o json array) bla bla bla ... Edited May 25, 2017 at 02:18 PM by Guest Link to comment Share on other sites More sharing options...
CarlosA Posted July 17, 2018 at 10:01 AM Report Share #611356 Posted July 17, 2018 at 10:01 AM Desculpem a intromissão, mas já alguém conseguiu programar algo que consiga importar as faturas registadas no efatura? Em caso afirmativo, é possível partilhar? Link to comment Share on other sites More sharing options...
General Posted July 17, 2018 at 02:08 PM Report Share #611360 Posted July 17, 2018 at 02:08 PM 4 hours ago, CarlosA said: Desculpem a intromissão, mas já alguém conseguiu programar algo que consiga importar as faturas registadas no efatura? Em caso afirmativo, é possível partilhar? É que linguagem de programação pretendes? 1 Report Link to comment Share on other sites More sharing options...
General Posted July 17, 2018 at 02:10 PM Report Share #611361 Posted July 17, 2018 at 02:10 PM Ainda não estou a trabalhar nisso mas a ideia que eu tenho é usar um robô tipo https://www.nuget.org/packages/Selenium.WebDriver para fazeres o login e guardares os cookies e depois fazer um post via AJAX com o pedido enviando essas mesmas credenciais. De certeza que irá funcionar. Já agora, alguém sabe como enviar a DMR (Declaração Mensal de Renumerações) programaticamente sem webservice? Link to comment Share on other sites More sharing options...
CarlosA Posted July 17, 2018 at 02:12 PM Report Share #611363 Posted July 17, 2018 at 02:12 PM 2 minutes ago, General said: É que linguagem de programação pretendes? Olá General, Idealmente, algo que não necessitasse de software suplementar/auxiliar. Se fosse em Excel VBA, então era espetacular! 1 Report Link to comment Share on other sites More sharing options...
General Posted July 17, 2018 at 02:19 PM Report Share #611365 Posted July 17, 2018 at 02:19 PM Just now, CarlosA said: Olá General, Idealmente, algo que não necessitasse de software suplementar/auxiliar. Se fosse em Excel VBA, então era espetacular! Em VBA não tenho... tenho a ideia em C# mas é programador? Link to comment Share on other sites More sharing options...
CarlosA Posted July 17, 2018 at 02:21 PM Report Share #611366 Posted July 17, 2018 at 02:21 PM Just now, General said: Em VBA não tenho... tenho a ideia em C# mas é programador? Não sou um programador. Faço algumas coisitas em VBA, apenas (autodidata). Link to comment Share on other sites More sharing options...
General Posted July 17, 2018 at 02:33 PM Report Share #611367 Posted July 17, 2018 at 02:33 PM 9 minutes ago, CarlosA said: Não sou um programador. Faço algumas coisitas em VBA, apenas (autodidata). Olá em VBA também podes fazer seguindo a minha ideia. http://www.tomasvasquez.com.br/forum/viewtopic.php?t=4250 Public Sub Untitled() Dim selenium As New SeleniumWrapper.WebDriver selenium.start "firefox", "http://agenciaweb.celesc.com.br:8080/" selenium.setImplicitWait 5000 selenium.open "/AgenciaWeb/autenticar/autenticar.do" selenium.type "name=sqUnidadeConsumidora", 26911222 selenium.click "id=CPJ" selenium.type "name=numeroDocumentoCNPJ", 03774688002107 selenium.clickAndWait "css=input.botao" selenium.type "name=senha", "SENHA" selenium.clickAndWait "css=input.botao" selenium.clickAndWait "link=» Histórico de Pagamento" selenium.clickAndWait "link=01/2016" selenium.click "id=download" selenium.stop Fazes Login Via selenium: Guardas os cookies do cookiecontainer Post com o pedido usandos os cookies. 1 Report Link to comment Share on other sites More sharing options...
CarlosA Posted July 18, 2018 at 11:21 AM Report Share #611380 Posted July 18, 2018 at 11:21 AM 20 hours ago, General said: Olá em VBA também podes fazer seguindo a minha ideia. http://www.tomasvasquez.com.br/forum/viewtopic.php?t=4250 Public Sub Untitled() Dim selenium As New SeleniumWrapper.WebDriver selenium.start "firefox", "http://agenciaweb.celesc.com.br:8080/" selenium.setImplicitWait 5000 selenium.open "/AgenciaWeb/autenticar/autenticar.do" selenium.type "name=sqUnidadeConsumidora", 26911222 selenium.click "id=CPJ" selenium.type "name=numeroDocumentoCNPJ", 03774688002107 selenium.clickAndWait "css=input.botao" selenium.type "name=senha", "SENHA" selenium.clickAndWait "css=input.botao" selenium.clickAndWait "link=» Histórico de Pagamento" selenium.clickAndWait "link=01/2016" selenium.click "id=download" selenium.stop Fazes Login Via selenium: Guardas os cookies do cookiecontainer Post com o pedido usandos os cookies. General, Agradeço o feedback. Estive a analisar a informação, mas como referi não ser um verdadeiro programador, naturalmente que também tenho dificuldades em implementar o que indicaste. Estava à procura de algo em Excel VBA, mas já mais elaborado. Obrigado, de qualquer modo. Link to comment Share on other sites More sharing options...
Kurt Kobin Posted February 10, 2019 at 11:55 AM Report Share #613704 Posted February 10, 2019 at 11:55 AM Em 17 de Julho de 2018 às 15:33, General disse: Olá em VBA também podes fazer seguindo a minha ideia. http://www.tomasvasquez.com.br/forum/viewtopic.php?t=4250 Public Sub Untitled() Dim selenium As New SeleniumWrapper.WebDriver selenium.start "firefox", "http://agenciaweb.celesc.com.br:8080/" selenium.setImplicitWait 5000 selenium.open "/AgenciaWeb/autenticar/autenticar.do" selenium.type "name=sqUnidadeConsumidora", 26911222 selenium.click "id=CPJ" selenium.type "name=numeroDocumentoCNPJ", 03774688002107 selenium.clickAndWait "css=input.botao" selenium.type "name=senha", "SENHA" selenium.clickAndWait "css=input.botao" selenium.clickAndWait "link=» Histórico de Pagamento" selenium.clickAndWait "link=01/2016" selenium.click "id=download" selenium.stop Fazes Login Via selenium: Guardas os cookies do cookiecontainer Post com o pedido usandos os cookies. Olá General, Estou a tentar importar dados do site do e-fatura via VBA(excel) e não estou a conseguir. Sou contabilista e era uma ferramenta essencial para poder brincar com os dados que estão no portal e os dados da empresa. Pode fornecer parte do código de autenticação ou dar pistas para o poder fazer? obrigado e é bom ver gente boa a partilhar conhecimentos. Kurt Link to comment Share on other sites More sharing options...
ad1967 Posted July 2, 2019 at 04:10 PM Report Share #615257 Posted July 2, 2019 at 04:10 PM Boa tarde, Acerca deste tema, alguém me pode ajudar na importação do ficheiro ? Tenho que fazer uma rotina para ir buscar as faturas registadas e nem sei por onde começar. Obrigado Link to comment Share on other sites More sharing options...
Carlos Pais Posted July 3, 2019 at 09:42 PM Author Report Share #615273 Posted July 3, 2019 at 09:42 PM 'Fazer Login no SITE das é-factura Dim Navigate = "https://www.acesso.gov.pt/jsp/loginRedirectForm.jsp?&partID=EFPF&authVersion=1&_csrf=45a2d3fb-e4b4-4ae2-ab5a-b98412a3113c&selectedAuthMethod=N&username=" & UtilizadorFiscalTextBox & "&password=" & PasswordFiscalTextBox & "" WebBrowser1.Navigate(Navigate) 'Importar Ficheiro (*.json) Try Dim dataInicioFilter = Format(DateTimePicker1.Value, "yyyy-MM-dd") Dim dataFimFilter = Format(DateTimePicker2.Value, "yyyy-MM-dd") Dim Navigate = "https://faturas.portaldasfinancas.gov.pt/json/obterDocumentosAdquirente.action?dataInicioFilter=" & dataInicioFilter & "&dataFimFilter=" & dataFimFilter & "&ambitoAquisicaoFilter=TODOS" ToolStripStatusLabel1.Text = Navigate WebBrowser1.Navigate(Navigate) Catch ex As Exception MsgBox("Não está a Ser possivel Carregar os Dados ... Tente Mais Tarde", vbCritical) End Try 😵😴🥵🥴 No Desenvolvimento as Possibilidades são Infinitas 😵😴🥵🥴 , podemos é ficar doidos ... Link to comment Share on other sites More sharing options...
ad1967 Posted July 10, 2019 at 12:12 PM Report Share #615333 Posted July 10, 2019 at 12:12 PM (edited) Boas, Tenho este código que estou a tentar fazer login e não estou a conseguir. Além me pode dar uma ajuda? Falhando o login, todo o resto é para esquecer e não dá para continuar. Já utilizei o "get" e agora experimentei com o "post"! <script> function eFaturas() { var jEFTUSER = document.CORPO.xEFTUSER.value ; var jEFTPASS = document.CORPO.xEFTPASS.value ; var jDATA1 = document.CORPO.xDATA1.value ; var jDATA2 = document.CORPO.xDATA2.value ; var jDATA1 = jDATA1.substring(6,10)+"-"+jDATA1.substring(3,5)+"-"+jDATA1.substring(0,2) ; var jDATA2 = jDATA2.substring(6,10)+"-"+jDATA2.substring(3,5)+"-"+jDATA2.substring(0,2) ; var url = "https://www.acesso.gov.pt/jsp/loginRedirectForm.jsp?&partID=EFPF&authVersion=1&_csrf=45a2d3fb-e4b4-4ae2-ab5a-b98412a3113c&selectedAuthMethod=N&username="+jEFTUSER+"&password="+jEFTPASS ; var xmlhttp = new XMLHttpRequest(); xmlhttp.open("POST", url, true); xmlhttp.send(); alert(typeof(xmlhttp)); // só para testes alert(xmlhttp.length); // só para testes var url = "https://faturas.portaldasfinancas.gov.pt/json/obterDocumentosAdquirente.action?dataInicioFilter="+jDATA1+"&dataFimFilter="+jDATA2+"&ambitoAquisicaoFilter=TODOS"; var xmlhttp = new XMLHttpRequest(); xmlhttp.open("POST", url, true); xmlhttp.send(); document.CORPO.xDADOS.value = JSON.parse(xmlhttp.responseText); } </script> Edited July 21, 2019 at 12:49 AM by thoga31 GeSHi Link to comment Share on other sites More sharing options...
pc.cesar Posted June 28, 2020 at 11:02 AM Report Share #618563 Posted June 28, 2020 at 11:02 AM Conseguiste resolver a questão da importação da efactura ? podes disponibilizar ? César Faria Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now