Página 1 de 24

Consulta optante do simples online

Enviado: 19 Fev 2016 16:44
por Daniel
Ola pessoal, gostaria da ajuda de vocês para tentar fazer esta consulta, só falta enviar os dados para o site,
tentei mais não estou conseguindo

Código: Selecionar todos

#include "minigui.ch"
#include "directry.ch"
#include "Fileio.ch"
#include "xhb.ch"
**********************************************
FUNCTION Main()
   Public cUrl := "http://www8.receita.fazenda.gov.br/simplesnacional/aplicacoes/atbhe/consultaoptantes.app/consultaropcao.aspx?"
   Public cUrlC:= "http://www8.receita.fazenda.gov.br/simplesnacional/aplicacoes/atbhe/consultaoptantes.app/Captcha/Inicializa.ashx"
   Public cCaptcha, cCnpj, cStringCookie, cViewState, cEeventValidation, cHiddenField

   LOAD WINDOW F_Simples
   Captcha()
   F_Simples.Center
   F_Simples.Activate

***********************************************
Function Consulta()
	cCaptcha:= F_Simples.text_2.Value
	cCnpj   := Tira_Mascara(F_Simples.text_1.value)

	oHttp:=TipClientHttp():new( cURL )
	oHttp:open()
	cHtml := oHttp:readAll()
	oHttp:close()
	memowrit('site.txt', cHtml)
	nIni:= At('id="__VIEWSTATE" value=',  cHtml) + 24
	cHtml1:= SubStr( cHtml, nIni)
   nFim:= At(' />', cHtml1) - 1
	cViewState:= SubStr(cHtml, nIni, nFim)

	nIni1:= At('id="__EVENTVALIDATION" value="',  cHtml) + 30
	cHtml1:= SubStr( cHtml, nIni1)
   nFim1:= At(' />', cHtml1) - 1
	cEeventValidation:= SubStr(cHtml, nIni1, nFim1)

   nIni2:= At('ctl00$ContentPlaceHolderConteudo$',  cHtml) + 33
	cHtml1:= SubStr( cHtml, nIni2)
   nFim2:= At('" type="text"', cHtml1) - 1
 	cHiddenField:= SubStr(cHtml, nIni2, nFim2)

    cRet:= MicrosoftPost()
	 F_Simples.Edit_1.Value:= cRet
    Return Nil

***************************************
Function Captcha()

	oHttp:=TipClientHttp():new( cURLc )
	oHttp:open()
	cHtml := oHttp:readAll()
	oHttp:close()
	memowrit('sitec.txt', cHtml)
	nIni1:= At('"Token":',  cHtml) + 7
   nFim1:= At('","Dados"', cHtml) - nIni1
   cStringCookie:= SubStr(cHtml, nIni1, nFim1)
   nIni:= At('Dados":"',  cHtml) + 8
   nFim:= At('","ContentType"', cHtml) - nIni
   txt_file:=fcreate("captcha.png", 0)
   if (!(ferror() = 0))
      MsgInfo("Erro de criacao do arquivo TESTE.TXT ::> " + ;
      Str(ferror(), 3, 0))
      quit
   endif
   cFile:= SubStr(cHtml, nIni, nFim)
   cFile:= hb_base64Decode(cFile, "image/png")
   fwrite(txt_file, cFile)
   fclose(txt_file)
   SetProperty ('F_Simples', 'image_1', 'Picture', 'Captcha.png')
   Return Nil

***************************************
Function Tira_Mascara(arg)
Local arg1:= "", x

	For x:= 1 To Len(arg)
   	If SubStr(arg, x, 1) != "/"
   		If SubStr(arg, x, 1) != "."
   			If SubStr(arg, x, 1) != "-"
   				If SubStr(arg, x, 1) != "("
   					If SubStr(arg, x, 1) != ")"
   						If SubStr(arg, x, 1) != " "
   							arg1+= SubStr(arg, x, 1)
   						EndIf
   					EndIf
   				EndIf
   			EndIf
   		EndIf
   	EndIF
   Next x
   Return(AllTrim(arg1))

