在SOAP请求PHP中设置参数的属性

时间:2009-04-08 01:49:51

标签: php soap

我正在尝试使用只允许SOAP请求的Web服务

据我所知,我必须创建一个看起来像这样的请求

<?xml version="1.0" encoding="utf-8"?>
<SessionCreateRQ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <POS>
    <Source PseudoCityCode="SECRET_CODE" />
  </POS>
</SessionCreateRQ>

然而,当将参数添加到SessionCreateRQ方法时,我不知道如何添加名为Source的POS参数,并且不知道如何设置该参数的属性

我在php中尝试以下内容

  $body = array(
        'POS' => array('source' => 'PseudoCityCode:SECRET_CODE'));

    try
    {
        $result = $c->SessionCreateRQ($body);
    }

但没有运气,有没有人知道我应该如何正确地构建这个电话呢?

谢谢!

1 个答案:

答案 0 :(得分:1)

首先,您需要此服务的WSDL定义(在线或本地文件)。任何不错的SOAP服务都为用户提供WSDL。

其次,您需要将WSDL服务定义转换为PHP代码。试试wsdl2php生成器。它生成带有类的文件,用于调用Web服务。

您的示例大致如下:

require_once 'GeneratedTypes.php';
$client = new SOAPService();
$res = $client->SessionCreateRQ(SECRET_CODE);

P.S。 wsdl2php不理想,但它正在工作:)