Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal.
Passei o dia todo tentando resolver uma questão e não consegui nenhum resultado, espero que possam me dar uma ajuda.
Tenho um aplicativo em php que precisa receber dados de um webservice, que é de outra empresa.
Eles não tem documentação e tudo que me enviaram foi:
WSDL: https://urlparceiro/wsparceiro/services/ExpData?wsdl
Exemplo de utilização:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://services.urlparceiro/">
<soapenv:Header/>
<soapenv:Body>
<ser:ExpData>
<!--Optional:-->
<item0>
<erro>true</erro>
<mensagemErro>true</mensagemErro>
<parametros>{'empresa':'1','codigo':'2','chave':'12abc','tipoSaida':'xml'}</parametros>
<retorno>xml</retorno>
<tipoArquivoRetorno>xml</tipoArquivoRetorno>
</item0>
</ser:ExpData>
</soapenv:Body>
</soapenv:Envelope>
Utilizei a classe nuSoap, mas o campo <parametros> sempre dá erro. Meu script:
require_once('../lib/nusoap.php');
$client = new nusoap_client('https://urlparceiro/wsparceiro/services/ExpData?wsdl'); 'arg0' => array(
'erro' => true,
'mensagemErro' => true,
'parametros' => "{'empresa':'1','codigo':'2','chave':'12abc', 'tipoSaida':'xml')",
'retorno' => 'xml',
'tipoArquivoRetorno' => 'xml'
));
$result = $client->call('ExpData', $params, 'http://services.urlparceiro.com/', 'http://services.urlparceiro.com/');
if ($client->fault) {
echo '<h2>Fault (Expect - The request contains an invalid SOAP body)</h2><pre>'; print_r($result); echo '</pre>'; $err = $client->getError();
if ($err) {
echo '<h2>Error</h2><pre>' . $err . '</pre>';
} else {
echo '<h2>Result</h2><pre>'; print_r($result); echo '</pre>';
}
}
O resultado:
Array( [erro] => true [mensagemErro] => Erro no formato Json dos parametros [parametros] => {'empresa':'1','codigo':'2','chave':'12abc', 'tipoSaida':'xml') [retorno] => xml [tipoArquivoRetorno] => xml)
Já alterei a string, usei json_decode, trim, mas nada resolve, só muda a mensagem de erro.
Usando jason_decode o erro é: 'XML error parsing SOAP payload on line 1: Invalid character'
Usando trim:
Fault (Expect - The request contains an invalid SOAP body)Array( [faultcode] => soap:Server [faultstring] => java.lang.NullPointerException)
Alguma ideia de como resolver? Agradeço muito quem puder ajudar.
Abraços.
Carregando comentários...