Webservice - Passar XML Completo

Enviada por Pitagoras 
Pitagoras
Webservice - Passar XML Completo
13 de May de 2012 às 04:05AM
Olá pessoal.
Tô com uma dúvida grande. Já pesquisei pra tudo que é lado na web e não consegui nenhuma resposta.
Estou desenvolvendo um prog em PHP e que necessito consumir um webservice. Um determinado método desse webservice necessita que eu repasse para ele um XML completo, não adianta só o array com os dados tratados. Tem que vir com toda aquela especificação (Schema - xsd).
Se alguém souber de algo nessa linha, por favor me ajudem.
Obrigado.
Marcos Regis
Re: Webservice - Passar XML Completo
14 de May de 2012 às 12:00PM
de uma olhada nas funções de consumo de webservice do PHP, principalmente no uso de Complex Types com SoapVar.

http://php.net/soap
Pitagoras
Re: Webservice - Passar XML Completo
15 de May de 2012 às 03:32PM
Teria algum exemplo para que possa me guiar. Não tô entendendo bem a SoapVar.
Marcos Regis
Re: Webservice - Passar XML Completo
21 de May de 2012 às 07:11PM
Segue um exemplo de uso de ComplexType sem SoapVar

$oClient = new SoapClient($wsdlFilespec, $arguments);
$parameters = array(
'header' => array(
'source' => $_POST['source'],
'accountNo' => $_POST['accountNo'],
'userAccessKey' => $connection['userAccessKey']
),
'consignmentId' => array('PDH44109', 'PDH44110')
);
$request = array('parameters' => $parameters);
$result = $oClient->__soapCall($operation, $request);


Segue um exemplo de uso de SOAPVAR
$header = array(
new SoapParam((string)$_POST['source'], 'source'),
new SoapParam((int)$_POST['accountNo'], 'accountNo'),
new SoapParam((string)$connection['userAccessKey'], 'userAccessKey')
);
$headerVar = new SoapVar($header, SOAP_ENC_OBJECT, 'TransactionHeaderType',
"http://myexpress/Common/actions/externals/Consignment/v1");

$parameters = array(
new SoapParam($headerVar, 'header'),
new SoapParam((string)'PDH44109', 'consignmentId'),
new SoapParam((string)'PDH44110', 'consignmentId')
);
$request = array('parameters' => $parameters);
Você precisa estar logado no PHPBrasil.com para poder enviar mensagens para os nossos fóruns.

Faça o login aqui.