<?php
// header("Content-type: text/xml");
//modificar as variáveis abaixo
// $token = "B9C709A0-BC3D-A223-5555-9B93C8265A9B";
// $chave = "24170523700488000165550010000000061080954558";
        
// try{
//     $xmlDoc = getNFeByWebService($token, $chave);
//     // $xmlDoc = getNFeByHTTP($token, $chave);
  
//     ob_clean();
//     echo $xmlDoc->saveXML();
  
// } catch(Exception $e){
//     echo $e->getMessage();
// }

function getNFeByWebService($token, $chave){
    //Atenção o módulo SOAP do PHP deve estar habilitado
    
    $sCliente = new SoapClient('http://www.roveri.inf.br/ws/nfe.php?wsdl');
    $response = $sCliente->getNFe($token, $chave);
    
    $doc = new DOMDocument();
    $doc->loadXML($response);
    
    if($doc->getElementsByTagName("mensagem")->length > 0){
        $mensagem = $doc->getElementsByTagName("mensagem")->item(0)->nodeValue;
        throw new Exception($mensagem);
    }
    
    return $doc;
}

function getNFeByHTTP($token, $chave){
    $url = "http://www.roveri.inf.br/consultas/nfe.php?";
    $url .= "token=".$token;
    $url .= "&chave=".$chave;
    
    $agent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13 ( .NET CLR 3.5.30729)";

    $ch = curl_init();

    curl_setopt_array($ch, array(
        CURLOPT_URL => $url, //url que produz a imagem do captcha.
        CURLOPT_USERAGENT => $agent,
        CURLOPT_FOLLOWLOCATION => 1,
        CURLOPT_RETURNTRANSFER => 1,
        CURLOPT_HEADER => 0,
        CURLOPT_SSL_VERIFYPEER => false
    ));
    
    $response = curl_exec($ch);
    curl_close($ch);
        
    $doc = new DOMDocument();
    $doc->loadXML($response);
        
    if($doc->getElementsByTagName("mensagem")->length > 0){
        $mensagem = $doc->getElementsByTagName("mensagem")->item(0)->nodeValue;
        throw new Exception($mensagem);
    }
    return $doc;
}
?>