Principal
Sistema de pagamento por telefone É necessário implementar uma arquitetura onde o cliente possa pagar compras na caixa/KS (caixa de autoatendimento) usando um aplicativo móvel. O pagamento NÃO é feito via SBP. Ao comprar produtos, o usuário escolhe pagar usando o aplicativo. A caixa ou KS deve identificar o usuário e iniciar o processo de pagamento com o banco do cliente. CJM: - O caixa/cliente escaneia os produtos. - Vai para o pagamento. - É identificado na caixa/KS. - Escolhe pagar no aplicativo Magnit. - Entra no aplicativo Magnit. - Seleciona o banco instalado no telefone do qual o pagamento será feito. - No aplicativo do banco, realiza o pagamento. - Volta para a tela de resultado do pagamento no aplicativo Magnit. - Na caixa/KS, recebe a mensagem de pagamento bem-sucedido. Requisitos não funcionais: - DAU = 1000 na loja - Número de lojas 500 - Número de caixas - em média 5 caixas. - O pagamento deve ocorrer em no máximo 2 minutos. - A página de pagamento deve abrir em no máximo 250ms.
sobes.tech IA
Resposta da IA
Для реализации системы оплаты с помощью мобильного приложения, не используя СБП, можно предложить следующую архитектуру:
-
Идентификация пользователя на кассе/КСО:
- Касса/КСО генерирует уникальный QR-код с информацией о покупке и идентификатором транзакции.
- Пользователь сканирует QR-код в приложении Магнит.
-
Переход в приложение Магнит:
- Приложение Магнит получает данные о покупке и предлагает выбрать банк для оплаты.
-
Оплата через банк:
- Приложение Магнит инициирует переход в приложение банка с передачей параметров оплаты (сумма, идентификатор транзакции).
- Пользователь подтверждает оплату в приложении банка.
-
Подтверждение оплаты:
- Банк отправляет уведомление о статусе оплаты в backend Магнита.
- Backend Магнита обновляет статус транзакции.
- Касса/КСО получает уведомление о успешной оплате через push-сообщение или polling.
-
Отображение результата:
- Приложение Магнит показывает результат оплаты.
- Касса/КСО завершает процесс покупки.
Нефункциональные требования:
- Для обеспечения DAU 1000 на магазин и 500 магазинов с 5 кассами каждая, система должна быть масштабируемой и распределённой.
- Использовать кэширование и быстрые очереди сообщений для минимизации задержек.
- Оптимизировать генерацию и обработку QR-кодов.
- Страница оплаты должна загружаться не более 250 мс — использовать CDN, минимизировать запросы.
- Время оплаты до 2 минут — предусмотреть асинхронные уведомления и таймауты.
Такой подход обеспечивает безопасность, масштабируемость и удобство для пользователя.