Renato Gil
Membros-
Total de ítens
14 -
Registro em
-
Última visita
Últimos Visitantes
1.309 visualizações
Renato Gil's Achievements
-
Bom dia pessoa, fiz um teste aqui e aparentemente está funcionando. na unit acbrconsultacnpj.pas alterei as seguintes linhas: // HTTPGet('https://www.receita.fazenda.gov.br/pessoajuridica/cnpj/cnpjreva/captcha/gerarCaptcha.asp'); // GetCaptchaURL HTTPGet('https://servicos.receita.fazenda.gov.br/Servicos/cnpjreva/captcha/gerarCaptcha.asp'); // GetCaptchaURL e // HTTPSend.Headers.Add('Referer: https://www.receita.fazenda.gov.br/pessoajuridica/cnpj/cnpjreva/Cnpjreva_solicitacao3.asp'); // HTTPPost('https://www.receita.fazenda.gov.br/pessoajuridica/cnpj/cnpjreva/valida.asp'); HTTPSend.Headers.Add('Referer: https://servicos.receita.fazenda.gov.br/Servicos/cnpjreva/Cnpjreva_solicitacao3.asp'); HTTPPost('https://servicos.receita.fazenda.gov.br/Servicos/cnpjreva/valida.asp');
-
Também estou com problemas. O site de consulta foi alterado e a url acima está sendo direcionada para o novo site de consulta. Alguma solução ou opção para contorna esse problema ? Obrigado
-
Implementação do DUE do portal Siscomex
Renato Gil replied to softcom.wendel's tópico in Dúvidas Gerais sobre o ACBr
Bom dia, Também tenho interesse no DUE. Alguma previsão de será desenvolvido ou não e tem data caso seja desenvolvido ? Obrigado -
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
-
[ Correção ] - ACBrConsultaCNPJ "Consulta CNPJ"
Renato Gil replied to Pedro Henrique Oliveira's tópico in ACBrTCP
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 .... -
[ Correção ] - ACBrConsultaCNPJ "Consulta CNPJ"
Renato Gil replied to Pedro Henrique Oliveira's tópico in ACBrTCP
segue unit´s alteradas \acbr\Pacotes\Delphi\ACBrTCP\ACBr_TCP.dpk \acbr\Fontes\ACBrTCP\ACBrConsultaCNPJ.pas -
[ Correção ] - ACBrConsultaCNPJ "Consulta CNPJ"
Renato Gil replied to Pedro Henrique Oliveira's tópico in ACBrTCP
@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 -
[ Correção ] - ACBrConsultaCNPJ "Consulta CNPJ"
Renato Gil replied to Pedro Henrique Oliveira's tópico in ACBrTCP
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. -
[ Correção ] - ACBrConsultaCNPJ "Consulta CNPJ"
Renato Gil replied to Pedro Henrique Oliveira's tópico in ACBrTCP
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 "Consultar". <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. -
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.
-
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.
-
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
-
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 ....
-
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.