Principal
Sistem de plată prin telefon Este necesar să implementați o arhitectură în care clientul să poată plăti cumpărăturile la casă/KS (casă de autoservire) folosind o aplicație mobilă. Plata NU se face prin SBP. Când utilizatorul cumpără produse, alege să plătească folosind aplicația. Casierul sau KS trebuie să identifice utilizatorul și să inițieze procesul de plată cu banca clientului. CJM: - Casierul/utilizatorul scanează produsele. - Trece la plată. - Se identifică la casă/KS. - Alege să plătească în aplicația Magnit. - Accesează aplicația Magnit. - Alege banca instalată pe telefonul de pe care se face plata. - În aplicația băncii, efectuează plata. - Se întoarce la ecranul rezultatului plății în aplicația Magnit. - La casă/KS primește mesaj despre plata reușită. Cerinte non-funcționale: - DAU = 1000 în magazin - Număr de magazine 500 - Număr de case - în medie 5 case. - Plata trebuie să se realizeze în maximum 2 minute. - Pagina de plată trebuie să se deschidă în maximum 250ms.
sobes.tech AI
Răspuns de la AI
Для реализации системы оплаты с помощью мобильного приложения, не используя СБП, можно предложить следующую архитектуру:
-
Идентификация пользователя на кассе/КСО:
- Касса/КСО генерирует уникальный QR-код с информацией о покупке и идентификатором транзакции.
- Пользователь сканирует QR-код в приложении Магнит.
-
Переход в приложение Магнит:
- Приложение Магнит получает данные о покупке и предлагает выбрать банк для оплаты.
-
Оплата через банк:
- Приложение Магнит инициирует переход в приложение банка с передачей параметров оплаты (сумма, идентификатор транзакции).
- Пользователь подтверждает оплату в приложении банка.
-
Подтверждение оплаты:
- Банк отправляет уведомление о статусе оплаты в backend Магнита.
- Backend Магнита обновляет статус транзакции.
- Касса/КСО получает уведомление о успешной оплате через push-сообщение или polling.
-
Отображение результата:
- Приложение Магнит показывает результат оплаты.
- Касса/КСО завершает процесс покупки.
Нефункциональные требования:
- Для обеспечения DAU 1000 на магазин и 500 магазинов с 5 кассами каждая, система должна быть масштабируемой и распределённой.
- Использовать кэширование и быстрые очереди сообщений для минимизации задержек.
- Оптимизировать генерацию и обработку QR-кодов.
- Страница оплаты должна загружаться не более 250 мс — использовать CDN, минимизировать запросы.
- Время оплаты до 2 минут — предусмотреть асинхронные уведомления и таймауты.
Такой подход обеспечивает безопасность, масштабируемость и удобство для пользователя.