Table of Contents |
---|
Использование Cashbox API
...
Процесс оплаты выглядит следующим образом:
Касса отправляет чек в систему SWiP.
Пользователь получает чек в мобильном приложении SWiP и оплачивает.
Касса получает от системы SWiP статус оплаты и закрывает чек.
Использование QR-кода
Взаимодействие мобильного приложения с кассой или интернет-магазином осуществляется через сервер SWiP. Чтобы клиент мог получить чек, ему надо знать его идентификатор. В роли идентификатора выступает QR-код.
...
В этом случае клиент запрашивает чек по идентификатору кассы. Такой подход возможен только в случае, если касса работает в режиме одного активного ордера. Сам QR-код может быть напечатан один раз и он не меняется, если идентификатор кассы не был изменен (помещается непосредственно на кассе).
Место применения:
оффлайн-магазин;
фастфуд;
кофейня.
QR-код с идентификатором ордера
Для каждого заказа создается свой QR-код. Он может либо печататься каждый раз, либо отображаться на мониторе.
Место применения:
ресторан (печатается на пречеке);
онлайн-магазин (показывается на странице оплаты);
оффлайн-магазин (показывается на экране кассы или монитора).
QR-код с идентификатором клиента
Пользователь показывает QR-код на телефоне, касса с помощью 2D-сканера сканирует и отправляет его на сервер. Клиент отправляет запрос на сервер по своему идентификатору.
Место применения:
магазин, оборудованный 2D-сканером.
Схема взаимодействия
Drawio | ||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
...
Касса может работать в двух режимах: последовательный и параллельный.
Последовательный режим. Активным является только один ордер. Нельзя создавать новый ордер пока предыдущий не будет оплачен или отменен. С таким режимом работают кассы в оффлайн-магазине или фастфуде, где оплата производится перед получением товара/покупки.
Параллельный режим. Может быть много открытых ордеров. В этом режиме работают кассы в ресторане, интернет-магазине.
С точки зрения сервиса SWiP различие только в типе QR-кода. Со стороны кассы различие более существенное. Ниже представлены сценарии, подробно описывающие поведение системы.
Сценарии использования
Noteinfo |
---|
Параметры, указанные в синих квадратных скобках, конфигурируются администратором в настройках плагина SWiP для кассы. |
Оплата в оффлайн-магазине/фастфуде: QR-код
Действующие лица | Пользователь, Кассир, Касса |
---|---|
Описание | Оплата покупки в оффлайн-магазине с использованием платежной системы SWiP. |
Триггер | Пользователь сообщает кассиру, что хочет произвести оплату через |
сервис SWiP. | |
Предусловия | Касса работает в режиме одного активного |
---|
ордера [ single.order=true ] | |
Цели | Пользователь: оплатить покупку платежной системой SWiP. |
---|---|
Успешный сценарий:
|
|
| |
Результат | Пользователь успешно оплатил покупку платежной системой SWiP. |
---|---|
Расширения: | |
3a | Кассир отменяет ордер. |
3b | Касса отменяет ордер по тайм-ауту (30 секунд). |
4a | Пользователь показывает QR-код на телефоне, в этот момент он ожидает чек с сервера. Результат: Переход к шагу 5. |
6a | Пользователь не может оплатить (нет денег, недоступен банк, нет интернет-соединения), кассир нажимает "Отмена" или касса выходит по тайм-ауту. Результат: Вызывается сценарий "Отмена заказа". |
7a | Касса в течение установленного тайм-аута не подтвердила проведение оплаты. Результат: Происходит возврат на оплату. Возвращаются параметры со статусом OPEN. |
7b | Касса в течение установленного тайм-аута не вызвала метод закрытия заказа. |
7c | Касса не вызвала метод закрытия заказа. Результат: Следующий заказ закрывает предыдущий. Заказ не оплачен, возвращаются параметры со статусом CLOSED. |
Оплата в оффлайн-магазине/фастфуде: SELFIETOPAY
Действующие лица | Пользователь, Кассир, Касса |
---|---|
Описание | Оплата покупки в оффлайн-магазине с использованием платежной системы SWiP. |
Триггер | Пользователь сообщает, что будет оплачивать |
приложением SWiP путем STP. | |
Предусловия | Касса работает в режиме одного активного |
---|
ордера [ single.order=true ] | |
Цели | Пользователь: оплатить покупку платежной системой SWiP. |
---|---|
Успешный сценарий:
| |
Результат | Пользователь успешно оплатил покупку платежной системой SWiP. |
Расширения: | |
3a | Кассир отменяет заказ. |
3b | Касса выходит по тайм-ауту (время ожидания камеры максимум 10 секунд) |
4a | Пользователь не может оплатить (нет денег, недоступен банк, нет интернет-соединения), кассир нажимает "Отмена" или касса выходит по тайм-ауту. Результат: Вызывается сценарий "Отмена заказа". |
5a | Касса в течение установленного тайм-аута не подтвердила проведение оплаты. Результат: Происходит возврат на оплату. Возвращаются параметры со статусом OPEN. |
5b | Касса в течение установленного тайм-аута не вызвала метод закрытия заказа. |
5c | Касса не вызвала метод закрытия заказа. Результат: Следующий заказ закрывает предыдущий. Заказ не оплачен, возвращаются параметры со статусом CLOSED. |
Оплата в ресторане
Действующие лица | Пользователь, Официант, Касса |
---|---|
Описание | Оплата счета в ресторане с использованием платежной системы SWiP. |
Триггер | Пользователь сообщает, что хочет оплатить счет. |
Предусловия | Касса работает в режиме нескольких активных |
ордеров [ single.order = false ] | |
Цели | Пользователь: оплатить счет платежной системой SWiP. |
---|---|
Успешный сценарий:
|
| |
Результат | Пользователь успешно оплатил счет платежной системой SWiP. |
---|---|
Расширения: | |
5a | Пользователь решает заказать дополнительные блюда. Результат: Официант вызывает отмену пречека. |
7a | Пользователь решает заказать дополнительные блюда после того, как нажал кнопку "Оплатить" в мобильном приложении. Результат: Печатается второй пречек. |
7b | Пользователь решает заказать дополнительные блюда после того, как нажал кнопку "Оплатить" в мобильном приложении. Результат: Официант вызывает отмену пречека, осуществляет возврат денег, добавляет новый товар и печатает новый пречек. |
7c | Пользователь решает заказать дополнительные блюда после того, как нажал кнопку "Оплатить" в мобильном приложении. Результат: Касса добавляет тип |
оплаты SWiP с уже оплаченной суммой, официант предлагает пользователю доплатить любым типом оплаты (банковская карта, наличный расчет). | |
8a | Пользователь не может оплатить (нет денег, недоступен банк, нет интернет-соединения), официант нажимает "Отмена" или касса выходит по тайм-ауту. Результат: Вызывается сценарий "Отмена заказа". |
---|---|
9a | Касса в течение установленного тайм-аута не подтвердила проведение оплаты. Результат: Происходит возврат на оплату. Возвращаются параметры со статусом OPEN. |
9b | Касса в течение установленного тайм-аута не вызвала метод закрытия заказа. |
9c | Касса не вызвала метод закрытия заказа. Результат: Следующий заказ закрывает предыдущий. Заказ не оплачен, возвращаются параметры со статусом CLOSED. |
Оплата в интернет-магазине (ПК)
Действующие лица | Пользователь, Система |
---|---|
Описание | Оплата покупки в онлайн-магазине с использованием платежной системы SWiP. |
Триггер | Пользователь выбирает способ оплаты SWiP. |
Предусловия | Заходит на сайт магазина с ПК. |
Цели | Пользователь: оплатить покупку платежной системой SWiP. |
Успешный сценарий:
|
|
| |
Результат | Пользователь успешно оплатил покупку платежной системой SWiP. |
---|---|
Расширения: | |
5a | Пользователь не может оплатить (нет денег, недоступен банк, нет интернет-соединения), касса выходит по тайм-ауту. Результат: Вызывается сценарий "Отмена заказа". |
Оплата в интернет-магазине (смартфон)
Действующие лица | Пользователь, Система |
---|---|
Описание | Оплата покупки в онлайн-магазине с использованием платежной системы SWiP. |
Триггер | Пользователь выбирает способ оплаты SWiP. |
Предусловия | Заходит на сайт магазина со смартфона. |
Цели | Пользователь: оплатить счет платежной системой SWiP. |
Успешный сценарий:
|
|
| |
Результат | Пользователь успешно оплатил покупку платежной системой SWiP. |
---|---|
Расширения: | |
3a | Пользователь делает снимок экрана с QR-кодом на смартфоне, выходит из браузера, открывает мобильное приложение SWiP, загружает картинку с QR-кодом из галереи, приложение считывает код. Результат: Переход к шагу 4. |
5a | Пользователь не может оплатить (нет денег, недоступен банк, нет интернет-соединения), касса выходит по тайм-ауту. Результат: Вызывается сценарий "Отмена заказа". |
Anchor | ||||
---|---|---|---|---|
|
Действующие лица | Касса |
---|---|
Описание | Отмена заказа до оплаты пользователем. |
Триггер | Завершился тайм-аут или кассир нажал кнопку "Отмена". |
Предусловия | Заказ/покупка еще не оплачен. |
Цели | Отменить заказ. |
Успешный сценарий:
|
Возврат денег
Действующие лица | Пользователь, Кассир, Касса |
---|---|
Описание | Возврат денег после осуществления оплаты покупки. |
Триггер | Пользователь сообщает, что хочет вернуть деньги за товар. |
Предусловия | Заказ/покупка оплачен. |
Цели | Вернуть деньги пользователю по чеку. |
Успешный сценарий:
| |
Результат | Деньги возвращены пользователю. |
Расширения: | |
2a | Сумма возврата меньше суммы чека. Результат: В параметрах передается часть суммы чека. Осуществляется частичный возврат. |
Получить все заказы
Действующие лица | Касса |
---|---|
Описание | Получение списка со всеми заказами за день. |
Триггер | В кассе произошел сбой. |
Предусловия | |
Цели | Получить список всех заказов за определенный день. |
Сценарий: 1. Касса запрашивает список заказов за необходимый день. | |
Результат | Касса: успешно получила выписку со всеми заказами. |
Обработка исключительных сценариев
Действующие лица | Пользователь, Касса |
---|---|
Описание | Деньги списаны с мобильного приложения пользователя, а касса не смогла получить оплаченный заказ. |
Триггер | Выключение света/интернета после отправки заказа кассой. |
Цели | Произвести возврат денежных средств пользователю. |
Сценарий:
|