Jump to content

Renato Gil

Membros
  • Content Count

    12
  • Joined

  • Last visited

Community Reputation

1 Neutral

About Renato Gil

  • Rank
    Novato
  • Birthday 11/30/1978

Profile Information

  • Sexo
    Masculino
  • Localização
    SP

Recent Profile Visitors

464 profile views
  1. Bom dia, Também tenho interesse no DUE. Alguma previsão de será desenvolvido ou não e tem data caso seja desenvolvido ? Obrigado
  2. Bom dia amigos, tem como saber se uma NFe foi assinada com certificado A1 ou A3 ??? tenho o número de série dos dois. Obrigado
  3. Boa tarde Valter, Não sei qdo, nem se vai, estar vai estar disponível no projeto ACBr uma vez que depende da avaliação dos mantenedores além de adequação para lazarus e delphi 7 até tokyo. Eu uso XE2 e está funcionando legal. Para uma solução imediata serve, agora para o projeto precisa de melhorias ....
  4. segue unit´s alteradas \acbr\Pacotes\Delphi\ACBrTCP\ACBr_TCP.dpk \acbr\Fontes\ACBrTCP\ACBrConsultaCNPJ.pas
  5. @Leonardo Quinino @Pablo Gimenez @junior carvalho Entrar no projeto ACBR, uma premissa é de ser "Compilável em Lazarus". : também acredito que isso seja necessário. Minha idéia com o post foi trazer uma luz para um problema comum. Sei que será necessário melhorias para fazer parte do projeto ACBr, mas já é um começo duvida na parte de incluir "IndyProtocols.dcp no projeto ACBr_TCP.bpl". : é necessário pois na quebra do captcha eu utilizo o componente idHTTP do indy. Se declararmos a unit IDHttp resultará em um erro de instalação dos pacotes por utilizar unit´s já incluídas em outra BLP. Fiz isso para uma solução imediata .. talvez isso possa ser melhorado. O Key2Captcha refere-se a chave de acesso fornecida pelo site www.2captcha.com que é o responsável pela quebra do recaptcha, isso é pago ? : SIM é pago, porém para a necessidade de onde trabalho o custo é viável, afinal, cada quebra vai sair por volta de R$ 0,0 o que é muito barato. Estou a disposição para quaisquer melhorias e explicações. Abraços
  6. Bom dia a todos. Consegui uma solução para a consulta do cnpj. Segue abaixo código. Seria interessante, se possível e viável, integrá-la nos padrões do ACBR e até distribuí-la nesse formato. na unit ACBrConsultaCNPJ foram feitas as seguintes modificações : function TACBrConsultaCNPJ.Consulta(const ACNPJ, ACaptcha: String; ARemoverEspacosDuplos: Boolean): Boolean; var Post: TStringStream; Erro: String; Resposta : TStringList; StrAux: String; sMun:String; CountCid:Integer; cCaptcha : String; begin Result := False; Erro := ValidarCNPJ( ACNPJ ) ; if Erro <> '' then raise EACBrConsultaCNPJException.Create(Erro); Clear; Post:= TStringStream.Create(''); try try HTTPGet('https://www.receita.fazenda.gov.br/pessoajuridica/cnpj/cnpjreva/cnpjreva_solicitacao2.asp'); except on e : exception do raise EACBrConsultaCNPJException.Create('Erro ao conectar no site da receita.'+#13#10+E.Message); end; cCaptcha := QuebraCaptcha; if ( cCaptcha ) = '' then raise EACBrConsultaCNPJException.Create('Erro na quebra do captcha'); Post.WriteString('cnpj='+OnlyNumber(ACNPJ)+'&'); Post.WriteString('g-recaptcha-response='+ cCaptcha +'&'); Post.WriteString('origem=comprovante&'); Post.WriteString('search_type=cnpj&'); Post.WriteString('submit1=Consultar'); Post.Position:= 0; HttpSend.Clear; HttpSend.Document.Position:= 0; HttpSend.Document.CopyFrom(Post, Post.Size); HTTPSend.MimeType := 'application/x-www-form-urlencoded'; HTTPPost('https://www.receita.fazenda.gov.br/pessoajuridica/cnpj/cnpjreva/valida_recaptcha.asp'); Erro := VerificarErros(RespHTTP.Text); -------------------- function TACBrConsultaCNPJ.QuebraCaptcha:String; var sl :TStrings; IdHTTP : TIdHTTP; cID: string; nConta: Integer; begin sl := TStringList.Create; IdHTTP := TIdHTTP.Create; try sl.Text := 'body='+( sl.Text ); sl.Insert( 0, 'method=userrecaptcha'); sl.Insert( 0, 'key='+FKey2Captcha); // nova propriedade criada no componente ACBrConsultaCNPJ do tipo string sl.Insert( 0, 'googlekey=6LcT2zQUAAAAABRp8qIQR2R0Y2LWYTafR0A8WFbr'); sl.Insert( 0, 'pageurl=https://www.receita.fazenda.gov.br/pessoajuridica/cnpj/cnpjreva/cnpjreva_solicitacao2.asp'); try IdHTTP.Request.CustomHeaders.Clear; IdHTTP.Request.Clear; cID := IdHTTP.Post( 'http://2captcha.com/in.php', sl ); if Copy( cID,1,2 ) <> 'OK' then Abort; except Abort; end; cID := copy( cID, 4, 100 ); nConta := 0; try IdHTTP.Request.CustomHeaders.Clear; IdHTTP.Request.Clear; Result := ''; Sleep(10000); // aguardar 10 segundos repeat Sleep(5000); // aguardar 5 segundo para cada tentativa Result := IdHTTP.Get( 'http://2captcha.com/res.php?key='+FKey2Captcha+'&action=get&id='+cID ); Inc( nConta ); if (nConta >= 15) then Abort; until (Copy( Result, 1, 2 ) = 'OK'); Result := Copy( Result, 4, 1000 ); except Result := ''; end; finally sl.Free; IdHTTP.Free; end; end; ------------------------------- Também foi necessário incluir o IndyProtocols.dcp no projeto ACBr_TCP.bpl. O Key2Captcha refere-se a chave de acesso fornecida pelo site www.2captcha.com que é o responsável pela quebra do recaptcha. Sucesso a todos !! Fiquem com Deus.
  7. Boa tarde Dimas, Realmente o google faz isso, consegui um "quebrador" de captcha que funciona www.2captcha.com (bom preço e quebra o recaptcha). Porém estou implementando a rotina na unit do TACBrConsultaCNPJ.Consulta e não estou tendo sucesso. Segue abaixo código: Post.WriteString('cnpj='+OnlyNumber(ACNPJ)+'&'); Post.WriteString('g-recaptcha-response='+Trim( cCaptcha )+'&'); Post.WriteString('origem=comprovante&'); Post.WriteString('search_type=cnpj'); Post.WriteString('submit1=Consultar&'); Post.Position:= 0; HttpSend.Clear; HttpSend.Document.Position:= 0; HttpSend.Document.CopyFrom(Post, Post.Size); HTTPSend.MimeType := 'application/x-www-form-urlencoded'; HTTPPost('https://www.receita.fazenda.gov.br/pessoajuridica/cnpj/cnpjreva/valida_recaptcha.asp'); Em RespHTTP.Text o seguinte: <script language="JavaScript"> function proxima(link) { location.replace(link); return false; } function carrega(vobjeto) { for (var va = 0 ; va < document.forms[0].elements.length; va++) { if (document.forms[0].elements[va].name == vobjeto) { document.forms[0].elements[va].focus(); } } return false; } function volta(vvolta) { history.go(vvolta*-1); return false; } function SaltaCampo (campo, prox, tammax, teclapres) { var tecla = teclapres.keyCode; vr = campo.value; tam = vr.length; if (tecla != 0 && tecla != 10 && tecla != 24) if (tam == tammax) prox.focus(); } </script> <html> <head> <script src="https://www.google.com/recaptcha/api.js?hl=pt-BR" async defer></script> <title>Emissão de Comprovante de Inscrição e de Situação Cadastral</title> </head> <form id="theForm" action="valida_recaptcha.asp" method="post" name="frmConsulta"> <table border="0" cellspacing="0" cellpadding="0" width="100%"> <tr> <td> <font color="#000080" face="Arial"> <b>Emissão de Comprovante de Inscrição e de Situação Cadastral</b></font> </td> </tr> </table> <hr size="1"> <p><font face="Arial" size="2"> <b>Contribuinte,</b></p> <p>Esta página tem como objetivo permitir a emissão do Comprovante de Inscrição e de Situação Cadastral de Pessoa Jurídica pela Internet em consonância com a <a target="_blank" href="http://normas.receita.fazenda.gov.br/sijut2consulta/link.action?idAto=73658"> <font face="Arial" size="2"> Instrução Normativa RFB nº 1.634, de 06 de maio de 2016.</a> <p align="left"> <font size="2" face="arial"> Digite o número de CNPJ da empresa e clique em &quot;Consultar&quot;. <input type="button" name="captchaSonoro" id="captchaSonoro" onClick="javascript:window.location.replace('Cnpjreva_solicitacao3.asp');" value="Captcha Sonoro"/> </font> </p> <input type="hidden" name="origem" value="comprovante"> <table border="0" cellspacing="1"> <tr> <td valign="top"> <font face="Arial" size="2"> <b>CNPJ :</b> <input tabIndex="1" name="cnpj" id="cnpj" maxlength="14" size="16" onKeyup="SaltaCampo(document.frmConsulta.cnpj, document.frmConsulta.txtTexto_captcha_serpro_gov_br, 14, event)" value="56723091000148"> </font> </td> </tr> <tr> <td> <div class="g-recaptcha" data-sitekey="6LcT2zQUAAAAABRp8qIQR2R0Y2LWYTafR0A8WFbr"></div> </td> </tr> <tr> <td valign="top" colspan="2"> </td> </tr> <tr> <td align="center" colspan="2"> <p><br> <input type="submit" value="Consultar" id=submit1 name=submit1> <!--<button class="g-recaptcha" data-sitekey="6LcT2zQUAAAAABRp8qIQR2R0Y2LWYTafR0A8WFbr" data-callback='onSubmit'>Consultar</button>--> <input type="hidden" name="search_type" value="cnpj"> <input type="reset" name="opcao" value="Limpar"> </p> </td> </tr> </table> </form> <!-- Div obrigatório. Nele será gravado o código necessário para funcionamento do flash--> <div id="container"></div> </body> </html> Pessoal, qq sugestão é bem vinda para solução deste problema que é comum.
  8. Bom dia a todos, Também tenho interesse no projeto do Reinf, estou na mesma situação do @Joceandro Perin, ou dar sequencia no projeto do @Leivio Fontenele ou iniciar um novo.
  9. 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.
  10. 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
  11. Na verdade é que na empresa onde trabalho é um lay-out muito, mas muito antigo (20 anos) e vão manter ele por ser utilizado em outros sistemas legados, então os layout de retorno do bradesco, santander (que na época era banespa), itaú e brasil não são os mesmos que os utilizados nos dias de hoje. Por isso precisaria controlar a versão do ACBR, porém essas units que criei para esses bancos deveriam ser controladas no projeto em questão, além da acbrboleto.pas e acbrboleto.dpr que é onde mora minha dúvida, porque essas units devem manter o sincronismo com o acbr e devem ser distribuídas para os desenvolvedores desse outro projeto também. Precisaria que o update fosse feito pelo svn do acbr e o commit no svn do meu projeto ....
  12. Boa tarde a todos, Estou utilizando o acbrBoleto e precisei realizar algumas modificações nos fontes para determinado projeto. Como consigo controlar isso sendo que também utilizo o svn para controle do meu projeto ??? Fiz alterações no acbrboleto.pas, acbrboleto.dpr (inclusão de novas units) e inclusão de novas unit. Obrigado a todos.
×
×
  • Create New...