Página 1 de 1
Acesso ao Portal da NFE. Algo novo ?
Enviado: 21 Jul 2013 16:28
por billy1943
Pela rotina sugerida pelo nosso colega Fladimir, há mais de 2 anos atrás, seria possível acessar o Portal da NFE informando como
parâmetro a chave da NFE, com 44 caracteres, faltando apenas digitar o captcha já no Site da Receita.
Ocorre que o parâmetro não está aparecendo mais, tendo que ser digitado.
Não existe uma forma atual de fazermos esse acesso ?
Coloco aqui novamente o fonte do Fladimir:
Código: Selecionar todos
//////////////////////////////////////////////////////////////////////////////
/// NFe_ChecaPortal - Função para checar o numero do Danfe nos portais Nacional ou Estado de São Paulo
/// Esta função faz com que abra as paginas dos portais de consulta das NFes e preencha os campos das chaves automaticamente.
/// Assim será necessario digitar somente o Capcha
///
/// Parametros: f_cChave > Numero da chave (Danfe) no formato caracter
/// f_nPortal > Portal a abril - Formato Numerico
/// 1- Portal Nacional
/// 2- Portal do estado de São Paulo
FUNCTION NFe_ChecaPortal(f_cChave,f_nPortal)
local oOle, oOleDoc := Array(2)
Default f_nPortal to 1
If f_cChave = NIL
f_cChave := ""
Endif
oOle:= CreateObject("InternetExplorer.Application")
oOle:Visible := .t. // Apresenta o Browser
oOle:ToolBar := .f. // Desativa a barra de ferramentas
oOle:StatusBar := .f. // Desativa a barra de status
oOle:MenuBar := .f. // desativa a barra de menu
If f_nPortal == 1
oOle:Navigate2("http://www.nfe.fazenda.gov.br/portal/consulta.aspx?tipoConsulta=completa&tipoConteudo=XbSeqxE8pl8=" + f_cCHAVE)
Else
oOle:Navigate("http://nfe.fazenda.sp.gov.br/ConsultaNFe/consulta/publica/ConsultarNFe.aspx") // Abre o site
EndIf
WHILE oOle:Busy
inkey(.5)
END
If f_nPortal == 1
oOle := oOle:Document()
oOle:All:Item("ctl00$ContentPlaceHolder1$txtChaveAcessoCompleta",0):Value := f_cChave
Else
oOle := oOle:Document()
oOle:All:Item("ctl00$ContentMain$tbxIdNFe"):Value := f_cChave
EndIf
//SysRefresh()
return .t.
Acesso ao Portal da NFE. Algo novo ?
Enviado: 22 Jul 2013 10:14
por billy1943
Para facilitar a geração da rotina por quem tenha mais experiência no Harbour/XHarbour, que não é o meu caso, sugiro
após ver em funcionamento vários softwares pela Internet, que inclusive fazem consulta por atacado:
a) colocar a chave da NFE (44 caracteres) obtida pelo ERP, na área de transferência do Windows
b) poderia ser escolhida por meio de um Grid ou semelhante
c) uma vez já dentro do Internet Explorer no site da Receita Federal (Portal), bastava dar um <CONTROL> <V> e digitar o "capcha"
Como não reuni ainda condições dentro do Harbour/Xharbour, para elaborar a rotina, peço a ajuda aos colegas mais tarimbados
Acesso ao Portal da NFE. Algo novo ?
Enviado: 22 Jul 2013 15:15
por fladimir
Bily eu testei aki no meu software e ele abriu o Internet Explorer colou (CTRL+V) a chave no site do governo e eu apenas informei o captcha e deu certo...
Ai contigo não dá certo?
Acesso ao Portal da NFE. Algo novo ?
Enviado: 22 Jul 2013 16:37
por marcos.gurupi
Ao inves de abrir o internet explorer nao seria possivel executar isso em um Dialog ? Claro digitando o capcha.
Acesso ao Portal da NFE. Algo novo ?
Enviado: 22 Jul 2013 21:32
por billy1943
Oi, Fladimir e Marcos,
Obrigado pelas sugestões, que vou testar amanhã (23/07) pois de onde estou respondendo (notebook) não tenho a instalação do Harbour.
Só uma perguntinha ao Fladimir:
- você está compilando em qual versão do Harbour ?
Pergunto isto porque às vezes faz diferença o meio que usamos para obter o executável.
Acesso ao Portal da NFE. Algo novo ?
Enviado: 22 Jul 2013 21:56
por fladimir
Respondendo o Marcos dá pra abrir sim em um form mas isso já iria depender de qual lib vc usa, mas seria vc definir o form, dentro dele um objeto pra conter o browser e lá vc trabalha... depois vou ver isso na lib gráfica q uso e ver se disponibilizo no Downloads.
Bily, pra testar tua questão usei meu software console q esta compilado em Harbour 3.0.0 (Rev. 16951)
[]´s
Acesso ao Portal da NFE. Algo novo ?
Enviado: 23 Jul 2013 16:49
por billy1943
Oi, Fladimir,
Tentei novamente compilar ( e sem erros) o fonte em questão e notei o seguinte:
1. apesar de colocar o link que inclusive o Google aponta e que consta em seu fonte interno (vide abaixo)
Código: Selecionar todos
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>
Portal da Nota Fiscal Eletrônica
</title>
<!-- CSS -->
<link href="css/geral.css" rel="stylesheet" type="text/css" /><link href="css/classes.css" rel="stylesheet" type="text/css" /><link href="css/paginasInternas.css" rel="stylesheet" type="text/css" /><link href="css/estilo_visualizacao.css" rel="stylesheet" type="text/css" />
<!-- Javascript -->
<script src="scripts/jquery-latest.min.js" type="text/javascript"></script>
<script src="scripts/menu.js" type="text/javascript"></script>
<script src="scripts/mascaras.js" type="text/javascript"></script>
<script src="//www.receita.fazenda.gov.br/estatistica/estatistica.js" type="text/javascript"></script>
<meta http-equiv="cache-control" content="no-store, no-cache, must-revalidate, Post-Check=0, Pre-Check=0" /><meta http-equiv="pragma" content="no-cache" /><meta http-equiv="expires" content="0" />
</head>
<body onselectstart="return true;" >
<script type="text/javascript" src="//www.receita.fazenda.gov.br/barra-governo/barra-governo.js"></script>
<div id="divCentral">
<form method="post" action="consulta.aspx?tipoConsulta=completa&tipoConteudo=XbSeqxE8pl8%3d" onsubmit="javascript:return
o IE está abrindo a página anterior, como se o link informado tivesse sido o abaixo, onde estão as opções de consulta completa ou
resumida:
http://www.nfe.fazenda.gov.br/portal/principal.aspx
Outra coisa: o meu XHarbour está acusando erro na seguinte linha de seu fonte, tanto que a exclui:
Default f_nPortal := 1, f_cChave := ""
Por último, teria diferença se compilar pelo HMG ?
Acesso ao Portal da NFE. Algo novo ?
Enviado: 24 Jul 2013 00:28
por fladimir
Bily comparei o código q vc postou com o q eu estou usando e a única diferença é em
Código: Selecionar todos
oOle:Navigate("http://www.nfe.fazenda.gov.br/portal/consulta.aspx?tipoConsulta=completa&tipoConteudo=XbSeqxE8pl8=") //+ f_cCHAVE)
Com relação a onde esta dando erro no teu código em xHarbour pra eu usar o DEFAULT eu acrescento no inicio do PRG #include 'common.ch' e tb a sintaxe é DEFAULT variavel TO valor
[]´s
Acesso ao Portal da NFE. Algo novo ?
Enviado: 03 Out 2014 18:23
por billy1943
Oi, Fladimir
Depois de um largo lapso de tempo, voltei a mexer nesta rotina de acesso aos portais da NFE, que você desenvolveu, mas notei que eles não mais permitem passar a chave da NFE, restando-nos digitá-la ou passar por <Control> + "C", e depois <Control> + "V" já dentro do site das Receitas Federal ou Estaduais.
Assim, alterei um pouco a rotina que iniciamos neste tópico e que exponho novamente abaixo, para quem quiser aproveitá-la também, pois está funcionando bem até quando fechamos o navegador IE e que deveria voltar a rotina Main() que a chamou, quando apresenta a seguinte mensagem de erro fatal:
Código: Selecionar todos
"Error Base/1005 Classe NIL has no property VALUE
Arguments: < [1] = Type U [2] = Type C Val:
314161671810101010101010010101010101001 >"
Obs: A chave informada acima é fictícia.
Como podem ver no fonte, a pretensão seria voltar com outra chave e outro portal estadual, por exemplo.
Quando a rotina funcionar sem erro, minha ideia é pegar a chave das NFE e o Estado Emissor, no caso "SP", do arquivos de NFE emitidas e passá-los ao sistema.
Código: Selecionar todos
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// NFe_ChecaPortal - Função para checar o numero do Danfe nos portais Nacional ou Estado de São Paulo/Minas Gerais
/// Esta função faz com que abra as paginas dos portais de consulta das NFes e preencha os campos das chaves automaticamente.
/// Como os Portais não estão preenchendo com a chave da NFE passamos a mesma com "Control C" e digitamos somente o Capcha
///
/// Parâmetros: f_cChave > Numero da chave (Danfe) no formato caracter
/// f_nPortal > Portal a abrir - Formato Numerico
/// 1- Portal Nacional
/// 2- Portal do estado de São Paulo
/// 3- Portal do Estado de Minas Gerais
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
FUNCTION main() // os parâmetros serão informados aqui
local chave1 := " " // futuramente entrará como parâmetro da rotina
local portal := 1 // idem idem
do while .t.
set cursor on
nfe_checaportal(chave1,portal)
inkey(0)
if lastkey() == 27
exit
endif
enddo
setmode(25,80)
set cursor off
return
FUNCTION NFe_ChecaPortal(f_cChave, f_nPortal)
/// Se quiser testar chaves válidas, digitá-las nos portais, esta rotina está testando apenas o acesso aos mesmos
Local oOle, oOleDoc := Array(2)
local chave1 := f_cchave // para o portal Nacional
local chave2 := "35130600255889000158550040000376731016519440" // chave inválida - colocar uma chave válida para o Portal NFE de SP se quiser testar NFE daquela UF
local chave3 := "31140914314050000581550030000933581950935886" // chave inválida - colocar uma chave válida para o Portal NFE de MG se quiser testar NFE daquela UF
if f_nPortal = NIL
f_nPortal := 1
endif
If f_cChave = NIL
f_cChave := ""
else
@ 24,0
@ 24, 0 say "Nacional= 1, SP = 2 MG = 3"
@ 05,10 say "Chave1: " get chave1
@ 06,10 say "Chave2: " get chave2
@ 07,10 say "Chave3: " get chave3
clear gets
@ 10,10 say "Portal: " get f_nportal pict "9" valid str(f_nportal,1) $ "123"
read
if f_nportal == 1
f_cchave := chave1
elseif f_nportal == 2
f_cchave := chave2
else
f_cchave := chave3
endif
@ 15,10 say "Chave.: " get f_cchave
read
@ 24,0
Endif
oOle := CreateObject("InternetExplorer.Application")
oOle:Visible := .t. // Apresenta o Browser
oOle:ToolBar := .f. // Desativa a barra de ferramentas
oOle:StatusBar := .f. // Desativa a barra de status
oOle:MenuBar := .f. // desativa a barra de menu
If f_nPortal == 1 // Nacional
oOle:Navigate2("http://www.nfe.fazenda.gov.br/portal/consulta.aspx?tipoConsulta=completa&tipoConteudo=XbSeqxE8pl8=")
Elseif f_nPortal == 2 // SP
oOle:Navigate("https://nfe.fazenda.sp.gov.br/ConsultaNFe/consulta/publica/ConsultarNFe.aspx")
else // MG
oOle:Navigate("http://nfe.fazenda.mg.gov.br/consulta/Welcome.do;jsessionid=357F8A586FA7EFA4849563070E68289A.nfenode211")
EndIf
WHILE oOle:Busy
inkey(.5)
END
If f_nPortal == 1
oOle := oOle:Document()
oOle:All:Item("ctl00$ContentPlaceHolder1$txtChaveAcessoCompleta",0):Value := f_cChave
Else
oOle := oOle:Document()
oOle:All:Item("ctl00$ContentMain$tbxIdNFe"):Value := f_cChave
EndIf
setmode(25,80)
set cursor on
return .t.