【发布时间】:2018-05-02 11:09:03
【问题描述】:
最近获得了用于酒店管理服务的肥皂 API 的访问权限。他们提供的文档显示了请求的基本示例:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header>
<Auth xmlns="http://xxxx/xxxxAPI">
<FromSystemId ID="1">CompanyName</FromSystemId>
<UserName>username</UserName>
<Password>password</Password>
</Auth>
</soapenv:Header>
<soapenv:Body>
<GetRegions Timestamp="2016-04-11" Version="1.0" Lang="en"
xmlns="http://xxxx/xxxxAPI">
<Country Code="GB" />
</GetRegions>
</soapenv:Body>
</soapenv:Envelope>
他们还在其文档中提供了函数列表以及每个函数所需的参数。但是我对如何执行请求有点困惑,因为我以前从未使用过肥皂 API。他们也没有提供 WSDL,这有关系吗?
无论如何,这就是我想尝试执行请求的方式
$soapURL = "http://xxxx/xxxxAPI" ;
$soapParameters = Array('login' => "username", 'password' => "password") ;
$soapFunction = "getRegions";
$soapFunctionParameters = Array('countrycode' => 'GB');
$soapClient = new SoapClient($soapURL, $soapParameters);
$soapResult = $soapClient->__soapCall($soapFunction,
$soapFunctionParameters) ;
if(is_array($soapResult) && isset($soapResult['someFunctionResult'])) {
// Process result.
} else {
// Unexpected result
if(function_exists("debug_message")) {
debug_message("Unexpected soapResult for {$soapFunction}: ".print_r($soapResult, TRUE)) ;
}
}
我这样做是否正确?我现在无法对此进行测试,因为我还没有收到我的身份验证,但我想现在就开始。
任何帮助都会很棒。
【问题讨论】:
-
查看 php SOAP 扩展:php.net/manual/en/book.soap.php