Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Boa tarde Pessoal,

 

Estou tendo uma necessidade que creio outros colegas também terão: Saber se a empresa é optante pelo SIMPLES Nacional. Andei pesquisando e achei este  link, onde pode ser consultado se a empresa é optante ou não. http://www8.receita.fazenda.gov.br/simplesnacional/aplicacoes/atbhe/consultaoptantes.app/consultaropcao.aspx  

 

Daí pensei: porque não criar um componente tipo o consulta CNPJ, o Consulta SIMPLES Nacional.

Então resolvi por a mão na massa, mas estou tendo uma certa dificuldade: não estou conseguindo trazer a imagem do captcha. Vou anexar o que já fiz e se alguém puder ajudar.... Creio que será útil para todos nós.

 

Segue o que já fiz, baseado no ACBrConsultaCNPJ.

U_Principal.pasConsultaSIMPLES.dprU_Principal.txtACBrConsultaSIMPLES.pas

Desde já agradecido pela atenção.

 

Fraternal abraço.

 

César Arrais

U_Principal.pas

ConsultaSIMPLES.dpr

U_Principal.txt

ACBrConsultaSIMPLES.pas

Postado

Pois foi exatamente de onde retirei a idéia, só que não estou conseguindo pegar o endereço do captcha. 

Creio que o problema está aqui:

 

function TACBrConsultaSIMPLES.GetCaptchaURL : String ;
var
  URL, Html: String;
