Principal
Système de paiement par téléphone Il est nécessaire de mettre en place une architecture où le client peut payer ses achats à la caisse/KS (caisse en libre-service) via une application mobile. Le paiement ne se fait PAS via SBP. Lorsqu'un utilisateur achète des produits, il choisit de payer via l'application. La caisse ou KS doit identifier l'utilisateur et lancer le processus de paiement avec la banque du client. CJM: - Le caissier/le client scanne les produits. - Passe à la caisse. - S'identifie à la caisse/KS. - Choisit de payer via l'application Magnit. - Accède à l'application Magnit. - Sélectionne la banque installée sur le téléphone à partir de laquelle le paiement est effectué. - Effectue le paiement dans l'application bancaire. - Retourne à l'écran de résultat du paiement dans l'application Magnit. - La caisse/KS reçoit un message de paiement réussi. Exigences non fonctionnelles: - DAU = 1000 en magasin - Nombre de magasins 500 - Nombre de caisses - en moyenne 5 caisses. - Le paiement doit être effectué en maximum 2 minutes. - La page de paiement doit s'ouvrir en maximum 250 ms.
sobes.tech IA
Réponse de l'IA
Для реализации системы оплаты с помощью мобильного приложения, не используя СБП, можно предложить следующую архитектуру:
-
Идентификация пользователя на кассе/КСО:
- Касса/КСО генерирует уникальный QR-код с информацией о покупке и идентификатором транзакции.
- Пользователь сканирует QR-код в приложении Магнит.
-
Переход в приложение Магнит:
- Приложение Магнит получает данные о покупке и предлагает выбрать банк для оплаты.
-
Оплата через банк:
- Приложение Магнит инициирует переход в приложение банка с передачей параметров оплаты (сумма, идентификатор транзакции).
- Пользователь подтверждает оплату в приложении банка.
-
Подтверждение оплаты:
- Банк отправляет уведомление о статусе оплаты в backend Магнита.
- Backend Магнита обновляет статус транзакции.
- Касса/КСО получает уведомление о успешной оплате через push-сообщение или polling.
-
Отображение результата:
- Приложение Магнит показывает результат оплаты.
- Касса/КСО завершает процесс покупки.
Нефункциональные требования:
- Для обеспечения DAU 1000 на магазин и 500 магазинов с 5 кассами каждая, система должна быть масштабируемой и распределённой.
- Использовать кэширование и быстрые очереди сообщений для минимизации задержек.
- Оптимизировать генерацию и обработку QR-кодов.
- Страница оплаты должна загружаться не более 250 мс — использовать CDN, минимизировать запросы.
- Время оплаты до 2 минут — предусмотреть асинхронные уведомления и таймауты.
Такой подход обеспечивает безопасность, масштабируемость и удобство для пользователя.