***************************************
Function TrocaUtf8(cTexto)

 cTexto := StrTran( cTexto, "/", "%2F" )
 cTexto := StrTran( cTexto, "=", "%3D" )

 Return cTexto
***************************************
Function MicrosoftPost()
   LOCAL oServer, cRetorno := "*ERRO*", cMsgErro:= ''

   cParm:= [__EVENTTARGET%3D&] + ;
           [__EVENTARGUMENT%3D&] + ;
           [__VIEWSTATE%3D] +  TrocaUtf8(cViewState) + ;
           [&__EVENTVALIDATION%3D] + TrocaUtf8(cEeventValidation) + ;
           [&ctl00%24ContentPlaceHolderConteudo%24] + cHiddenField + [%3D] + cCnpj + ;
      	  [&ctl00%24ContentPlaceHolderConteudo%24HiddenField1%2F] + cHiddenField + ;
           [&ctl00%24ContentPlaceHolderConteudo%24hddServidorCaptcha%3D] + 'pro' + ;
           [&ctl00%24ContentPlaceHolderConteudo%24txtTexto_captcha_serpro_gov_br%3D] + cCaptcha + ;
           [&ctl00%24ContentPlaceHolderConteudo%24btnConfirmar%3D] + 'Consultar'

	TRY
   	oServer:= win_OleCreateObject( "MSXML2.ServerXMLHTTP.5.0")
	CATCH
   	cMsgErro:= "Serviço não mapeado"
   	RETURN(cMsgErro)
	END
	TRY
    	oServer:Open( "POST", cUrl , .F. )
    	oServer:SetRequestHeader("Content-Type", "application/x-www-form-urlencoded")
      oServer:SetRequestHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8")
     	oServer:SetRequestHeader("Accept-Encoding", "gzip, deflate" )
     	oServer:SetRequestHeader("Accept-Language", "pt-BR,pt;q=0.8,en-US;q=0.5,en;q=0.3")
     	oServer:SetRequestHeader("Connection", "keep-alive")
     	oServer:SetRequestHeader("Cookie", "captcha_token=" +  cStringCookie)
     	oServer:SetRequestHeader("Host", "www8.receita.fazenda.gov.br")
//    	oServer:SetRequestHeader("Referer", "http://www8.receita.fazenda.gov.br/SimplesNacional/Aplicacoes/ATBHE/ConsultaOptantes.app/ConsultarOpcao.aspx")
     	oServer:SetRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.152 Safari/537.36")
   CATCH
     	RETURN('Erro no open')
   END
   TRY
   //msgInfo(cUrl+cParm)
   	oServer:send(cParm)
   	oServer:WaitForResponse( 500 )
   CATCH
   	cMsgErro:= "Erro ao criar"
      RETURN(cMsgErro )
   END
   cRetorno:= (oServer:ResponseText() + cMsgErro)
	HB_MemoWrit("Reposta.txt", cRetorno, .f. )
  	RETURN(cRetorno)
