2016-03-23 6 views
0

Я успешно выполнил SessionCreateRQ и другую службу, используя PHP, и я смущен, что делать, когда токен безопасности истек. Согласно documentation, приведенному в разделе Обзор управления сеансом, сеанс может быть обновлен с использованием службы SessionValidateRQ, но я не нашел никакой документации во время поиска. Я только нахожу документацию Refresh Session во время поиска.Управление сеансом: обновляет соединение

Есть ли какая-либо документация для обслуживания SessionValidateRQ?. И я немного смущен, как управлять сеансом для api?

ответ

0

Кажется, вы уже проверили лучшие практики, связанные с производительностью и сеансами.

Обычно (и в зависимости от объема транзакций) у вас должен быть процесс/задание, которое инициирует заданное количество сеансов при запуске приложения и обновляет их до истечения таймаута. Это делается для того, чтобы пользователи могли завершить процесс покупки по запросу.

Когда речь заходит о бронировании, вы можете использовать услуги PassengerDetails и EnhancedAirBook в последовательности (после захвата названий пассажиров, выбранных рейсов и т. Д.) И использовать «короткий разговор» (это означает, что вы открываете сеанс с помощью SessionCreateRQ, затем вызываете эти две службы в последовательности, а затем закрыть сеанс с помощью SessionCloseRQ) ...

+0

Я немного смущен, могу ли я использовать один и тот же токен безопасности для выдачи более одного билета или нет? – sixFingersMan

+0

Вы можете, но не одновременно. Не нужно закрывать сеанс, но вам нужно убедиться, что вы очистили сеанс рабочей области с новым PNR, который вы хотите выпустить. – jmacagno

1

Я использую OTA_PingRQ в приложении, которое я разрабатываю. В общем, каждое взаимодействие с Sabre продлевает сеанс, однако есть случаи, когда вы хотели бы продлить его вручную.

Рассмотрите этот случай - тайм-аут в Sabre происходит через 15 минут с момента отправки последнего запроса на Sabre, и у вас есть пользователь, который вводит данные о пассажирах в ваше приложение. Очевидно, что иногда пользователю требуется больше, чем те 15 минут, чтобы завершить действие. В этом случае вы можете отправить OTA_PingRQ в Sabre через 14 минут, чтобы сохранить сеанс в живых (и теперь у вас есть следующий 15-минутный интервал до истечения срока действия)

+0

Это то, что я использую. – systematical

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);