SEFAZ implementa reCAPTHA

830 views
Skip to first unread message

Julio Martins

unread,
Oct 31, 2017, 10:24:25 AM10/31/17
to NFePHP
olá, 

Até o dia 20 de outubro era possível consultar Nota Fiscal eletrônica no site da SEFAZ com a digitação do CAPTCHA ou utilização de softwares que burlassem a digitação.
No final de semana do dia 21 de outubro, houve uma mudança que não permite mais a consulta por meio de “quebra de captcha”. A SEFAZ, agora, está utilizando o captcha do Google!

Método Antigo




Método Atual


estou preocupado, pois logo logo o link temporário ficará indisponível, e gostaria de saber se alguém possui uma solução, ideia de como realizar as consultas Burlando/Driblando o reCAPTCHA ou quem sabe obtendo o próprio Secret Key da SEFAZ?

Desde já obrigado a todos!

Carlos Alberto

unread,
Oct 31, 2017, 11:14:08 AM10/31/17
to NFePHP
O procedimento que você quer fazer não tem nos webservices?

Roberto Machado

unread,
Oct 31, 2017, 11:21:12 AM10/31/17
to nfe...@googlegroups.com
hahaha 😁😜
Boa sorte na tentativa de quebrar o ReCaptcha 

Roberto

Julio Martins

unread,
Oct 31, 2017, 11:33:28 AM10/31/17
to NFePHP
sei bem que não é tão simples assim, mas está aqui a função!
utilizo o link que a própria SEFAZ disponibiliza:

public function getDownloadXmlCaptcha() {

       
        if (session_status() == PHP_SESSION_NONE)
            session_start();

        // Passo 1
        //link temporário
        //Link Atual
        $cookie = sys_get_temp_dir() . DIRECTORY_SEPARATOR . 'cookies1.txt';
        $useragent = 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.2 (KHTML, like Gecko) Chrome/5.0.342.3 Safari/533.2';

        $ch = curl_init($url);
        curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);
        curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
        curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
        //$verbose = fopen('log.txt', 'w+');
        //curl_setopt($ch, CURLOPT_STDERR, $verbose);
        //curl_setopt($ch, CURLOPT_VERBOSE, TRUE);

        $html = curl_exec($ch);

        $document = new DOMDocument();
        $document->loadHTML($html);

        $viewstate = $document->getElementById('__VIEWSTATE')->getAttribute('value');
        $stategen = $document->getElementById('__VIEWSTATEGENERATOR')->getAttribute('value');
        $eventValidation = $document->getElementById('__EVENTVALIDATION')->getAttribute('value');
        $token = $document->getElementById('ctl00_ContentPlaceHolder1_token')->getAttribute('value');
        $captchaSom = $document->getElementById('ctl00_ContentPlaceHolder1_captchaSom')->getAttribute('value');

        preg_match('~<img id=\"ctl00_ContentPlaceHolder1_imgCaptcha\" src=\"(.*)\" ~', $html, $_captcha);

        $_SESSION['viewstate'] = $viewstate;
        $_SESSION['stategen'] = $stategen;
        $_SESSION['eventValidation'] = $eventValidation;
        $_SESSION['token'] = $token;
        $_SESSION['captchaSom'] = $captchaSom;

        $captcha = $_captcha[1];

        curl_close($ch);
        //fclose($verbose);

        return $captcha;
    }

e o erro é o seguinte:
Fatal error: Call to a member function getAttribute() on null in C:\xampp\htdocs\nfe\src\DownloadNFeSefaz.php on line 243

Edi Gomes

unread,
Oct 31, 2017, 9:52:18 PM10/31/17
to NFePHP
Eiita, hehehe,

A hora que o Roberto estava esperando, pra dizer eu avisei, rsrsrs

Minha alternativa aqui foi implementar o download direto da url da sefaz autorizadora ex. aqui em pe: http://nfe.sefaz.pe.gov.br/nfe-web/consNfe?tp=C o xml vem direto, e ele dá um "grau" com CSS,

Mas como eu já tinha falado, só deixo essa funcionalidade no meu ERP pra usar em caso de emergência, é mais uma ferramenta de suporte mesmo...

Não é muito viável usar isto em produção,

Edi.


Em terça-feira, 31 de outubro de 2017 11:24:25 UTC-3, Julio Martins escreveu:

André Severino

unread,
Nov 1, 2017, 12:27:12 AM11/1/17
to nfe...@googlegroups.com
Amigo eu consigo fazer isso que você procura, mas eu te enviei um e-mail durante o horário comercial em privado e não obtive resposta até o momento ou não chegou ainda, enfim... 

Estou no aguardo,
Abraço.

--
--
Você recebeu esta mensagem porque está inscrito no Grupo "NFePHP".
Para Postar: nfe...@googlegroups.com
Para Sair do Grupo: nfephp+unsubscribe@googlegroups.com
Link: http://groups.google.com.br/group/nfephp?hl=pt-BR
-------
Repositório: https://github.com/nfephp-org/nfephp
---
Você recebeu essa mensagem porque está inscrito no grupo "NFePHP" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para nfephp+unsubscribe@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.



--

Atenciosamente,

André da Silva Severino
Programador PHP e Desenvolvedor Web 
Criação de Sites, Sistemas/Softwares e Loja Virtual

celular      19 98847-3747
id nextel   35*74*14567 
site            www.andrewd.com.br



Roberto Machado

unread,
Nov 1, 2017, 6:28:00 AM11/1/17
to nfe...@googlegroups.com
É realmente espantoso ver o tempo que se perde com bobagens !

Roberto

Marcos Wilceki

unread,
Nov 6, 2017, 1:44:49 PM11/6/17
to NFePHP
Olá, existem alguma forma de fazer essa consulta utilizando o reCaptcha, tem algum exemplo ?
Para Sair do Grupo: nfephp+un...@googlegroups.com

Link: http://groups.google.com.br/group/nfephp?hl=pt-BR
-------
Repositório: https://github.com/nfephp-org/nfephp
---
Você recebeu essa mensagem porque está inscrito no grupo "NFePHP" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para nfephp+un...@googlegroups.com.

Para mais opções, acesse https://groups.google.com/d/optout.
Reply all
Reply to author
Forward
0 new messages