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