Ерем Шахбазян › Erem01 Сбер ID
Делаю сложные задачи простыми решениями
Рейтинг
9 609
№ 111 в каталоге
Отзывы
Профессионализм
9/10
Коммуникация
9 /10
Город
Москва
Опыт работы
5 лет
На сайте с
2025 года
Юридический статус
Самозанятый

Сервис оплаты по QR-коду на FastAPI: разбор строки ГОСТ ST00012 и ссылки на оплату в приложениях банков с выбором банка на телефоне

Используемые навыки API FastAPI JavaScript Python REST

Описание

Заказчику нужен был бэкенд для оплаты по платёжному QR-коду. Внутри такого QR лежит строка формата ST00012 по ГОСТ Р 56042-2014 — получатель, счёт, БИК, сумма, назначение платежа. Задача — по этой строке выдавать ссылки, которые открывают оплату сразу в мобильном приложении выбранного банка, а для покупателя сделать простые страницы: выбрать банк и перейти к оплате с телефона.

Работа шла по техническому заданию в два этапа, с жёсткими требованиями к валидации и обработке ошибок.

Решение

Сделал сервис на Python и FastAPI.

Первый этап — API генерации ссылок. Эндпоинт принимает банк, операционную систему и строку ГОСТ. Строка разбирается на поля, суммы приводятся к числу, проверяется наличие всех обязательных реквизитов. На битую строку, неизвестный банк или ОС сервис отвечает понятной ошибкой с причиной, а не падает. Генерация ссылок вынесена в одну функцию — реальные схемы банков подставляются там, остальной код не трогается. Поддержаны Т-Банк, Альфа-Банк, Сбербанк, ВТБ, Газпромбанк, Ozon и Wildberries.

Второй этап — универсальная ссылка для покупателя. Страница сама определяет iOS или Android, запрашивает у сервера ссылки и по очереди пробует открыть приложение банка; если за секунду приложение не открылось, переходит к следующему варианту, а в конце подсказывает установить приложение. Плюс страница выбора банка перед оплатой.

Перед публикацией добавил 15 автотестов — разбор строки, включая битые варианты, ответы API и отдачу страниц, — и оформил страницы под телефон. Документация API генерируется автоматически.

Результат

Готовый бэкенд, который превращает платёжный QR в оплату в один тап в приложении нужного банка. Ошибки в реквизитах ловятся на входе с понятным сообщением, поведение закреплено тестами.

Ссылки по ТЗ пока тестового вида — подключение настоящих схем банков сводится к правке одной функции. Код открыт, запуск одной командой, документация API доступна прямо в браузере.

Оценили проект:

Другие проекты

Все проекты →
Веб-разработка и IT Реализация алгоритмов поиска пути для агента Pacman: DFS, BFS, Uniform Cost Search и A* для навигации в лабиринте
Реализация алгоритмов поиска пути для агента Pacman: DFS, BFS, Uniform Cost Search и A* для навигации в лабиринте
204
Веб-разработка и IT Корпоративный VPN-сервис с маскировкой трафика и системой белых списков
Корпоративный VPN-сервис с маскировкой трафика и системой белых списков
421
Дизайн и Брендинг Система парсинга данных с антидетектом и прокси для сбора информации с маркетплейсов
Система парсинга данных с антидетектом и прокси для сбора информации с маркетплейсов
218
Веб-разработка и IT Telegram-бот для автоматизации обработки заявок и интеграции с CRM
Telegram-бот для автоматизации обработки заявок и интеграции с CRM
347