gpt4 book ai didi

sabre - 取消完整的 PNR

转载 作者:行者123 更新时间:2023-12-02 06:15:35 24 4
gpt4 key购买 nike

我正在编写一项服务,该服务可自动取消留在特定队列中的 PNR。对于 OTA_CancelLLSRQ 请求,这听起来非常简单,但似乎我必须单独遍历每个片段,或者有什么方法可以一次取消所有片段?

在应用程序中我们定义了一个 PNR 类,这个类包含我们可以通过“”调用获得的所有信息。

要取消 PNR,我目前使用以下代码:

MessageHeader msgHeader = new MessageHeader
{
ConversationId = "TestSession",
CPAId = licenseId,
Action = "OTA_CancelLLSRQ",
Service = new Service { Value = "OTA_CancelLLSRQ" },
MessageData = new MessageData
{
MessageId = "xxx",
Timestamp = DateTime.UtcNow.ToString("s") + "Z"
},
From = new From()
{
PartyId = new PartyId[]
{
new PartyId { Value = "WebServiceClient"}
}
},
To = new To()
{
PartyId = new[]
{
new PartyId { Value = "WebServiceSupplier"}
}
}
};

var segmentList = new List<OTA_CancelRQSegment>();
foreach (var segment in pnrObject.Segments)
{
var requestSegment = new OTA_CancelRQSegment
{
Number = segment.SegmentNumber.ToString()
};

segmentList.Add(requestSegment);
}

var request = new OTA_CancelRQ()
{
Version = "2.0.0",
TimeStamp = DateTime.UtcNow,
TimeStampSpecified = true,
Segment = segmentList.ToArray()
};

OTA_CancelRS response = null;
Policy.Handle<SoapException>()
.Or<WebException>()
.WaitAndRetry(new[]
{
TimeSpan.FromSeconds(1),
TimeSpan.FromSeconds(1),
TimeSpan.FromSeconds(1),
TimeSpan.FromSeconds(1),
TimeSpan.FromSeconds(1),
TimeSpan.FromSeconds(1),
TimeSpan.FromSeconds(1),
TimeSpan.FromSeconds(1),
TimeSpan.FromSeconds(1)
})
.Execute(() =>
{
using (OTA_CancelService serviceObj = new OTA_CancelService())
{
serviceObj.MessageHeaderValue = msgHeader;
serviceObj.Security = new Security1 { BinarySecurityToken = token };
response = serviceObj.OTA_CancelRQ(request);
}
});

它可以编译和构建,但我还没有开始测试它。 :-)

在文档中我发现了以下请求:

<OTA_CancelRQ Version="2.0.0">
<Segment Type="entire"/>
</OTA_CancelRQ>

我如何使用网络服务期望的对象模型对其进行编码?

最佳答案

取消PNR的步骤如下。

第一步: session 创建RQ

第二步:TravelItineraryReadRQ

第三步:OTA_CancelRQ

第四步:结束事务请求

第五步:SessionCloseRQ

如果是 SOAP 服务,您对 STEP3 的请求 XML(即 OTA_CancelRQ)将如下所示。

<OTA_CancelRQ EchoToken="String" TimeStamp="2001-12-17T09:30:47-05:00" Target="Production" Version="2003A.TsabreXML1.0.1" SequenceNmbr="1" PrimaryLangID="en-us" AltLangID="en-us" xmlns="http://webservices.sabre.com/sabreXML/2003/07" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<POS>
<Source PseudoCityCode="PCC"/>
</POS>
<TPA_Extensions>
<SegmentCancel Type="Entire">
</SegmentCancel>
</TPA_Extensions>
</OTA_CancelRQ>

我希望这能让你的知识更加清晰。

关于sabre - 取消完整的 PNR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35408584/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com