Предусловия
Считаем, что этот сценарий вызывается из некоего общего "сценария оплаты", в котором инициализирован объект платежной транзакции. Сценарий оплаты наличными вызывается тогда, когда в рамках общего сценария оплаты пользователь выбрал метод оплаты наличными.
Предполагается, что в транзакции уже присутствует ID провайдера (сервиса), в пользу которого будет производиться оплата.
В зависимости от специфических условий приложения, перед началом сценария может быть задана фиксированная сумма к оплате. Например, если производится оплата выставленного счета, или если пополнение баланса у провайдера возможно только на одну из фиксированных сумм.
Сценарий
- Отрабатывается сценарий выбора метода перечисления сдачи, по результатам которого определяются параметры вспомогательной транзакции перечисления сдачи:
- Идентификатор провайдера (сервиса)
- Номер счета для перечисления сдачи
- Отображается экран проверки введенных данных
- В контекст сценария подгружается профиль комиссии на внесение наличных в пользу известного провайдера (сервиса), для известного времени и места совершения транзакции. Загруженный профиль комиссии должен иметь вариацию только по внесенной сумме наличных.
- Вызывается сценарий внесения денег в купюроприемник. По его окончании становятся известны, помимо ранее заданных для транзакции величин:
- Сумма, принятая купюроприемником
- Сумма к зачислению после вычета терминальной комиссии
- Если для транзакции задана фиксированная сумма и сумма (4.2) превышает эту сумму, то сумма превышения запоминается как (4.3) Сумма сдачи. При этом от нее вычисляется (4.4) Сумма комиссии на сдачу
- Суммы (4.1) и (4.2) добавляются в соответствующие поля транзакции. Транзакция отправляется в процессинг для авторизации, ответ приходит в режиме онлайн.
- Если сумма сдачи (4.3) не нулевая, то она, а также разность (4.3)-(4.4) (сумма сдачи к зачислению), добавляются во вспомогательную транзакцию перечисления сдачи, и транзакция отправляется в процессинг для авторизации, ответ приходит в режиме онлайн.
- Печатается чек с информацией о совершенных транзакциях и результате их авторизации
- Параллельно с (8) отображается экран завершения оплаты