[Платежные системы, Разработка под e-commerce] Как мы сделали оплату по QR
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Всем привет! Сегодня с вами Владислав Козуля, тимлид команды Розница, и я расскажу, как начать платить по QR и ни в чём себе не отказывать. Моя команда делает продукт Касса МойСклад, которым часто пользуются наши клиенты, у которых есть точки продаж. Речь пойдёт о том, как разработка инструментов для повседневной работы выглядит изнутри.Что это вообще такоеДля начала немного контекста. Обычно, когда вы оплачиваете покупки на кассе, у вас есть выбор: платить наликом или картой. Технически между ними есть ещё один вариант — и тем, и тем, но он встречается гораздо реже. Или бонусной картой, а это вообще отдельная система. Короче, налик или карта.Теперь к ним добавляется новый способ — оплата по QR. Вместо того, чтобы насыпать монет или пикнуть эпплпеем об терминал, можно отсканировать QR-код и оплатить покупку через приложение банка.Тут возникает резонный вопрос: к чему заморачиваться с камерой на телефоне, если картой проще? Это выгодно магазину. Прикол в том, что для него комиссия с платежа (а магазин с каждой покупки платит комиссию банку) будет ниже. К тому же оплачивать по QR можно без терминала, то есть ещё и экономить на закупке оборудования. Поэтому продавец будет предлагать вам оплатить именно по QR.Коды бывают двух видов: статические и динамические. Статический код можно распечатать один раз и забыть. Отсканировав код, покупатель должен сам выбрать сумму перевода, поэтому такая схема больше подходит для чаевых или донатов. Чтобы оплачивать покупки, гораздо удобнее использовать динамические коды, которые генерируются на стороне банка. Этот процесс можно автоматизировать через кассовое ПО, что мы и сделали.
Разработчица Екатерина демонстрирует работу функции печати QR-кода на чекеУ Сбербанка для этого есть своя система — Плати по QR, Тинькофф работает по Системе Быстрых Платежей (СБП). При этом они интегрированы друг другом, то есть покупатель разницы не заметит. Обе системы с нашей стороны завёрнуты в единый API, поэтому для клиента тоже нет разницы.Разберём, как оплата по QR выглядит под капотом с точки зрения Кассы МойСклад.
- Пользователь МоегоСклада выбирает в настройках банк, с которым у него есть договор оплаты по QR. Теперь на его кассе появится новый способ оплаты.
- Кассир создаёт продажу — касса запрашивает у бэкэнда QR-код.
- Бэкэнд идёт в API банка, который выбрал пользователь из первого пункта. Получает строку, в которой зашиты данные для формирования платежа.
- Полученная строка прилетает на кассу и зашивается в QR-код, который можно отрисовать на UI или распечатать на чеке — очень удобно.
- Дальше мы опрашиваем банк до тех пор, пока он не скажет, что платеж дошел или был отменён.
- Можно печатать фискальный чек, ура!
Вроде, звучит просто, а значит — пора ожидать подводных камней.Подводные камниПомните, я упоминал, что обычно платят наличными или по карте? Когда проектировали базу, тоже так думали. Добавление нового типа оплаты означает добавление новых полей в базу (у нас PostgreSQL), причём в историю операций, одну из самых больших и популярных таблиц. На её основе формируются отчёты, одна из ключевых функций МоегоСклада. Это раз.Второй важный момент — остановка сервиса для обновления производится только в том случае, когда по-другому просто нельзя. А значит, наше решение должно заехать наживую. Эта часть заслуживает отдельной статьи.Кроме обычной оплаты также возможны такие экзотические операции, как: предоплата, возврат оплаты и возврат предоплаты. Все они должны корректно учитываться при работе с QR. Смешанную оплату QR + наличными или картой мы просто не стали делать, иначе бы окончательно запутались в стремительно усложняющейся логике.МойСклад не занимается процессингом платежей, только их учётом. Кассир возвращает вам деньги в руки или на карту своими силами, без участия кассового ПО. С оплатой по QR становится немного сложнее: теперь за отмену транзакции и возврат платежа отвечает бэкэнд. Для этого мы сохраняем её айдишник после инициализации.В API обе операции сидят на одном эндпоинте (скопировали у Тинькова). До проведения платежа транзакцию можно отменить, и при попытке оплаты покупатель увидит ошибку в приложении банка. Если оплата уже прошла, будет произведён возврат. В случае, когда на кассе что-то пошло не так, возврат всегда может сделать владелец магазина из своего личного кабинета в банке.Касса МойСклад — это не веб-сайт, а десктопное приложение и пара мобильных клиентов под iOS и Android. Они легко могут работать и при отсутствии связи месяцами: для этого там поднимается локальная база, то есть по сути, свой маленький бэкенд. Соответственно, миграцию надо проводить и на сервере, и на клиенте. Сломать локальную базу — означает превратить кассу в кирпич или ещё хуже: потерять все данные. Поистине апокалиптический сценарий для техподдержки.
Архитектура Кассы Мойсклад (упрощённая)Про десктопное приложение можно ещё много рассказать, поэтому остановимся на проблемах, которые актуальны конкретно для этой задачи.Фух.Мы запустили СБП с Тиньковым 1 октября, а 1 декабря — интеграцию со Сбером, Плати по QR. Уже почти февраль, и мы видим с десяток ежедневных платежей. Клиенты пользуются, люди оплачивают свои покупки по QR. А значит, всё было не зря!В следующем выпуске я подробно расскажу о том, как релиз с оплатой по QR заезжал на бэкенде. Следите за обновлениями!
===========
Источник:
habr.com
===========
Похожие новости:
- [Высокая производительность, PostgreSQL, SQL, Администрирование баз данных] DBA: Ночной Дозор
- [PostgreSQL, SQL, Администрирование баз данных, Управление разработкой] «PostgreSQL в кейсах» — продвинутый вебинар 28 января
- [Платежные системы] Обзор сервисов для получения актуальных курсов валют
- [Open source, PHP, PostgreSQL, GitHub, Laravel] Расширяем возможности миграций Laravel за счет Postgres
- [1С-Битрикс, CRM-системы, Разработка под e-commerce] Разработка бизнес-процесса в битрикс24. Советы директору
- [Python, Big Data, Разработка под e-commerce, Управление продуктом] Как мы в СберМаркете боремся с товарами-призраками
- [Информационная безопасность, Open source, JavaScript, Node.JS] CRUD для NMAP’а: решение для мониторинга открытых портов на хостах
- [Платежные системы] ЦБ ограничил работу платежного сервиса Сбербанка «ЮMoney» за работу с онлайн-казино
- [Open source, PHP, PostgreSQL, Совершенный код, GitHub] Интеграция PHP проекта на GitHub и Scrutinizer
- [PostgreSQL, SQL, Администрирование баз данных, ERP-системы] SQL HowTo: рейтинг-за-интервал
Теги для поиска: #_platezhnye_sistemy (Платежные системы), #_razrabotka_pod_ecommerce (Разработка под e-commerce), #_mojsklad (мойсклад), #_electron, #_postgresql, #_blog_kompanii_mojsklad (
Блог компании МойСклад
), #_platezhnye_sistemy (
Платежные системы
), #_razrabotka_pod_ecommerce (
Разработка под e-commerce
)
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 20:15
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Всем привет! Сегодня с вами Владислав Козуля, тимлид команды Розница, и я расскажу, как начать платить по QR и ни в чём себе не отказывать. Моя команда делает продукт Касса МойСклад, которым часто пользуются наши клиенты, у которых есть точки продаж. Речь пойдёт о том, как разработка инструментов для повседневной работы выглядит изнутри.Что это вообще такоеДля начала немного контекста. Обычно, когда вы оплачиваете покупки на кассе, у вас есть выбор: платить наликом или картой. Технически между ними есть ещё один вариант — и тем, и тем, но он встречается гораздо реже. Или бонусной картой, а это вообще отдельная система. Короче, налик или карта.Теперь к ним добавляется новый способ — оплата по QR. Вместо того, чтобы насыпать монет или пикнуть эпплпеем об терминал, можно отсканировать QR-код и оплатить покупку через приложение банка.Тут возникает резонный вопрос: к чему заморачиваться с камерой на телефоне, если картой проще? Это выгодно магазину. Прикол в том, что для него комиссия с платежа (а магазин с каждой покупки платит комиссию банку) будет ниже. К тому же оплачивать по QR можно без терминала, то есть ещё и экономить на закупке оборудования. Поэтому продавец будет предлагать вам оплатить именно по QR.Коды бывают двух видов: статические и динамические. Статический код можно распечатать один раз и забыть. Отсканировав код, покупатель должен сам выбрать сумму перевода, поэтому такая схема больше подходит для чаевых или донатов. Чтобы оплачивать покупки, гораздо удобнее использовать динамические коды, которые генерируются на стороне банка. Этот процесс можно автоматизировать через кассовое ПО, что мы и сделали. Разработчица Екатерина демонстрирует работу функции печати QR-кода на чекеУ Сбербанка для этого есть своя система — Плати по QR, Тинькофф работает по Системе Быстрых Платежей (СБП). При этом они интегрированы друг другом, то есть покупатель разницы не заметит. Обе системы с нашей стороны завёрнуты в единый API, поэтому для клиента тоже нет разницы.Разберём, как оплата по QR выглядит под капотом с точки зрения Кассы МойСклад.
Архитектура Кассы Мойсклад (упрощённая)Про десктопное приложение можно ещё много рассказать, поэтому остановимся на проблемах, которые актуальны конкретно для этой задачи.Фух.Мы запустили СБП с Тиньковым 1 октября, а 1 декабря — интеграцию со Сбером, Плати по QR. Уже почти февраль, и мы видим с десяток ежедневных платежей. Клиенты пользуются, люди оплачивают свои покупки по QR. А значит, всё было не зря!В следующем выпуске я подробно расскажу о том, как релиз с оплатой по QR заезжал на бэкенде. Следите за обновлениями! =========== Источник: habr.com =========== Похожие новости:
Блог компании МойСклад ), #_platezhnye_sistemy ( Платежные системы ), #_razrabotka_pod_ecommerce ( Разработка под e-commerce ) |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 20:15
Часовой пояс: UTC + 5