Предусловия
Должен быть инициирован "сценарий оплаты" (не описанный отдельно), который служит контекстом для хранения переменных, используемых для формирования платежной транзакции. Одна из таких переменных - метод оплаты, получение которого является целью описываемого сценария. Данный сценарий является частью упомянутого общего "сценария оплаты".
Сценарий
- Отображается экран выбора метода оплаты, на котором происходит взаимодействие с пользователем
- Результатом взаимодействия п.1 является выбранный пользователем метод оплаты, сохраненный системой в контексте текущего "сценария оплаты". Метод оплаты - это переменная, принимающая одно из значений:
- Наличные
- Банковская карта
- Электронные деньги
Выбранный метод оплаты может показываться на экране в продолжение всего "сценария оплаты", однако это не обязательно. Метод оплаты влияет на последовательность экранов, которые будут отображаться далее (например, для наличных - это экран внесения денег, а для банковской карты - экран ввода данных карты).
3a. Если выбран метод оплаты наличными, то инициируется сценарий оплаты наличными
3b. Если выбран метод оплаты картой, то инициируется сценарий оплаты картой
3c. Если выбран метод оплаты электронными деньгами, то открывается экран выбора приложения электронных денег, на котором происходит взаимодействие с пользователем.
3c.1. Идентификатор выбранного приложения (иначе - типа электронных денег) сохраняется наряду с методом оплаты "электронные деньги". Выбранный тип электронных денег может показываться на экране в продолжение всего "сценария оплаты", однако это не обязательно.
Внимание: каждое приложение для работы с тем или иным типом электронных денег должно быть специальным образом зарегистрировано в системе. Оно должно предоставлять в качестве одного из публичных компонентов сценарий (экран) авторизации для доступа к своему аккаунту. Типичным таким приложением является приложение "Личный кабинет Visa QIWI Wallet"
3c.2. В соответствии с выбранным типом электронных денег, вызывается соответствующий сценарий (экран) авторизации для доступа к аккаунту этого приложения (т.е. например, к кошельку Visa QIWI Wallet).
3c.3. После успешной авторизации в 3c.2, система сохраняет в контексте "сценария оплаты" соответствующие креденциалы или токен владельца аккаунта для возможности последующей авторизации операции от имени этого аккаунта.