获取PHP SOAP请求数据

时间:2014-11-10 07:10:20

标签: php xml web-services soap wsdl

我有一个页面,它将直接从SOAP请求接收数据。问题是“我将如何收到这些数据?”。如果数据直接来自$_GET参数,我可以通过$_GET['PARAM']获取,但是如何直接在SOAP中获取数据?

我有一个WSDL文件,NotificationToCP.wsdl。

以下是SOAP请求。

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sub="http://example.com">
<soapenv:Header/>
<soapenv:Body>
    <sub:handleNewSubscription>
        <custAttributesDTO>
            <cpId>{$cpId}</cpId>
            <cpPwd>{$cpPwd}</cpPwd>
            <productId>{$productId}</productId>
            <channelName>{$channelName}</channelName>
            <contentProvider>{$contentProvider}</contentProvider>
            <cpName>{$cpName}</cpName>
            <firstConfirmationDTTM>{$firstConfirmationDTTM}</firstConfirmationDTTM>
            <secondConfirmationDTTM>{$secondConfirmationDTTM}</secondConfirmationDTTM>
        </custAttributesDTO>
    </sub:handleNewSubscription>
</soapenv:Body>
</soapenv:Envelope>

我正在尝试使用以下代码获取此SOAP请求数据。

$client = new SoapClient($_SERVER['DOCUMENT_ROOT'] . "/test/NotificationToCP.wsdl", array('trace' => true));
var_dump($client->__getLastResponse());

我无法弄清楚我哪里出错了。

1 个答案:

答案 0 :(得分:0)

SOAP调用返回的是一个对象,并且您无法打印一个对象,您需要提取该对象的属性值,该对象存储了可以打印的返回值。因此,在响应标签所在的SOAP XML中,使用该标签的值,然后:

print_r($result->name_Of_Tag_In_XML);