我想在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