é
"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'; }