Описание клиентского пути
Стандартный режим работы
Процесс авторизации
Авторизация в МП СБОЛ
Авторизация в mWeb
Для пользователей iOS устройств в сценарии mWeb реализована через поднятие deeplink актуальной версий МП СБОЛ (последняя опубликованная версия в AppStore). Авторизация на Android в сценарии mWeb реализована через поднятие deeplink на актуальную версию МП СБОЛ. Если на устройстве клиента отсутствует приложение или переход к нему невозможен, происходит авторизация по номеру телефона.
В случае если WebSDK SberPay не удалось запустить МП СБОЛ, авторизация пользователя осуществляется по номеру мобильного телефона. Пользователю отображается страница ввода номера телефона, номер не предзаполнен.
Авторизация в desktop
Авторизация в сценарии desktop для всех версий браузеров реализована через считывание QR-кода камерой МП СБОЛ:
Авторизация по номеру телефона
Партнер может запретить пользователю корректировать номер телефона, по которому осуществляется авторизация с помощью передачи на вход в библиотеку параметра isPhoneChangeDisabled=true. В данном случае страница ввода номера телефона пользователю не отображается.
Авторизация в mWeb
Если партнеру требуется принудительно провести авторизацию пользователя через ввод кода-подтверждения, отправленного по номеру телефона пользователя, требуется передать номер телефона в параметре phone на вход в библиотеку.
Вне зависимости от семейства ОС iOS или Android пользователю отображается страница ввода с предзаполненным номером телефона из параметра phone. При необходимости доступна возможность скорректировать номер телефона. Пользователь подтверждает личность через ввод кода-подтверждения, отправленного ему в СМС сообщении.
Авторизация в desktop
Аналогично сценарию mWeb партнер может запросить принудительную авторизацию пользователя через ввод кода-подтверждения, отправленного по номеру телефона пользователя в сценарии desktop. Для запуска сценария требуется передать номер телефона в параметре phone на вход в библиотеку.
Пользователю отображается страница ввода с предзаполненным номером телефона из параметра phone. При необходимости доступна возможность скорректировать номер телефона. Пользователь подтверждает личность через ввод кода-подтверждения, отправленного ему в СМС сообщении.
Процесс оплаты
Сценарий оплаты отличается в зависимости от того, в каком канале происходит открытие страницы: для mWeb - это редирект в отдельный таб, для desktop – шторка iFrame для всех шагов.
Главный экран после авторизации для канала mWeb:
Главный экран после авторизации для канала desktop:
Если покупатель совершает вторую и далее покупку с устройства, где уже была совершена оплата, и сумма покупки меньше 10 тыс.руб., то клиенту не нужно авторизовываться для совершения оплаты. Если сумма при этом больше 10 тыс.руб., то клиенту для подтверждения оплаты требуется ввести СМС-код, отправленный ему на номер телефона:
Экран ввода СМС-кода для канала mWeb:
Экран ввода СМС-кода для desktop:
Завершение сценария
После выбора карты для списания и завершения оплаты покупки происходит отображение финишного экрана внутри WebSDK. Для настройки отображения финишного экрана партнер на вход в библиотеку может передать признак isFinishPage и параметр finishPageTimeOut.
Если признак isFinishPage=false финишный экран внутри WebSDK не отображается, сразу после совершения оплаты осуществляется переход по sberpay.backurl. Если признак принимает значение true или не передан финишный экран отображается.
Параметр finishPageTimeOut задает время (в секундах), которое будет отображаться финишный экран внутри WebSDK до перехода по sberpay.backurl. Если параметр не передан и признак isFinishPage=false финишный экран отображается в течении 5 секунд. Если передан finishPageTimeOut=0 финишный экран внутри WebSDK не отображается даже если передан признак isFinishPage=true.
После отображения финального статуса внутри WebSDK происходит возврат пользователя по backurl, указанному в запросе на открытие виджета (widget.open(params)). В конце ссылки указывается статус операции путем передачи дополнительного параметра &state=@{BankResultState}:
- success – оплата успешно прошла, требуется отправить на успешный экран
- return – в сценарии произошла ошибка, требуется отправить на неуспешный экран.
- cancel – клиент нажал на кнопку «Отменить». Актуально только для мобильной версии. В десктопной версии виджет закрывается, промис разрешается со значением 'cancel'.
Также требуется передавать аналогичное значение sberpay.backurl в запросе на регистраци ю заказа.
Режим оплаты карточной связкой
Выбор банковской карты
Выбор банковской карты для оплаты должен быть реализован на витрине партнера
Пример реализации:
Подтверждение ОТП-кодом
Сценарий отличается в зависимости от того, в каком канале происходит открытие страницы: для mWeb - это редирект в отдельный таб, для desktop – шторка iFrame для всех шагов.
Вне зависимости от наличия в браузере пользователя cookie-файла требуется подтверждение СМС-кодом. Код отправляется автоматически на привязанный к карте номер телефона пользователя после запуска библиотеки.
Экран ввода СМС-кода для канала mWeb:
Экран ввода СМС-кода для канала desktop:
При исчерпании количества попыток ввода СМС-кода пользователю доступна возможность перехода к оплате другой картой. При выборе опции запускается стандартный режим р аботы WebSDK SberPay. При отсутствии в браузере cookie-файла требуется пройти авторизацию.
Экран исчерпания количества попыток ввода СМС-кода:
Процесс оплаты
Оплата происходит автоматически после ввода и подтверждения СМС-кода. Если оплата завершилось ошибкой пользователю досту пна возможность перехода к оплате другой картой. При выборе опции запускается стандартный режим работы WebSDK SberPay. При отсутствии в браузере cookie-файла требуется пройти авторизацию.
Экран неуспешной оплаты:
Завершение сценария
После выбора карты для списания и завершения оплаты покупки происходит отображение финишного экрана внутри WebSDK. Для настройки отображения финишного экрана мерчант на вход в библиотеку может передать признак isFinishPage и параметр finishPageTimeOut.
Если признак isFinishPage=false финишный экран внутри WebSDK не отображается, сразу после совершения оплаты осуществляется переход по sberpay.backurl. Если признак принимает значение true или не передан финишный экран отображается.
Параметр finishPageTimeOut задает время (в секундах), которое будет отображаться финишный экран внутри WebSDK до перехода по sberpay.backurl. Если параметр не передан и признак isFinishPage=false финишный экран отображается в течении 5 секунд. Если передан finishPageTimeOut=0 финишный экран внутри WebSDK не отображается даже если передан признак isFinishPage=true.
После отображения финального статуса внутри WebSDK происходит возврат пользователя по backurl, указанному в запросе на открытие виджета (widget.open(params)). В конце ссылки указывается статус операции путем передачи дополнительного параметра &state=@{BankResultState}:
- success – оплата у спешно прошла, требуется отправить на успешный экран
- return – в сценарии произошла ошибка, требуется отправить на неуспешный экран.
- cancel – клиент нажал на кнопку «Отменить». Актуально только для мобильной версии. В десктопной версии виджет закрывается, промис разрешается со значением 'cancel'.
Также требуется передавать аналогичное значение sberpay.backurl в запросе на регистрацию заказа.