创建XML并通过PHP发送时,我收到一个无法解决的错误,我创建了这个XML,我最初会知道
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:eb="http://www.ebxml.org/namespaces/messageHeader" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsd="http://www.w3.org/1999/XMLSchema">
<SOAP-ENV:Header>
<eb:MessageHeader SOAP-ENV:mustUnderstand="1" eb:version="1.0">
<eb:From>
<eb:PartyId>Client</eb:PartyId>
</eb:From>
<eb:To>
<eb:PartyId>SWS</eb:PartyId>
</eb:To>
<eb:CPAId>3DBJ</eb:CPAId>
<eb:ConversationId>MyConversationID</eb:ConversationId>
<eb:Service>Service</eb:Service>
<eb:Action>AddRemarkRQ</eb:Action>
<eb:MessageData>
<eb:MessageId>2019-08-12T10:08:37+00:00</eb:MessageId>
<eb:Timestamp>2019-08-12T11:08:37+00:00</eb:Timestamp>
</eb:MessageData>
</eb:MessageHeader>
<wsse:Security xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext" xmlns:wsu="http://schemas.xmlsoap.org/ws/2002/12/utility">
<wsse:BinarySecurityToken>Shared/IDL:IceSess/SessMgr:1.0.IDL/Common/!ICESMS/ACPCRTC!ICESMSLB/CRT.LB!-2985891478420806004!1543562!0!2!E2E-1</wsse:BinarySecurityToken>
</wsse:Security>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<AddRemarkRQ xmlns='http://webservices.sabre.com/sabreXML/2011/10' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' ReturnHostCommand='false' Version='2.1.0'>
<RemarkInfo>
<Remark Type="General">
<Text>RDB1A</Text>
</Remark>
</RemarkInfo>
</AddRemarkRQ>
</SOAP-ENV:Body>
生成的错误是 WEb xml 消息中指定的操作不存在,这很奇怪,因为 saber 的官方页面离开了这种形式,我没有更改任何内容
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
<soap-env:Header>
<eb:MessageHeader xmlns:eb="http://www.ebxml.org/namespaces/messageHeader" eb:version="1.0" soap-env:mustUnderstand="1">
<eb:From>
<eb:PartyId eb:type="URI">SWS</eb:PartyId>
</eb:From>
<eb:To>
<eb:PartyId eb:type="URI">Client</eb:PartyId>
</eb:To>
<eb:CPAId>3DBJ</eb:CPAId>
<eb:ConversationId>MyConversationID</eb:ConversationId>
<eb:Service>Service</eb:Service>
<eb:Action>ErrorRS</eb:Action>
<eb:MessageData>
<eb:MessageId>2935425822019030611</eb:MessageId>
<eb:Timestamp>2019-08-12T22:50:01</eb:Timestamp>
<eb:RefToMessageId>2019-08-12T10:08:37+00:00</eb:RefToMessageId>
</eb:MessageData>
</eb:MessageHeader>
<wsse:Security xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext">
<wsse:BinarySecurityToken valueType="String" EncodingType="wsse:Base64Binary">Shared/IDL:IceSess/SessMgr:1.0.IDL/Common/!ICESMS/ACPCRTC!ICESMSLB/CRT.LB!-2985891478420806004!1543562!0!2!E2E-1</wsse:BinarySecurityToken>
</wsse:Security>
</soap-env:Header>
<soap-env:Body>
<soap-env:Fault>
<faultcode>soap-env:Client.InvalidAction</faultcode>
<faultstring>Action specified in EbxmlMessage does not exist.</faultstring>
<detail>
<StackTrace>com.sabre.universalservices.base.exception.ApplicationException: errors.xml.USG_INVALID_ACTION</StackTrace>
</detail>
</soap-env:Fault>
</soap-env:Body>
正确的操作代码是:
AddRemarkLLSRQ
参见: https://beta.developer.sabre.com/docs/soap_apis/management/itinerary/Add_Itinerary_Remark