获取PHP SOAP请求数据


Fetch PHP SOAP request data

我有一个页面,它将直接从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());

我不知道哪里出了问题。

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

print_r($result->name_Of_Tag_In_XML);