/** * Metodo para realizar a consulta * * @param string $cpf CPF * @param string $captcha CAPTCHA * @param string $stringCookie COOKIE * @throws Exception * @return array Dados da pessoa */ public static function consulta($cpf, $captcha, $stringCookie) { try { $arrayCookie = explode(';', $stringCookie); if (!Utils::isCpf($cpf)) { throw new Exception(); } $client = new Client(); $client->setHeader('Host', 'www.receita.fazenda.gov.br'); $client->setHeader('User-Agent', 'Mozilla/5.0 (Windows NT 6.1; rv:32.0) Gecko/20100101 Firefox/32.0'); $client->setHeader('Accept', 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'); $client->setHeader('Accept-Language', 'pt-BR,pt;q=0.8,en-US;q=0.5,en;q=0.3'); $client->setHeader('Accept-Encoding', 'gzip, deflate'); $client->setHeader('Referer', 'http://www.receita.fazenda.gov.br/aplicacoes/atcta/cpf/ConsultaPublica.asp'); $client->setHeader('Cookie', $arrayCookie[0]); $client->setHeader('Connection', 'keep-alive'); $param = array('txtCPF' => Utils::unmask($cpf), 'txtTexto_captcha_serpro_gov_br' => $captcha, 'Enviar' => 'Consultar'); $crawler = $client->request('POST', 'http://www.receita.fazenda.gov.br/aplicacoes/atcta/cpf/ConsultaPublicaExibir.asp', $param); $clConteudoDados = $crawler->filter('span.clConteudoDados'); return array('cpf' => Utils::unmask($cpf), 'nome' => trim(str_replace('Nome da Pessoa Física: ', '', $clConteudoDados->eq(1)->html())), 'situacao_cadastral' => str_replace('Situação Cadastral: ', '', $clConteudoDados->eq(2)->html()), 'digito_verificador' => str_replace('Digito Verificador: ', '', $clConteudoDados->eq(3)->html())); } catch (Exception $e) { throw new Exception('Aconteceu um erro ao fazer a consulta. Envie os dados novamente.'); } }
public function testCpfFalso() { $this->assertFalse(Utils::isCpf(FakerBR::cpf(false))); }
public function testIsCpf() { $this->assertEquals(true, Utils::isCpf('73258442398')); $this->assertEquals(true, Utils::isCpf('732.584.423-98')); $this->assertEquals(false, Utils::isCpf('3234423333')); }