Openssl https上的SoapFault:无法连接到主机
我想将SITA Web服务(SWS)与PHP soap结合使用。(CentOS 6+PHP5.6.9) SWS是独立于平台的,基于OpenTravel联盟(OTA)XML标准 首先,我必须生成一个SSL DER文件并发送给他们,因为: 应使用HTTPS端口443上的SSL建立与SITA Web服务的所有连接和通信。客户端应用程序将使用SOAP over HTTPS访问web服务 WS-Security描述了对SOAP消息传递的增强,以通过消息完整性、消息机密性和单个消息身份验证提供保护质量。这些机制可用于适应各种安全模型和加密技术 要访问SITA Web以访问SITA Web服务,客户端需要创建密钥对PKI证书,向我们提供公共DER密钥,并使用私有PEM密钥对消息进行签名。证书可以来自证书颁发机构(CA)或自签名证书,但需要遵守X.509版本3标准 我使用这些命令生成DER文件,如他们所说:Openssl https上的SoapFault:无法连接到主机,openssl,pem,ota,Openssl,Pem,Ota,我想将SITA Web服务(SWS)与PHP soap结合使用。(CentOS 6+PHP5.6.9) SWS是独立于平台的,基于OpenTravel联盟(OTA)XML标准 首先,我必须生成一个SSL DER文件并发送给他们,因为: 应使用HTTPS端口443上的SSL建立与SITA Web服务的所有连接和通信。客户端应用程序将使用SOAP over HTTPS访问web服务 WS-Security描述了对SOAP消息传递的增强,以通过消息完整性、消息机密性和单个消息身份验证提供保护质量。这些
openssl genrsa-out key.pem
openssl请求-新建-x509-key key.pem-out cert.der-365天-outform der
openssl请求-新建-key key.pem-out cert.csr-outform DER
现在,当我想登录SITA web服务时,出现以下错误:
[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);
}
ini\u集('soap.wsdl\u缓存启用',0);
ini\u集('soap.wsdl\u缓存\u 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='0
';
试一试{
$client=新的SoapClient($wsdl,数组(
“位置”=>$defaultEndpoint,
'uri'=>$uri,
“跟踪”=>1,
“例外情况”=>true,
“连接超时”=>30,
“ssl”=>数组(
“验证对等方”=>false,
“允许自签名”=>true,
“cafile”=>pem美元,
“CN_匹配”=>”https://sws.qa.sita.aero',
“密码”=>“全部”
)
));
变量转储($client->sign($xml));
}
catch(SoapFault$fault){
var_dump($故障);
}
如何连接到SITA web服务?您的代码中有两个错误:
SITA\u signnrq
但我认为您仍然会收到来自SITA的“消息中没有签名!”错误。您的代码中有两个错误:
SITA\u signnrq
但我认为您仍然会收到SITA发出的“消息中没有签名!”错误。您好,我是SITA web服务的新手,您能帮助我如何使用PHP起诉SITA web服务吗?您好,我是SITA webservices的新手,你能帮助我如何在PHP中使用SITA web服务吗?你能帮助我如何开始在PHP中使用SITA吗?你能帮助我如何开始在PHP中使用SITA吗?