"SSO: переадресация после создания заказа" (ModSSORedirectAfterOrderCreation)
Иногда при интеграции с порталом может возникнуть необходимость организовать переадресацию пользователя обратно на портал непосредственно после создания заказа, для этого используется МОД под названием “SSO: переадресация после создания заказа”.
Этот МОД позволяет переадресовать пользователя со страницы созданного заказа на адрес, переданный в качестве SignOutUrl при SSO-переходе.
Мод имеет следующие настройки:
Чекбокс “Активировать переадресацию” нужно включить для того, чтобы переадресация заработала
QueryString - строка с переменными вида order=@id_Reserve&mission=@id_ComplexReserve&portalId=@OuterId&hash=@hash
Соль - нужна для формирования hash
Использование соли и QueryString будет описано ниже.
При переадресации пользователя при помощи метода HTTP GET можно передать в адресной строке во внешнюю систему следующие параметры из Кортеос:
id_ComplexReserve - идентификатор командировки, в которую мы добавили услугу
id_Reserve - идентификатор только что созданного заказа
OuterId -идентификатор командировки во внешней системе, связь с id_ComplexReserve 1 к 1
hash - хэш для контроля целостности перехода, вычисляется как md5(SignOutUrl + QueryString.replace(“@id_ComplexReserve”, id_ComplexReserve).replace(“@id_Reserve”, id_Reserve).replace(“@OuterId”, OuterId ?? ““) + salt)
Предположим, наш запрос на SSO Set выглядел таким образом:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sso="https://sso.corteos.ru/">
<soapenv:Header/>
<soapenv:Body>
<sso:Set>
<sso:request>
<sso:SignOutUrl>https://yandex.ru/</sso:SignOutUrl>
<sso:OuterId>2000000189</sso:OuterId>
<sso:AccountDetails id_Group="хх" GroupSecurityKey="ххх" Email="ххх@ххх.ru">
</sso:AccountDetails>
</sso:request>
</sso:Set>
</soapenv:Body>
</soapenv:Envelope>
В этом случае, после создания заказа при таких настройках переадресации, как было показано выше, пользователь будет переброшен на такой адрес:
https://yandex.ru/?order=1770639&mission=767337&portalId=63-200011&hash=3ff30cb54c7603735af4207ef6335968
Хэш будет вычислен как md5("https://yandex.ru/?order=1770639&mission=767337&portalId=63-200011&hash=@hashsomeSaltPlease”)