【问题标题】:Sabre PassengerDetailsRQ failing with Invalid Version Number errorSabre PassengerDetailsRQ 因无效版本号错误而失败
【发布时间】:2017-10-24 16:13:07
【问题描述】:

我正在尝试使用 OTA_AirBookLLSRQ 和PassengerDetailsRQ 进行预订。我能够在 OTA_AirBookLLSRQ 中成功,但在 PassengerDetailsRQ 中失败并出现以下错误。

我指向 Sabre CERT 环境并遇到此问题。

请帮助我指出我的请求有什么问题。

System.ServiceModel.FaultException:服务版本无效 System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime 操作,ProxyRpc& rpc) 在 System.ServiceModel.Channels.ServiceChannel.EndCall(字符串动作, Object[] 输出,IAsyncResult 结果)在 System.ServiceModel.Channels.ServiceChannelProxy.TaskCreator.c__DisplayClass7_01.<CreateGenericTask>b__0(IAsyncResult asyncResult) at System.Threading.Tasks.TaskFactory1.FromAsyncCoreLogic(IAsyncResult iar, Func2 endFunction, Action1 endAction, Task`1 承诺, 布尔 需要同步)

PassengerDetailsRQ 的请求 xmls 是

消息头

<?xml version="1.0" encoding="utf-16"?>
<MessageHeader xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" d1p1:version="2.0" xmlns:d1p1="http://www.ebxml.org/namespaces/messageHeader">
    <d1p1:From>
        <d1p1:PartyId>99999</d1p1:PartyId>
    </d1p1:From>
    <d1p1:To>
        <d1p1:PartyId>123123</d1p1:PartyId>
    </d1p1:To>
    <d1p1:CPAId>TestCPA</d1p1:CPAId>
    <d1p1:ConversationId>20171024T155602Z</d1p1:ConversationId>
    <d1p1:Service>PassengerDetailsRQ</d1p1:Service>
    <d1p1:Action>PassengerDetailsRQ</d1p1:Action>
    <d1p1:MessageData>
        <d1p1:MessageId>mid:20171024T155602Z@clientofsabre.com</d1p1:MessageId>
        <d1p1:Timestamp>20171024T155602Z</d1p1:Timestamp>
    </d1p1:MessageData>
</MessageHeader>

安全对象

<?xml version="1.0" encoding="utf-16"?>
<Security xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <BinarySecurityToken xmlns="http://schemas.xmlsoap.org/ws/2002/12/secext">Shared/IDL:IceSess\/SessMgr:1\.0.IDL/Common/!ICESMS\/CERTG!ICESMSLB\/CRT.LB!-3218433817369427567!1447734!0</BinarySecurityToken>
</Security>

PassengerDetailsRQ

<?xml version="1.0" encoding="utf-16"?>
<PassengerDetailsRQ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <PostProcessing xmlns="http://services.sabre.com/sp/pd/v3_3">
        <EndTransactionRQ>
            <EndTransaction Ind="true" />
            <Source ReceivedFrom="Oneworld RTW" />
        </EndTransactionRQ>
    </PostProcessing>
    <SpecialReqDetails xmlns="http://services.sabre.com/sp/pd/v3_3">
        <SpecialServiceRQ>
            <SpecialServiceInfo>
                <AdvancePassenger SegmentNumber="A">
                    <PersonName NameNumber="1.1">
                        <GivenName>Narasimham</GivenName>
                        <MiddleName>Venkata Lakshmi</MiddleName>
                        <Surname>Akella</Surname>
                    </PersonName>
                </AdvancePassenger>
            </SpecialServiceInfo>
        </SpecialServiceRQ>
    </SpecialReqDetails>
    <TravelItineraryAddInfoRQ xmlns="http://services.sabre.com/sp/pd/v3_3">
        <CustomerInfo> 
            <PersonName NameNumber="1.1" PassengerType="ADT">
                <GivenName>Narasimham</GivenName>
                <Surname>Akella</Surname>
            </PersonName>
        </CustomerInfo>
    </TravelItineraryAddInfoRQ>
</PassengerDetailsRQ>

通过 SOAP 代理类发出请求的代码

PassengerDetails.PassengerDetailsPortTypeClient paxDetCli = new PassengerDetails.PassengerDetailsPortTypeClient("PassengerDetailsPortType1" + envName);
                Task<PassengerDetails.PassengerDetailsRQResponse> resp = paxDetCli.PassengerDetailsRQAsync(msgHeader, security, paxDetReq);
                resp.Wait();
                txtResult.Text += "Sucess Response:" + SerializeObject(typeof(PassengerDetails.PassengerDetailsRQResponse), resp.Result);

【问题讨论】:

    标签: c# web-services soap wsdl sabre


    【解决方案1】:

    这个错误几乎说明了一切;在这种情况下缺少版本声明。

    您应该将version="3.3.0" 添加到服务请求的标头中。

    【讨论】:

    • 在PassengerDetailsRQ 中添加3.3.0 版本起到了神奇的作用。感谢您的帮助。我想知道为什么只有PassengerDetailsRQ 有版本错误,而在其他调用中我没有在请求正文级别传递版本。
    猜你喜欢
    • 2018-10-21
    • 1970-01-01
    • 1970-01-01
    • 2023-01-19
    • 2017-12-26
    • 2014-08-09
    • 2021-08-13
    • 2017-02-11
    相关资源
    最近更新 更多