Ir para conteúdo

Pesquisar na Comunidade

Mostrando resultados para as tags ''cte''.

  • Pesquisar por Tags

    Digite tags separadas por vírgulas
  • Pesquisar por Autor

Tipo de Conteúdo


Todas as áreas do Fórum

  • Q&A Desenvolvimento
    • Perguntas e respostas rápidas
  • Desenvolvimento e Banco de Dados
    • HTML e CSS
    • Java
    • Javascript
    • .NET
    • PHP
    • Python
    • Ruby
    • Mobile
    • Ambientes de Desenvolvimento
    • Arquitetura e Métodos Ágeis
    • Banco de Dados
    • DevOps
    • Desenvolvimento de Games
    • E-Commerce e Pagamentos Online
    • SEO e Otimizações
    • WordPress
    • Algoritmos & Outras Tecnologias
  • Design e Produto
    • Fotografia
    • Photoshop
    • Design de interfaces e UX
    • Edição/Produção de Vídeos
    • Marketing Online
    • Desenho, Ilustração e 3D
  • Entretenimento e uso pessoal
    • Geral
    • Segurança & Malwares
    • Gadgets e wearable
    • Softwares e Apps
    • Entretenimento

Encontrar resultados em...

Encontrar resultados que...


Data de Criação

  • Início

    FIM


Data de Atualização

  • Início

    FIM


Filtrar pelo número de...

Data de Registro

  • Início

    FIM


Grupo


Google+


Hangouts


Skype


Twitter


deviantART


Github


Flickr


LinkedIn


Pinterest


Facebook


Site Pessoal


Localização


Interesses