begin
  try
    Html := Self.RespHTTP.Text;
 
           StrEntreStr(Html, '<img id="img-captcha2" alt="Imagem captcha 2" src="', '">');
    FViewState := StrEntreStr(Html, '<input type=hidden name="__VIEWSTATE" id="__VIEWSTATE" value='+'''', '''');
 
    Result := StringReplace(URL, 'amp;', '', []);
  except
    on E: Exception do
    begin
      raise EACBrConsultaSIMPLESException.Create('Erro na hora de obter a URL do captcha.'+#13#10+E.Message);
    end;
  end;
end;
Postado (editado)

Já consegui fazer o download do captcha.

Agora vou implementar a consulta.

Valeu pela dica Juliomar.

Alguém disposto a ajudar?

Editado por César Arrais
Postado (editado)

César bom dia.

 

Não estou conseguindo pegar a url da imagem também, como você fez.

 

Também me interessa a consulta no sintegra, o que vc precisar estamos aí.

 

Abraços.

Editado por krepe
Postado (editado)

Já consegui buscar a imagem. Minha dificuldade agora está no POST da consulta. Informar os dados para a consulta e buscar os resultados.

Segue em anexo o que já fiz até agora.

Não entendo nada de java nem de asp, mas estou caminhando.
Toda ajuda é bem vinda.
 

 

ACBrConsultaSIMPLES.pas

Editado por César Arrais
Postado

Já consegui buscar a imagem. Minha dificuldade agora está no POST da consulta. Informar os dados para a consulta e buscar os resultados.

Segue em anexo o que já fiz até agora.

Não entendo nada de java nem de asp, mas estou caminhando.
Toda ajuda é bem vinda.
 

 

attachicon.gifACBrConsultaSIMPLES.pas

tente usar o firebug com o firefox:

https://addons.mozilla.org/pt-br/firefox/addon/firebug/

ele pode te ajudar muito na questão dos metodos get / post 

ele pode te mostrar os parametros necessarios

Postado

Obrigado datilas, instalei o firebug.

 

o parametro do cnpj sempre muda 
 
"ctl00$ContentPlaceHolderConteudo$635702438615689998"
 
a parte em negrito altera, para passar o cnpj tenho que pegar o nome do campo.
 
<input name="ctl00$ContentPlaceHolderConteudo$635702438615689998" maxlength="14" id="ctl00_ContentPlaceHolderConteudo_635702438615689998" tabindex="1" class="caixaTexto" style="width:95px;" type="text">
 
Se alguém puder dar uma luz, agradeço.
 
Abs.
Postado

Pessoal, estou meio off estes dias. Estou fora de casa, dando uma relaxada em Gramado/RS. Terça-feira volto à ativa com as baterias recarregadas e vamos ver se consigo terminar este componente. 

Postado

procure pela tag que contém isto no atributo name ctl00$ContentPlaceHolderConteudo$ e o atributo maxlength="14" provavelmente vai achar a tag e da para pegar o atributo name completo para passar para o request.

 

  • 2 semanas depois ...
Postado

Alguém conseguiu avançar? Travei na hora da consulta. Nao sei o que devo informar na função abaixo:

 

function TACBrConsultaSIMPLES.Consulta(const ACNPJ, ACaptcha: String;
  ARemoverEspacosDuplos: Boolean): Boolean;
var
  Post: TStringStream;
  Erro: String;
  Resposta : TStringList;
begin
  Erro := ACBrValidadorValidarCNPJ( ACNPJ ) ;
  if Erro <> '' then
     raise EACBrConsultaSIMPLESException.Create(Erro);

  Clear;
  Post:= TStringStream.Create('');
  try
    Post.WriteString('Consultar');
    Post.WriteString('ctl00_ContentPlaceHolderConteudo_'+FSessao+'='+OnlyNumber(ACNPJ)+'&');
    Post.WriteString('ctl00_ContentPlaceHolderConteudo_txtTexto_captcha_serpro_gov_br='+Trim(ACaptcha)+'&');

    Post.WriteString('opcao=Limpar&');
    Post.WriteString('submit=Consultar&');
    Post.WriteString('search_type=cnpj');
    Post.Position:= 0;

{

http://www8.receita.fazenda.gov.br/SIMPLESNACIONAL/APLICACOES/ATBHE/CONSULTAOPTANTES.APP/WebResource.axd?d=ATCgXPXk_gbQN-SGRAo957kIm-2Gy56XUQBevvJToDAxMcGVUNbxUgWFrt6JFo6vVbYc2RVxzkdzKEH_SJCMJv8DUgGt1QKbPkAW-phLKFc1&t=635170580427401264

<script src="/SIMPLESNACIONAL/APLICACOES/ATBHE/CONSULTAOPTANTES.APP/WebResource.axd?d=CBKsGwIRkIfXWC1K4WmgwnsCrSIhzP52ZzDkKuc50-uS4h0gpuSPkuQRfMxfemPIOhN710MyWFuTahunxrNFAwQjGrhGKCWos2sgX-CkmGM1&amp;t=635068628482349769" type="text/javascript"></script>
<script src="/SIMPLESNACIONAL/APLICACOES/ATBHE/CONSULTAOPTANTES.APP/WebResource.axd?d=CBKsGwIRkIfXWC1K4WmgwnsCrSIhzP52ZzDkKuc50-uS4h0gpuSPkuQRfMxfemPIOhN710MyWFuTahunxrNFAwQjGrhGKCWos2sgX-CkmGM1&amp;t=635068628482349769" type="text/javascript"></script>
<script src="/SIMPLESNACIONAL/APLICACOES/ATBHE/CONSULTAOPTANTES.APP/WebResource.axd?d=1kjdyw1HYJyqkkIOzczA_VqJa4nlLwJ1DqDPRGXDnUPDeamSQ_S5GE6mQxg6yglvSy3qj3UE_9xU32LfU76kW7AoMQu-O1H7LTjI_jTPwXc1&amp;t=635170580768019343" type="text/javascript"></script>
<script src="/SIMPLESNACIONAL/APLICACOES/ATBHE/CONSULTAOPTANTES.APP/WebResource.axd?d=bxcSQBG970UytOA_qY2uIpSk-6HatekNYTiVn-57t_K4f6u5N1BGPLbrYCT_3z378oNcERJfT4Wi3jTX5-JFrO3pZB64n0z1e8pdu4Uhrv81&amp;t=635170580362868269" type="text/javascript"></script>


<script src="/SIMPLESNACIONAL/APLICACOES/ATBHE/CONSULTAOPTANTES.APP/WebResource.axd?d=Iy2iZAPv8y_CWqAD3SsLsSFBPxS6k6YE8n8uMrdjan2V7Sk3z3qL8-RsLQw-yKV2k0-xoyDtKe-RrmyEWDsghACd7KvkQOEqgLVIG6BzVHw1&amp;t=635068628482349769" type="text/javascript"></script>
<script src="/SIMPLESNACIONAL/APLICACOES/ATBHE/CONSULTAOPTANTES.APP/WebResource.axd?d=Iy2iZAPv8y_CWqAD3SsLsSFBPxS6k6YE8n8uMrdjan2V7Sk3z3qL8-RsLQw-yKV2k0-xoyDtKe-RrmyEWDsghACd7KvkQOEqgLVIG6BzVHw1&amp;t=635068628482349769" type="text/javascript"></script>


}
    HttpSend.Clear;
    HttpSend.Document.Position:= 0;
    HttpSend.Document.CopyFrom(Post, Post.Size);
    HTTPSend.MimeType := 'application/x-www-form-urlencoded; charset=utf-8';
    HTTPPost('http://www8.receita.fazenda.gov.br/SIMPLESNACIONAL/APLICACOES/ATBHE/CONSULTAOPTANTES.APP/WebResource.axd?d='+FViewState+'&amp;t='+FSessao);
    Erro := VerificarErros(RespHTTP.Text);

    if Erro = '' then
    begin
      Result:= True;
      Resposta := TStringList.Create;
      try
        Resposta.Text := StripHTML(RespHTTP.Text);
        RemoveEmptyLines( Resposta );

        //DEBUG:
        //Resposta.SaveToFile('d:\SIMPLES.txt');


        FDataConsulta                    := LerCampo(Resposta,'Data da consulta');
        FCNPJ                            := LerCampo(Resposta,'CNPJ');
        FRazaoSocial                    := LerCampo(Resposta,'Nome Empresarial');
        FSituacaoSIMPLESNacional        := LerCampo(Resposta,'Situação no Simples Nacional');
        FSituacaoSIMEI                    := LerCampo(Resposta,'Situação no SIMEI');
        FSituacaoSIMPLESNacionalAnterior:= LerCampo(Resposta,'Opções pelo Simples Nacional em Períodos Anteriores');
        FSituacaoSIMEIAnterior            := LerCampo(Resposta,'Opções pelo SIMEI em Períodos Anteriores');
        FAgendamentosSIMPLESNacional    := LerCampo(Resposta,'Agendamentos no Simples Nacional');
        FEventosFuturosSIMPLESNacional    := LerCampo(Resposta,'Eventos Futuros no Simples Nacional');
        FEventosFuturosSIMEI            := LerCampo(Resposta,'Eventos Futuros no SIMEI');
      finally
        Resposta.Free;
      end ;

      if Trim(FRazaoSocial) = '' then
        raise EACBrConsultaSIMPLESException.Create('Não foi possível obter os dados.');

      if ARemoverEspacosDuplos then
      begin
        FRazaoSocial := RemoverEspacosDuplos(FRazaoSocial);
      end;
    end
    else
    begin
      Result:= False;
      raise EACBrConsultaSIMPLESException.Create(Erro);
    end;
  finally
    Post.Free;
  end;
end;

 

Segue em anexo o que já consegui avançar.

 

ACBrConsultaSIMPLES.pas

Postado

ja tentou fazer o post sem passar esses paramentros:

    Post.WriteString('__EVENTTARGET=');
    Post.WriteString('__EVENTARGUMENT=');
    Post.WriteString('__VIEWSTATE='+FViewState);
    Post.WriteString('__EVENTVALIDATION='+FEventValidation);

  • 1 mês depois ...
Postado

Bom dia César,

  Estou consultando o simples nacional também. Você conseguiu pegar o retorno correto do post ?? teve mais algum avanço nessa unit ? posso ajudar de alguma forma ?

Obrigado

Postado

Cesar, alterando a linha como abaixo não dá erro na consulta, porém mostra como se a requisição tivesse sido enviada sem cnpj e sem o captcha.

    HTTP.HTTPSend.MimeType := 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'; //'application/x-www-form-urlencoded';

Bom, vou tentando por aqui. Qualquer novidade aviso.

Abraços e obrigado.

  • 1 mês depois ...
  • 2 semanas depois ...
  • Este tópico foi criado há 2172 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • 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.