How erumpay/payment-service works
This is a Spring payment-service covering standard and merchant payments, QR checkout, Dutch split payments, and remote-payment requests. Its domain services coordinate payment state, persistence, and external authorization, card, payment-gateway, merchant, and recommendation clients; Dutch and remote flows also provide live status updates. The README gives no workflow detail, and controllers and several subsystems were not sampled, so their entry-point wiring is not asserted. Edges below are limited to relationships visible in sampled excerpts or the source index.
Main entry points: CoreService.java Payment Orchestration · CoreRepository.java Payment Records · RemotePayService.java Remote Payments · MerchantPaymentService.java Merchant Payments
Components 28
Core Payments
- Core API
src/main/java/com/erumpay/payment/core/controller/CoreController.java - Payment Orchestration
src/main/java/com/erumpay/payment/core/service/CoreService.java - Payment Persistence
src/main/java/com/erumpay/payment/core/service/CorePgPaymentPersistenceService.java - Payment Validation
src/main/java/com/erumpay/payment/core/service/CoreValidationService.java - Payment Records
src/main/java/com/erumpay/payment/core/dao/CoreRepository.java - Card Records
src/main/java/com/erumpay/payment/core/dao/CardDetailRepository.java - Payment State
src/main/java/com/erumpay/payment/core/domain/entity/CoreEntity.java
Payment Integrations
- Auth Client
src/main/java/com/erumpay/payment/core/client/auth/AuthClient.java - Card Client
src/main/java/com/erumpay/payment/core/client/card/CardClient.java - Gateway Client
src/main/java/com/erumpay/payment/core/client/pg/PgClient.java - Recommendation Client
src/main/java/com/erumpay/payment/core/client/recommend/RecommendClient.java
Merchant and QR
- Merchant Payments
src/main/java/com/erumpay/payment/merchant/service/MerchantPaymentService.java - Merchant API
src/main/java/com/erumpay/payment/merchant/controller/MerchantPaymentController.java - Merchant Lookup
src/main/java/com/erumpay/payment/merchant/client/MerchantClient.java - QR Checkout
src/main/java/com/erumpay/payment/qr/service/QrService.java - QR Records
src/main/java/com/erumpay/payment/qr/dao/QrRepository.java
Split and Remote
- Dutch Payments
src/main/java/com/erumpay/payment/dutch/service/DutchPayService.java - Dutch Sessions
src/main/java/com/erumpay/payment/dutch/dao/DutchPaySessionRepository.java - Participants
src/main/java/com/erumpay/payment/dutch/dao/DutchPayParticipantRepository.java - Remote Payments
src/main/java/com/erumpay/payment/remote/service/RemotePayService.java - Remote Requests
src/main/java/com/erumpay/payment/remote/dao/RemotePayRequestRepository.java - Friend Validator
src/main/java/com/erumpay/payment/remote/service/RemotePayFriendValidator.java
Live Updates
- Dutch Live Updates
src/main/java/com/erumpay/payment/dutch/service/DutchPaySseService.java - Remote Live Updates
src/main/java/com/erumpay/payment/remote/service/RemotePaySseService.java - Payment Notifications
src/main/java/com/erumpay/payment/notification/service/PaymentNotificationEventPublisher.java
Other components
- User
- Merchant Client
- Payment Gateway
Connections 30
- Payment Orchestration → Auth Client: calls
src/main/java/com/erumpay/payment/core/service/CoreService.java - Payment Orchestration → Card Client: calls
src/main/java/com/erumpay/payment/core/service/CoreService.java - Payment Orchestration → Gateway Client: calls
src/main/java/com/erumpay/payment/core/service/CoreService.java - Payment Orchestration → Recommendation Client: calls
src/main/java/com/erumpay/payment/core/service/CoreService.java - Payment Orchestration → Payment Records: reads/writes
src/main/java/com/erumpay/payment/core/service/CoreService.java - Payment Orchestration → Card Records: reads/writes
src/main/java/com/erumpay/payment/core/service/CoreService.java - Payment Orchestration → Payment Persistence: delegates to
src/main/java/com/erumpay/payment/core/service/CoreService.java - Payment Persistence → Payment Records: reads/writes
src/main/java/com/erumpay/payment/core/service/CorePgPaymentPersistenceService.java - Merchant Payments → Payment Records: reads/writes
src/main/java/com/erumpay/payment/merchant/service/MerchantPaymentService.java - Merchant Payments → Card Records: reads
src/main/java/com/erumpay/payment/merchant/service/MerchantPaymentService.java - Merchant Payments → Gateway Client: calls
src/main/java/com/erumpay/payment/merchant/service/MerchantPaymentService.java - Merchant Payments → Merchant Lookup: calls
src/main/java/com/erumpay/payment/merchant/service/MerchantPaymentService.java - QR Checkout → Payment Records: reads/writes
src/main/java/com/erumpay/payment/qr/service/QrService.java - QR Checkout → QR Records: reads/writes
src/main/java/com/erumpay/payment/qr/service/QrService.java - QR Checkout → Payment Persistence: delegates to
src/main/java/com/erumpay/payment/qr/service/QrService.java - QR Checkout → Merchant Lookup: calls
src/main/java/com/erumpay/payment/qr/service/QrService.java - Dutch Payments → Payment Records: reads/writes
src/main/java/com/erumpay/payment/dutch/service/DutchPayService.java - Dutch Payments → Dutch Sessions: reads/writes
src/main/java/com/erumpay/payment/dutch/service/DutchPayService.java - Dutch Payments → Participants: reads/writes
src/main/java/com/erumpay/payment/dutch/service/DutchPayService.java - Dutch Payments → Dutch Live Updates: publishes updates
src/main/java/com/erumpay/payment/dutch/service/DutchPayService.java - Remote Payments → Payment Records: reads
src/main/java/com/erumpay/payment/remote/service/RemotePayService.java - Remote Payments → Remote Requests: reads/writes
src/main/java/com/erumpay/payment/remote/service/RemotePayService.java - Remote Payments → Friend Validator: calls
src/main/java/com/erumpay/payment/remote/service/RemotePayService.java - Remote Payments → Remote Live Updates: publishes updates
src/main/java/com/erumpay/payment/remote/service/RemotePayService.java - Remote Payments → Payment Notifications: publishes events
src/main/java/com/erumpay/payment/remote/service/RemotePayService.java - Dutch Live Updates → Dutch Sessions: reads
src/main/java/com/erumpay/payment/dutch/service/DutchPaySseService.java - Dutch Live Updates → Participants: reads
src/main/java/com/erumpay/payment/dutch/service/DutchPaySseService.java - Payment Gateway → Gateway Client: payment calls
- User → Core API: requests
- User → Merchant API: requests