Режим оплаты карточной связкой
Выбор банковской карты
Выбор банковской карты для оплаты должен быть реализован на витрине партнера
Пример реализации:
В зависимости от того в каком канале происходит открытие страницы сценарий продолжается в отдельном табе или в шторке iFrame:
- mWeb - в отдельном табе;
- desktop – шторка iFrame для всех шагов.
Подтверждение операции
В зависимости от эмитента карты и параметров заказа оплата может быть проведена без подтверждения или потребовать дополнительной валидации. Подтверждение оплаты может быть выполнено посредством ввода ОТП-кода или с использованием механизма 3-D Secure.
Подтверждение ОТП-кодом
Если определена необходимость подтверждения оплаты и карта принадлежит к эмиссии Сбера, выполняется валидация операции через ввод ОТП-кода, отправляемого на номер телефона, привязанный к профилю клиента.
Экран ввода СМС-кода для канала mWeb:
Экран ввода СМС-кода для канала desktop:
При исче рпании количества попыток ввода СМС-кода пользователю доступна возможность перехода к оплате другой картой. По нажатии кнопки "Выбрать другую карту" запускается стандартный режим работы WebSDK SberPay. При отсутствии в браузере cookie-файла требуется пройти авторизацию.
Экран исчерпания количества попыток ввода СМС-кода:
Подтверждение 3-D Secure
Если определена необходимость подтверждения оплаты и карта принадлежит к сторонней эмиссии выполняется валидация операции посредством механизма 3-D Secure в процессе оплаты. Виджет перенаправляет покупателя на специализированную страницу без пользовательского интерфейса, где реализованы механизмы взаимодействия с 3-D Secure. В зависимости от параметров заказа и настроек платежного инструмента может быть выполнен переход на ACS страницу для дополнительного подтверждения операции.
Подтверждение операции на ACS странице:
Процесс оплаты
Оплата происходит автоматически. Если оплата завершилось ошибкой пользователю доступна возможность перехода к оплате другой картой. При выборе опции запускается стандартный режим работы WebSDK SberPay. При отсутствии в браузере cookie-файла требуется пройти авторизацию.
Если в процессе оплаты пользователь был перенаправлен на специализированную страницу для подтверждения операции посредством механизма 3-D Secure, после завершения операции будет произведен автоматический возврат в WebSDK SberPay для корректного завершения сценария.
Если попытка оплаты связкой завершилась ошибкой и пользователь совершил оплату другой картой в стандартном р ежиме работы WebSDK, связка будет обновлена. Рекомендуем по завершении платежа запросить статус заказа в соответствии с документацией платежного шлюза и обновить сохраненную связку на вашем сайте.
Экран неуспешной оплаты:
Завершение сценария
После заверше ния оплаты покупки происходит отображение финишного экрана внутри 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 в запросе на регистрацию заказа.