会话管理:刷新连接

Session management : Refreshes a connection

我已经使用 PHP 成功实现了 SessionCreateRQ 和其他服务,但我很困惑在安全令牌过期时该怎么办。根据我搜索时的 documentation provided in the topic Session management overview , the session can be refreshed using the service SessionValidateRQ but I didn't find any documentation while I am searching. I only find the Refresh Session 文档。

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

我在我开发的应用程序中使用 OTA_PingRQ。一般来说,与 Saber 的每次交互都会延长会话,但在某些情况下,您希望手动延长会话。

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

您似乎已经检查了与性能和会话相关的最佳实践。

通常(并且取决于您的交易量)您会有一个 process/job 在应用程序启动时启动给定数量的会话,并在它们超时之前刷新它们。这样做是为了确保用户可以按需完成 'shopping' 过程。

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

目前我正在使用 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);