Principal
Payment system via phone Design an architecture where a customer can pay for purchases at a checkout/self-service kiosk using a mobile app. Payment is NOT via SBP. When a user buys goods, they choose to pay via the app. The cashier or kiosk must identify the user and initiate the payment process through the bank. System: - Cashier/customer scans goods. - Proceed to payment. - Identifies at the checkout/kiosk. - Chooses to pay in the Magnit app. - Opens the Magnit app. - Selects the bank installed on the phone for payment. - Pays for the purchase in the bank app. - Returns to the payment result screen in the Magnit app. - Receives a message about successful payment at the checkout/kiosk. Non-functional requirements: - DAU = 1000 in the store - Number of stores 500 - Number of cash registers - about 5 on average. - Payment must be completed within 2 minutes. - Payment page should open within 250ms.
sobes.tech AI
Answer from AI
To implement a payment system through a mobile application without using SBP, the following architecture can be proposed:
-
User identification at the checkout/CSO
- The user scans the products.
- When proceeding to payment, selects payment via the Magnit app.
- The checkout/CSO offers the user to authenticate, for example, via QR code, NFC, or entering a code that links the checkout and the mobile app.
-
Start of the payment process
- After identification, the checkout transmits the purchase amount and details to the Magnit app.
- The Magnit app opens on the user's phone (via deep link or push notification).
- The user selects a bank from the list of installed banking applications.
-
Payment through the bank
- The Magnit app transmits data to the selected banking app via a standard protocol (e.g., Intent on Android or URL scheme on iOS).
- The user confirms the payment in the banking app.
-
Payment confirmation
- The bank sends a confirmation of successful payment back to the Magnit app.
- The Magnit app notifies the checkout/CSO of the payment result via the server.
- The checkout/CSO displays a message about the successful payment.
Non-functional requirements and their implementation:
- DAU = 1000 in the store, 500 stores, 5 checkouts on average:
- The server infrastructure should be scalable, use load balancers, and caching.
- Payment within 2 minutes maximum:
- Minimize delays at each stage, use fast communication protocols.
- Payment page opens within 250 ms:
- Use deep linking, pre-load data in the Magnit app.
Interaction example:
- The user scans products at the checkout.
- The checkout generates a QR code with purchase and session information.
- The user scans the QR code in the Magnit app.
- The Magnit app shows the amount and offers to select a bank.
- After selecting a bank, the user is redirected to the banking app for payment.
- After successful payment, a confirmation is returned, the checkout receives a signal, and the transaction is completed.