我想在PHP soap中使用SITA Web服務(SWS)。 (centos 6 + php 5.6.9) SWS獨立於平臺,基於OpenTravel™Alliance(OTA)XML標準。通過https的SoapFault:無法連接到主機
首先,我必須生成SSL DER文件,發送給他們,因爲: 「所有的連接和通信與SITA的Web服務應使用HTTPS的SSL端口443的客戶端應用程序將使用SOAP通過HTTPS訪問Web服務建立。 WS-Security描述了對SOAP消息傳遞的增強,通過消息完整性,消息機密性和單個消息身份驗證來提供保護質量,這些機制可用於適應多種安全模型和加密技術。 訪問SITA Web訪問SITA Web Services,客戶需要創建密鑰對PKI證書,向我們提供公共DER密鑰並使用私有PEM密鑰對消息進行簽名。證書可以來自Certifi cate Authority(CA)或自簽名證書,但需要遵守X.509第3版標準。「
我產生DER文件,這個命令,如像他們說:
- 的OpenSSL genrsa -out key.pem
- OpenSSL的REQ -new -x509 -key key.pem退房手續cert.der中 - 天365 -outform DER
- OpenSSL的REQ -new -key key.pem退房手續cert.csr -outform DER
現在,當我想在SITA網絡服務簽約,我得到這個錯誤: [xdebug_message] =>(! )SoapFault:無法連接到主機。
ini_set('soap.wsdl_cache_enabled',0);
ini_set('soap.wsdl_cache_ttl',0);
$pem = 'wsdl/cert.pem';
$defaultEndpoint = "https://sws.qa.sita.aero/sws/SignIn";
$uri = "https://sws.qa.sita.aerosws/sws";
$wsdl = 'wsdl/SITAReservationService.wsdl';
$xml = '<?xml version="1.0" encoding="utf-8" ?>
<SITA_SignIn Version="0" Version="1" xmlns=http://www.opentravel.org/OTA/2003/05 xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance xsi:schemaLocation="wsdl/SITA_PingRQ.xsd" TransactionIdentifier="">
<POS>
<Source AirlineVendorID="xx" ERSP_UserID="xx/xx" AgentSine="xx/xx" PseudoCityCode="xxxx" AgentDutyCode="xx" ISOCountry="xx" AirportCode="IKA" />
</POS>
</SITA_SignIn>';
try{
$client = new SoapClient($wsdl, array(
'location' => $defaultEndpoint,
'uri' => $uri,
'trace' => 1,
'exceptions' => true,
'connection_timeout'=> 30,
'ssl' => array(
'verify_peer' => false,
'allow_self_signed' => true,
'cafile' => $pem,
'CN_match' => 'https://sws.qa.sita.aero',
'ciphers' => 'ALL'
)
));
var_dump($client->SignIn($xml));
}
catch (SoapFault $fault) {
var_dump($fault);
}
我從來沒有在使用soap,我沒有關於soap和OTA XML標準web服務的許多信息。
請給我一個關於此問題和SITA Web服務的解決方案,以及如何連接到SITA Web服務。
您好,我是SITA web服務中的新成員,您能幫我解決一下如何在PHP中起訴SITA Web服務? – Abbas