/*
parte do site pelo firebug
Accept
text/html,application/xhtml+xml,application/xml;q=0.9,* /*;q=0.8
Accept-Encoding
gzip, deflate
Accept-Language
pt-BR,pt;q=0.8,en-US;q=0.5,en;q=0.3
Connection
keep-alive
Content-Type
application/x-www-form-urlencoded
Cookie
captcha_token=45615119762207542432998174142126158180112212181911714386
Host
www8.receita.fazenda.gov.br
Referer
http://www8.receita.fazenda.gov.br/simplesnacional/aplicacoes/atbhe/consultaoptantes.app/consultaropcao
.aspx?__EVENTTARGET=&__EVENTARGUMENT=&__VIEWSTATE=%2FwEPDwUKLTI4MDEzODYyMg9kFgJmD2QWAgIDD2QWAgICD2QW
AgIDD2QWBAIBD2QWAgIDDw8WAh4RQ29udHJvbFRvVmFsaWRhdGUFEjYzNTkxMzI1NzgwNDY5MzQ4OGRkAgMPDxYCHgdWaXNpYmxl
aGQWCAITD2QWBAIDDzwrABEBARAWABYAFgBkAgcPPCsAEQEBEBYAFgAWAGQCGQ9kFgICAw88KwARAQEQFgAWABYAZAIfD2QWAgID
DzwrABEBARAWABYAFgBkAiUPZBYCAgMPPCsAEQEBEBYAFgAWAGQYBQU7Y3RsMDAkQ29udGVudFBsYWNlSG9sZGVyQ29udGV1ZG8k
Z3JkUGVyaW9kb3NBbnRlcmlvcmVzU0lNRUkPZ2QFOmN0bDAwJENvbnRlbnRQbGFjZUhvbGRlckNvbnRldWRvJGdyZEFnZW5kYW1l
bnRvc09wY2FvU2luYWMPZ2QFOWN0bDAwJENvbnRlbnRQbGFjZUhvbGRlckNvbnRldWRvJEdyaWRWaWV3T3Bjb2VzQW50ZXJpb3Jl
cw9nZAUyY3RsMDAkQ29udGVudFBsYWNlSG9sZGVyQ29udGV1ZG8kZ3JkRXZlbnRvc0Z1dHVyb3MPZ2QFN2N0bDAwJENvbnRlbnRQ
bGFjZUhvbGRlckNvbnRldWRvJGdyZEV2ZW50b3NGdXR1cm9zU2ltZWkPZ2T920T0GuCQkl8xdxBEk0zVBiLNY06JbOckBYKTOSNRsQ
%3D%3D&__EVENTVALIDATION=%2FwEWBgLc6fWoAgL89J3qBALm7oLoAQK03OyQCwKI9eioCgLDwpOgAaQZXvAsQIyYcxZ4x%2FcSIf5qFytGdIkWWT
%2BCwr38M2bm&ctl00%24ContentPlaceHolderConteudo%24635913257804693488=02351488000127&ctl00%24ContentPlaceHolderConteudo
%24HiddenField1=635913257804693488&ctl00%24ContentPlaceHolderConteudo%24hddServidorCaptcha=pro&ctl00
%24ContentPlaceHolderConteudo%24txtTexto_captcha_serpro_gov_br=uztgyg&ctl00%24ContentPlaceHolderConteudo
%24btnConfirmar=Consultar
User-Agent
Mozilla/5.0 (Windows NT 10.0; rv:44.0) Gecko/20100101 Firefox/44.0

RETURN( NIL ) */

Código: Selecionar todos

*HMGS-MINIGUI-IDE Two-Way Form Designer Generated Code
*OPEN SOURCE PROJECT 2005-2015 Walter Formigoni http://sourceforge.net/projects/hmgs-minigui/

DEFINE WINDOW TEMPLATE AT 198 , 274 WIDTH 597 HEIGHT 300 TITLE 'Consulta Optante do Simples' MAIN

     DEFINE LABEL Label_1
            ROW    10
            COL    30
            WIDTH  40
            HEIGHT 15
            VALUE "CNPJ"
     END LABEL

     DEFINE TEXTBOX Text_1
            ROW    30
            COL    30
            WIDTH  160
            HEIGHT 30
            FONTNAME 'Arial'
            FONTSIZE 12
            INPUTMASK "99.999.999/9999-99"
     END TEXTBOX

     DEFINE LABEL Label_2
            ROW    10
            COL    200
            WIDTH  55
            HEIGHT 15
            VALUE "Captcha"
     END LABEL

     DEFINE TEXTBOX Text_2
            ROW    30
            COL    200
            WIDTH  120
            HEIGHT 30
            FONTNAME 'Arial'
            FONTSIZE 12
            MAXLENGTH 6
     END TEXTBOX

     DEFINE IMAGE Image_1
            ROW    30
            COL    330
            WIDTH  180
            HEIGHT 50
     END IMAGE

     DEFINE EDITBOX Edit_1
            ROW    100
            COL    20
            WIDTH  550
            HEIGHT 140
            VALUE ''
            FONTNAME 'Arial'
            MAXLENGTH  NIL
     END EDITBOX

     DEFINE BUTTON Button_1
            ROW    70
            COL    160
            WIDTH  100
            HEIGHT 28
            CAPTION "Consultar"
            FONTNAME 'Arial'
            ACTION { || Consulta()}
     END BUTTON

