Principal
Telefoonbetalingssysteem Het is nodig om een architectuur te implementeren waarbij de klant aankopen kan betalen bij de kassa/KS (selfservicekassa) via een mobiele app. De betaling gebeurt NIET via SBP. Wanneer de gebruiker producten koopt, kiest hij ervoor te betalen via de app. De kassa of KS moet de gebruiker identificeren en het betalingsproces starten met de bank van de klant. CJM: - De kassamedewerker/de klant scant de producten. - Gaat naar betalen. - Wordt geïdentificeerd bij de kassa/KS. - Kies betalen via de Magnit-app. - Ga naar de Magnit-app. - Selecteer de bank die op de telefoon is geïnstalleerd en waarmee betaald wordt. - Voer de betaling uit in de bankapp. - Keer terug naar het scherm met de betalingsresultaten in de Magnit-app. - Ontvangt bij de kassa/KS een bericht van succesvolle betaling. Niet-functionele vereisten: - DAU = 1000 in de winkel - Aantal winkels 500 - Aantal kassa's - gemiddeld 5 kassa's. - Betaling moet binnen maximaal 2 minuten plaatsvinden. - De betaalpagina moet binnen maximaal 250ms openen.
sobes.tech AI
Antwoord van AI
Для реализации системы оплаты с помощью мобильного приложения, не используя СБП, можно предложить следующую архитектуру:
-
Идентификация пользователя на кассе/КСО:
- Касса/КСО генерирует уникальный QR-код с информацией о покупке и идентификатором транзакции.
- Пользователь сканирует QR-код в приложении Магнит.
-
Переход в приложение Магнит:
- Приложение Магнит получает данные о покупке и предлагает выбрать банк для оплаты.
-
Оплата через банк:
- Приложение Магнит инициирует переход в приложение банка с передачей параметров оплаты (сумма, идентификатор транзакции).
- Пользователь подтверждает оплату в приложении банка.
-
Подтверждение оплаты:
- Банк отправляет уведомление о статусе оплаты в backend Магнита.
- Backend Магнита обновляет статус транзакции.
- Касса/КСО получает уведомление о успешной оплате через push-сообщение или polling.
-
Отображение результата:
- Приложение Магнит показывает результат оплаты.
- Касса/КСО завершает процесс покупки.
Нефункциональные требования:
- Для обеспечения DAU 1000 на магазин и 500 магазинов с 5 кассами каждая, система должна быть масштабируемой и распределённой.
- Использовать кэширование и быстрые очереди сообщений для минимизации задержек.
- Оптимизировать генерацию и обработку QR-кодов.
- Страница оплаты должна загружаться не более 250 мс — использовать CDN, минимизировать запросы.
- Время оплаты до 2 минут — предусмотреть асинхронные уведомления и таймауты.
Такой подход обеспечивает безопасность, масштабируемость и удобство для пользователя.