Encontrado 1 registro

  1. Stopassolli

    Logar no site receita PHP + cURL

    Olá a todos. Preciso importar dados da NFe/CTe com a chave + captcha. A idéia é igual a sites como www.danfeonline.com.br que ao informar a chave + captcha, faz login e pega-se o HTML, filtrando as informações necessárias. Segue abaixo alguns códigos que estou tentando fazer este processo, sem sucesso até o momento - estou parado no problema de "sessão expirou". A idéia geral do código abaixo foi extraída da função para importar dados do CNPJ posta aqui no iMaster. getcaptcha.php $pasta_cookies = 'cookies/'; define('COOKIELOCAL', str_replace('\\', '/', realpath('./')).'/'.$pasta_cookies); define('HTTPCOOKIELOCAL', 'http://'.$_SERVER['SERVER_NAME'].str_replace(pathinfo($_SERVER['SCRIPT_FILENAME'],PATHINFO_BASENAME),'',$_SERVER['SCRIPT_NAME']).$pasta_cookies); // inicia sessão @session_start(); $cookieFile_fopen = HTTPCOOKIELOCAL.session_id(); $cookieFile = COOKIELOCAL.session_id(); $url = 'http://www.nfe.fazenda.gov.br/portal/consulta.aspx?tipoConsulta=completa&tipoConteudo=XbSeqxE8pl8%3d'; $ch = curl_init($url); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_COOKIEJAR, $cookieFile);// salva os dados de sessão curl_setopt($ch, CURLOPT_COOKIEFILE, $cookieFile);// atualiza os dados de sessão se estiverem desatualizados curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:8.0) Gecko/20100101 Firefox/8.0'); // não utilizar returntransfer , este script replica imagem captcha da receita sem necessidade de gravar a imagem $html = curl_exec($ch); curl_close($ch); // se tiver imagem , mostra if(!empty($html)){ $id_preciso_input = array( "__EVENTTARGET", "__EVENTARGUMENT", '__VIEWSTATE', '__VIEWSTATEGENERATOR', '__EVENTVALIDATION', 'ctl00_ContentPlaceHolder1_token', 'ctl00_ContentPlaceHolder1_captchaSom' ); $id_preciso_img = "ctl00_ContentPlaceHolder1_imgCaptcha"; $dom = new DOMDocument; @$dom->loadHTML($html); //PEGANDO VALORES DE INPUT foreach($dom->getElementsByTagName('input') as $link) { $id_input = $link->getAttribute('id'); if(in_array($id_input,$id_preciso_input)){ for($i=0;$i<count($id_preciso_input);$i++){ if($id_input==$id_preciso_input[$i]){ if($id_preciso_input[$i]=="ctl00_ContentPlaceHolder1_captchaSom"){$name_input = "captchaSom";} elseif($id_preciso_input[$i]=="ctl00_ContentPlaceHolder1_token"){$name_input = "token";} else{$name_input=$link->getAttribute('name');} $valor_input[$name_input] = $link->getAttribute('value'); } } } } if(!empty($valor_input)){$_SESSION["valor_input"] = $valor_input;} //PEGANDO A IMAGEM foreach($dom->getElementsByTagName('img') as $link) { $id_imagem = $link->getAttribute('id'); if($id_imagem==$id_preciso_img){ $valor = $link->getAttribute('src'); $texto = explode(",",$valor); $data = base64_decode($texto[1]); $img = imagecreatefromstring($data); header('Content-type: image/jpg'); imagejpeg($img); } } } processa.php <?php require('funcoes2.php'); $chave_acesso = $_POST['txtChaveAcessoCompleta']; $captcha = $_POST['txtCaptcha']; $dados_form = array( "__EVENTTARGET" => $_POST["__EVENTTARGET"], "__EVENTARGUMENT" => $_POST["__EVENTARGUMENT"], '__VIEWSTATE' => $_POST["__VIEWSTATE"], '__VIEWSTATEGENERATOR' => $_POST["__VIEWSTATEGENERATOR"], '__EVENTVALIDATION' => $_POST["__EVENTVALIDATION"], 'ctl00$ContentPlaceHolder1$token' => $_POST["token"], 'ctl00$ContentPlaceHolder1$captchaSom' => $_POST["captchaSom"], 'hiddenInputToUpdateATBuffer_CommonToolkitScripts' => $_POST["hiddenInputToUpdateATBuffer_CommonToolkitScripts"] ); // pega html resposta da receita $getHtmlCNPJ = getHtmlCNPJ($chave_acesso, $captcha, $dados_form); print_r($getHtmlCNPJ); ?> funcoes2.php <?php // define caminho absoluto e relativo para arquivo cookie $pasta_cookies = 'cookies/'; define('COOKIELOCAL', str_replace('\\', '/', realpath('./')).'/'.$pasta_cookies); define('HTTPCOOKIELOCAL', 'http://'.$_SERVER['SERVER_NAME'].str_replace(pathinfo($_SERVER['SCRIPT_FILENAME'],PATHINFO_BASENAME),'',$_SERVER['SCRIPT_NAME']).$pasta_cookies); // inicia sessão @session_start(); // função para pegar o que interessa function pega_o_que_interessa($inicio,$fim,$total){ $interesse = str_replace($inicio,'',str_replace(strstr(strstr($total,$inicio),$fim),'',strstr($total,$inicio))); return($interesse); } // função para pegar a resposta html da consulta pelo CPF na página da receita function getHtmlCNPJ($chave_acesso, $captcha, $dados_form){ $campos_post = $dados_form; $conteudo = ""; $cookieFile = COOKIELOCAL.session_id(); $cookieFile_fopen = HTTPCOOKIELOCAL.session_id(); if(!file_exists($cookieFile)){return false;} else{ // pega os dados de sessão gerados na visualização do captcha dentro do cookie $file = fopen($cookieFile_fopen, 'r'); while (!feof($file)){$conteudo .= fread($file, 1024);} fclose ($file); $explodir = explode(chr(9),$conteudo); $sessionName = trim($explodir[count($explodir)-2]); $sessionId = trim($explodir[count($explodir)-1]); $cookie = $sessionName.'='.$sessionId; } header("Set-Cookie: $sessionName=$sessionId; path=/; www.receita.fazenda.gov.br; httpOnly" ); if(!empty($_SESSION["valor_input"])){$valor_input = $_SESSION["valor_input"];} $campos_post = http_build_query($campos_post, NULL, '&'); $ch = curl_init('http://www.nfe.fazenda.gov.br/portal/consultaCompleta.aspx?tipoConteudo=XbSeqxE8pl8='); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_POST,count($campos_post)); curl_setopt($ch, CURLOPT_POSTFIELDS, $campos_post); // aqui estão os campos de formulário curl_setopt($ch, CURLOPT_COOKIEFILE, $cookieFile); // dados do arquivo de cookie curl_setopt($ch, CURLOPT_COOKIEJAR, $cookieFile); // dados do arquivo de cookie curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:8.0) Gecko/20100101 Firefox/8.0'); curl_setopt($ch, CURLOPT_COOKIE, $cookie); // dados de sessão curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_MAXREDIRS, 3); curl_setopt($ch, CURLOPT_REFERER, "www.nfe.fazenda.gov.br"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $html = curl_exec($ch); curl_close($ch); return $html; } // Função para extrair o que interessa da HTML e colocar em array function parseHtmlCNPJ($html) { // respostas que interessam - aqui dentro colocar id dos campos para pegar os dados $campos = array(); // caracteres que devem ser eliminados da resposta $caract_especiais = array( chr(9), chr(10), chr(13), ' ', '</b>', ' ', '<b>MATRIZ<br>', '<b>FILIAL<br>' ); // prepara a resposta para extrair os dados $html = str_replace('<br><b>','<b>',str_replace($caract_especiais,'',strip_tags($html,'<b><br>'))); echo $html; $html3 = $html; // faz a extração for($i=0;$i<count($campos);$i++) { $html2 = strstr($html,utf8_decode($campos[$i])); $resultado[] = trim(pega_o_que_interessa(utf8_decode($campos[$i]).'<b>','<br>',$html2)); $html=$html2; } // extrai os CNAEs secundarios , quando forem mais de um if(strstr($resultado[5],'<b>')) { $cnae_secundarios = explode('<b>',$resultado[5]); $resultado[5] = $cnae_secundarios; unset($cnae_secundarios); } // devolve STATUS da consulta correto if(!$resultado[0]) { if(strstr($html3,utf8_decode('O número do CNPJ não é válido'))) {$resultado['status'] = 'CNPJ incorreto ou não existe';} else {$resultado['status'] = 'Imagem digitada incorretamente';} } else {$resultado['status'] = 'OK';} return $resultado; } ?> index.php <html> <head> <title>Pegar dados NFe na receita</title> </head> <body> <form method="post" action="processa.php"> <p><span class="titleCats">Chave de acesso</span> <br /> <input type="text" name="txtChaveAcessoCompleta" maxlength="44" required /> <b style="color: red">Chave</b> <br /> <img src="getcaptcha.php" border="0"> <br /> <input type="text" name="txtCaptcha" maxlength="6" required /> <b style="color: red">Código da imagem</b> <br /> </p> <p> <?php session_start(); //echo "<pre>";print_r($_SESSION["valor_input"]);echo "</pre>";die(); ?> <input name="ctl00$ContentPlaceHolder1$btnConsultar" type="submit" value="Continuar" /> <input name="__EVENTTARGET" type="hidden" value="<?php echo $_SESSION["valor_input"]["__EVENTTARGET"]; ?>"/> <input name="__EVENTARGUMENT" type="hidden" value="<?php echo $_SESSION["valor_input"]["__EVENTARGUMENT"]; ?>"/> <input name="__VIEWSTATE" type="hidden" value="<?php echo $_SESSION["valor_input"]["__VIEWSTATE"]; ?>"/> <input name="__VIEWSTATEGENERATOR" type="hidden" value="<?php echo $_SESSION["valor_input"]["__VIEWSTATEGENERATOR"]; ?>"/> <input name="__EVENTVALIDATION" type="hidden" value="<?php echo $_SESSION["valor_input"]["__EVENTVALIDATION"]; ?>"/> <input name="token" type="hidden" value="<?php echo $_SESSION["valor_input"]["token"]; ?>"/> <input name="captchaSom" type="hidden" value="<?php echo $_SESSION["valor_input"]["captchaSom"]; ?>"/> <input name="hiddenInputToUpdateATBuffer_CommonToolkitScripts" type="hidden" value=""/> </p> </form> </body> </html>
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.