END WINDOW

Consulta optante do simples online

Enviado: 26 Fev 2016 12:33
por Daniel
Ufa ate que fim funcionou

Consulta optante do simples online

Enviado: 26 Fev 2016 17:23
por HASA
:-o
Olá Daniel, fiquei interessado por sua pesquisa, o fonte apresentado aqui está ok.
:)Pos
HASA

Consulta optante do simples online

Enviado: 26 Fev 2016 19:55
por JoséQuintas
Interessante.
Pelo que entendi, o link de consulta recebe a foto codificada e mais o texto digitado.
O truque é trocar a foto por outra já conhecida, com texto digitado já conhecido.

Consulta optante do simples online

Enviado: 27 Fev 2016 21:26
por Daniel
Hasa
nao o apresentado ai estava case proto, agora terminei ele,
e estou tentando a consulta do cnpj, este esta mais dificil pois tem que pegar os cookies

Consulta optante do simples online

Enviado: 01 Mar 2016 08:45
por fladimir
Daniel não entendi...

Vc postou um código com uma dificuldade depois relatou q funcionou...

Qual era o problema então?

Consulta optante do simples online

Enviado: 02 Mar 2016 11:05
por Daniel
Fladimir o erro era no script de envio estava usando variável tipo texto
ai troquei para vetor ai funcionou

Consulta optante do simples online

Enviado: 02 Mar 2016 13:37
por Wanderlei
OI Daniel, posta o exemplo corrigido aqui

Consulta optante do simples online

Enviado: 02 Mar 2016 17:28
por HASA
:))
Wanderlei o post está acima ok. Ainda não testei, mas... acho que é este com o SIMPLES.RAR
:)Pos
HASA

Consulta optante do simples online

Enviado: 02 Mar 2016 22:18
por fladimir
HASA ... o RAR contém os EXE funcionais... a questão é sobre a correção no código... o Daniel respondeu acima... agora tem q testar a resposta.

Consulta optante do simples online

Enviado: 03 Mar 2016 11:12
por HASA
:-O
Vixi, então aguardo também... estou na correria com outras obrigações e por isso nem abri o RAR.
:-o
HASA

Consulta optante do simples online

Enviado: 11 Mar 2016 23:53
por fladimir
????

Consulta optante do simples online

Enviado: 22 Mar 2016 16:05
por Daniel
Ola depois de alguns teste parece que esta funcionando blz
só a consulta do Cnpj que enrosca de vezes em quanto
segue os arquivos fontes

Consulta optante do simples online

Enviado: 26 Abr 2016 11:07
por Wanderlei
Bom Dia Daniel,
Consegui colocar sua função dentro do meu sistema para pegar os dados da empresa, será que vc consegui fazer este mesmo esquema para pegar os dados pelo CPF?

Consulta optante do simples online

Enviado: 26 Abr 2016 11:17
por janio
Wanderlei,

Vc pode disponibilizar como vc fez?

Como vc pegou os dados no .html?

Vc usa MiniGUI ou HwGUI? Se hwgui, como vc fez pra exibir o captcha (.png)?

Janio