我正在使用saber soap api来检索PNR。但是面对以下错误在EbxmlMessage中指定的操作不存在。如wsdl中所述,soap操作是 GetReservationOperation 。但我不知道它为什么会返回无效的行动。 我正在使用rest api进行搜索Bargain finder max和PNR创建乘客记录。因为没有休息时可以获得行程,所以这就是我使用Soap API的原因。这会导致任何问题。 如果您有任何想法,请告诉我
请求:
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:sec="http://schemas.xmlsoap.org/ws/2002/12/secext"
xmlns:mes="http://www.ebxml.org/namespaces/messageHeader"
xmlns:v1="http://webservices.sabre.com/pnrbuilder/v1_17"
xmlns:v11="http://services.sabre.com/res/or/v1_11">
<soapenv:Header>
<sec:Security>
<sec:BinarySecurityToken>Shared/IDL:IceSess\/SessMgr:1\.0.IDL/Common/!ICESMS\/RESA!ICESMSLB\/RES.LB!-3185560751641243001!1025760!0</sec:BinarySecurityToken>
</sec:Security>
<mes:MessageHeader mes:id="?" mes:version="2.0">
<mes:From>
<mes:PartyId mes:type="urn:x12.org:IO5:01">99999</mes:PartyId>
</mes:From>
<mes:To>
<mes:PartyId mes:type="urn:x12.org:IO5:01">1231231</mes:PartyId>
</mes:To>
<mes:CPAId>ipcc</mes:CPAId>
<mes:ConversationId>ID</mes:ConversationId>
<mes:Service mes:type="?">GetReservationOperation</mes:Service>
<mes:Action>GetReservationOperation</mes:Action>
<mes:MessageData>
<mes:MessageId>1000</mes:MessageId>
<mes:Timestamp>2018-01-25T10:00:00</mes:Timestamp>
<mes:TimeToLive>2018-01-25T12:00:00</mes:TimeToLive>
</mes:MessageData>
</mes:MessageHeader>
</soapenv:Header>
<soapenv:Body>
<v1:GetReservationRQ Version="1.17.0" EchoToken="?">
<v1:Locator>VKSLRM</v1:Locator>
<v1:RequestType>Stateless</v1:RequestType>
<v1:ReturnOptions>
<v1:ViewName>Full</v1:ViewName>
<v1:ResponseFormat>STL</v1:ResponseFormat>
</v1:ReturnOptions>
</v1:GetReservationRQ>
</soapenv:Body>
</soapenv:Envelope>
响应:
<soap-env:Envelope
xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
<soap-env:Header>
<eb:MessageHeader eb:version="1.0" soap-env:mustUnderstand="1"
xmlns:eb="http://www.ebxml.org/namespaces/messageHeader">
<eb:From>
<eb:PartyId eb:type="urn:x12.org:IO5:01">1231231</eb:PartyId>
</eb:From>
<eb:To>
<eb:PartyId eb:type="urn:x12.org:IO5:01">99999</eb:PartyId>
</eb:To>
<eb:CPAId>ipcc</eb:CPAId>
<eb:ConversationId>ID</eb:ConversationId>
<eb:Service eb:type="?">GetReservationOperation</eb:Service>
<eb:Action>ErrorRS</eb:Action>
<eb:MessageData>
<eb:MessageId>5618033481599870201</eb:MessageId>
<eb:Timestamp>2018-01-25T13:22:39</eb:Timestamp>
<eb:RefToMessageId>1000</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\/RESA!ICESMSLB\/RES.LB!-3185560751641243001!1025760!0</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>
</soap-env:Envelope>
答案 0 :(得分:3)
getReservationRQ的正确操作代码是&#34; getReservationRQ&#34;。
https://developer.sabre.com/docs/read/soap_apis/management/itinerary/retrieve_itinerary
答案 1 :(得分:-1)
拼写应正确且区分大小写 getReservationRQ
和
有状态应为请求类型。