会话管理:刷新连接
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);
我已经使用 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);