WebLink — это ссылка на ваш сайт, для бесшовного входа sbol2web. Он необходим для перехода из МП СБОЛ на ваш сайт и автоматического запуска процесса авторизации пользователя.
https://partner.ru/auth
Вы можете формировать его любым удобным способом, добавляя utm метки, дополнительные параметры и тд.
Например передавать какой тип входа type, чтобы фронт понимал, что происходит автоматический вход.
https://partner.ru/auth?
type=auto
Чтобы после успешной аутентификации направить пользователя туда, куда он шел изначально (до старта аутентификации), можете использовать параметр to.
https://partner.ru/auth?
type=auto
&to=catalog
Значение to нужно сохранить в связке со state (см Общая схема взаимодействия). Сохранять можно на своем backend или в своей cookie.
Проблема двойного кодирования параметров webLink в старых версиях МП Сбол (до 16.0.0)
В версиях МП Сбол до 16.0.0 включительно, есть ошибка: параметры webLink с особыми символами (/, &, ?) могут кодироваться дважды. Из-за этого сайт не сможет корректно обработать такие параметры.
Пример:
Вы передаете to=%2Fsearch_promo%3Ftime%3Dcode91881, а итоговая ссылка выглядит так: https://partner.ru/auth?to=%252Fsearch_promo%253Ftime%253Dcode91881.
Здесь / закодирован дважды (%252F вместо %2F).
Что делать:
- Не используйте спецсимволы в параметрах. Вместо
to=/search_promo?time=code91881используйте отдельные параметры:to=search_promo&time=code91881, а затем собирайте строку на сайте. - Реализовать дополнительное декодирование нужного параметра
%252Fsearch_promo%253Ftime%253Dcode->/search_promo?time=code91881
Используйте to только если по какой-то причине вам для нужного редиректа не подходит redirect_uri.
Такое может быть, если у вас одна точка обработки code и state для всех коммуникаций.