如何在 PHP 中使用 SOAP 处理安全令牌?

问题描述 投票:0回答:0

我正在尝试从 PHP 中的 SOAP 服务器获取数据。到目前为止,我设法连接了用户名和密码并检索了安全令牌。现在我正在尝试使用一个函数来获取更多数据。但它不起作用。我总是收到消息:

错误:SoapFault 异常:[HTTP] C:\Users\user1\Documents\wamp\www\soap\index.php:93 堆栈跟踪中的错误请求:#0 [内部函数]:SoapClient->__doRequest('__soapCall( 'exportOrder', Array) #2 {main}

我觉得这与我处理 securityToken 的方式有关。我应该如何在我的代码中处理它?

我是 SOAP 和 PHP 的初学者。任何帮助将不胜感激。谢谢。

这是我的 PHP 代码:

<?php

$wsdl = "http://abcd.org/abcdServer/webservices/auth/ExternalOrderWebService?wsdl"; 

$client = new SoapClient($wsdl, array(
        'soap_version' => SOAP_1_1,
        'exceptions' => 1,
        'trace' => 1,
        'location'=>$wsdl
        )
    );

try {
    $args = array(
        'orderId'=>'00119-23',
        'SecurityToken'=>'d989aaf6-ea3c-429e-996c-4722b1d2ce3e'
    );
    
    $result = $client->__soapCall('exportOrder', array($args));
    
    } catch (SoapFault $e) {
        echo "Error: {$e}";
    }
?>

这里是 SOAPUI 中的 xml。当我像这样指示 SecurityToken 和 orderId 时,我会工作。我得到了结果。

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:mis="http://abcd.webservices.xyz.abcd.eu/">
   <soapenv:Header>
    <SecurityToken>d989aaf6-ea3c-429e-996c-4722b1d2ce3e</SecurityToken>
   </soapenv:Header>
   <soapenv:Body>
      <ord:exportOrder>
         <key>
            <orderId>00119-23</orderId>
         </key>
      </ord:exportOrder>
   </soapenv:Body>
</soapenv:Envelope>

我试图查看其他相关主题,但没有帮助(其他问题太具体)

php soap
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.