0

好的,所以我完全迷路了!两天来一直盯着屏幕看,我可以在互联网上找到的所有解释/教程都假设您之前已经使用过 SOAP。

使用SOAPui,我至少能够尝试请求并查看结果 :) 但我需要在 PHP 中复制它......例如,使用身份验证凭据在 PHP 中发出请求,然后将响应存储在 mySQL 表中。

这就是请求的样子

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"    xmlns:tem="http://tempuri.org/">
<soapenv:Header/>
    <soapenv:Body>
      <tem:DoThis>
         <tem:licensId>[MYLICENSID]</tem:licensId>
         <tem:licenskey>[MYLICENSKEY]</tem:licenskey>
         <tem:guid>[AGUID]</tem:guid>
      </tem:DoThis>
   </soapenv:Body>
</soapenv:Envelope>

所以我需要验证/验证请求(我猜)?但是我如何用 PHP 做到这一点?一旦我得到工作请求,将如何呈现响应?我想将它插入到现有的 mySQL 数据库中。也就是说,这就是我的“终结游戏”/这样做的目的。从外部系统检索信息,将其与数据库中的现有信息进行比较,如果存在新信息,则替换当前信息或添加新信息。

我试过了

$wsdl = 'http://URLTOSERVICE/Export.svc?wsdl';
$client =
new SoapClient(
    $wsdl,
    array(
        "tem:licensid"      =>  "[MYLICENSID]",
        "tem:licenskey" =>  "[MYLICENSKEY]",
        "tem:guid"      =>  "[AGUID]"
    )
);

print_r($client->DoThis());

但是响应与查看空白纸 2 天一样有趣……即,什么也没有返回。

就像我在主题标题和开头所说的那样。我没有使用 SOAP 的经验。所以,如果有好心人花时间回答,请记住,我需要清晰准确的解释:)

并感谢任何花时间帮助我理解这一点的人......

4

1 回答 1

0

你能指出 WSDL 网址吗?我建议您尝试使用 WSDL 到 php 转换器,以更清楚地了解如何调用 SOAP Web 服务。要将凭据设置为您指示的请求,您必须使用 Soapheader 类http://php.net/manual/fr/class.soapheader.php并调用 __setSoapheaders http://www.php.net/manual /fr/soapclient.setsoapHeaders.php,在调用操作之前。如果您需要任何帮助或 WSDL 到 php 转换器,请告诉我。

于 2013-09-05T07:33:00.197 回答