Jump to content


Photo

Nota Fiscal Eletronica Xml


  • Faça o login para participar
Nenhuma resposta neste tópico

#1 DuuuuDuuuu

DuuuuDuuuu

    Turista

  • Usuários
  • 25 posts
  • Sexo:Masculino
  • Localidade:brasil

Posted 31/08/2011, 09:12

eu to com certificado tudo ok, mas ele ta me dando o seguinte erro quando conecto no webservice da sefaz
é

"soap:ReceiverServer was unable to process request. ---> Data at the root level is invalid. Line 1, position 1"

erro do xml mal formatado pois conferi no validador do sefaz do RS, só que não sei aonde achar um modelo de xml para enviar para eles no WS, para consulta, o sisteminha é em php mas eu to buscando referencias do xml em foruns de java, pois é muito dificil achar material sobre nfe, e aquela nfephp é um lixo, enrola de mais, porcaria aquilo.

segue o codigo que estou usando:

$chave = '42110875384404000125550040000477231459594050';
            $cabecalho = '<nfeCabecMsg xmlns="http://www.portalfiscal.inf.br/nfe/wsdl/NfeConsulta2">
								<cUF>SC</cUF>
								<versaoDados>2.00</versaoDados>
						</nfeCabecMsg>';
            //montagem dos dados da mensagem SOAP
            $dados = '<nfeDadosMsg xmlns="http://www.portalfiscal.inf.br/nfe/wsdl/NfeConsulta2">
						<consSitNFe xmlns="http://www.portalfiscal.inf.br/nfe" versao="2.0">
							<tpAmb>1</tpAmb>
							<xServ>CONSULTAR</xServ>
							<chNFe>'.$chave .'</chNFe>
						</consSitNFe>
					</nfeDadosMsg>';

        $data = '';
        $data .= '<?xml version="1.0" encoding="utf-8"?>';
        $data .= '<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">';
        $data .= '<soap12:Header>';
        $data .= $cabecalho;
        $data .= '</soap12:Header>';
        $data .= '<soap12:Body>';
        $data .= $dados;
        $data .= '</soap12:Body>';
        $data .= '</soap12:Envelope>';
		
         $dado = trim($data);
         $dado = preg_replace('/s(?=s)/', '', $dado);
         $dado = preg_replace('/[nrt]/', '', $dado);

		
		echo $dado;
		
		$url = 'https://hom.sefazvirtual.fazenda.gov.br/NfeConsulta2/NfeConsulta2.asmx';
 $curl = curl_init();
if ( is_resource( $curl ) ){
        curl_setopt( $curl , CURLOPT_HEADER , 0 );
        curl_setopt( $curl , CURLOPT_SSL_VERIFYPEER, 0);
        curl_setopt( $curl , CURLOPT_RETURNTRANSFER , 1 );
        curl_setopt( $curl , CURLOPT_FOLLOWLOCATION , 1 );
        curl_setopt( $curl , CURLOPT_URL , $url);
		
	curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
	curl_setopt($curl, CURLOPT_SSLCERT, 'certifi.pem');
	curl_setopt($curl, CURLOPT_SSLKEY, 'privatekey.pem');
		
        curl_setopt( $curl , CURLOPT_POST , 1 );
        curl_setopt( $curl , CURLOPT_POSTFIELDS , http_build_query( array( 'mensagem' => $data ) ) );
 
        $xml = curl_exec( $curl ); $ern = curl_errno( $curl ); $err = curl_error( $curl );
 
        curl_close( $curl );
 
        if ( (bool) $ern ){
                echo 'Ocorreu um erro[' , $ern , ']: ' , $err;
        } else {
                //var_dump( $xml , $ern , $err );
                                print_r($xml."<br><hr><br>");
                                print_r($ern."<br><hr><br>");
                                print_r($err."<br><hr><br>");
                                $DadosEnvio= simplexml_load_string($xml);
                                echo "<pre>".$xml."</pre>";
        }
 } else {
        echo 'erro';
 }





1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq