会话管理:刷新连接

时间:2016-03-23 13:29:07

标签: sabre

我已经使用 PHP 成功实现了SessionCreateRQ和其他服务,我很困惑当安全令牌过期时该怎么做。根据主题会话管理概述中提供的documentation,可以使用服务 SessionValidateRQ 刷新会话,但在搜索时我找不到任何文档。我在搜索时只找到Refresh Session文档。

是否有任何 SessionValidateRQ 服务的文档? 我有点困惑如何管理api的会话?

3 个答案:

答案 0 :(得分:1)

我在我开发的应用程序中使用OTA_PingRQ。通常,与Sabre的每次交互都会延长会话时间,但是有些情况下您希望手动延长会话时间。

考虑这种情况 - Sabre超时发生在自上次发送Sabre请求后15分钟,并且您已经有用户在您的应用程序中输入乘客数据。很明显,有时用户需要超过15分钟才能完成操作。在这种情况下,您可以在14分钟后将OTA_PingRQ发送给Sabre,以保持会话存活(现在您有下一个15分钟的间隔,直到到期)

答案 1 :(得分:0)

您似乎已经检查了与效果和会话相关的最佳做法。

通常(并且取决于您的事务量)您将拥有一个进程/作业,在应用程序启动时启动给定数量的会话,并在超时之前刷新它们。这样做是为了确保用户可以完成“购物”。按需处理。

在预订时,您可以按顺序使用PassengerDetails和EnhancedAirBook服务(在捕获乘客姓名,选择的航班等之后),并使用短暂的会话(意味着您使用SessionCreateRQ,然后按顺序调用这两个服务,然后使用SessionCloseRQ关闭会话... ...

答案 2 :(得分:0)

目前我使用SessionValidateRQ进行保持活动会话。

msgHeader.Service = new Service();
            msgHeader.Service.Value = "SessionValidateRQ";
            msgHeader.Action = "SessionValidateRQ";

            //Set credentials to create session
            Security secure = new Security();
            secure.UsernameToken = new SecurityUsernameToken();
            secure.UsernameToken.Username = Config.WC_EPR;
            secure.UsernameToken.Password = Config.WC_PASSCODE;
            secure.UsernameToken.Organization = Config.WC_IPCC;
            secure.UsernameToken.Domain = Config.WC_DOMAIN;
            secure.BinarySecurityToken = sToken;
            Object ssValidateRq = new object();
            var ret = svc.SessionValidateRQ(ref msgHeader, ref secure, ssValidateRq);