1.1 KiB
1.1 KiB
sequenceDiagram
participant User as User
participant Controller as Controller
participant PaymentService as PaymentService
participant Gateway as PaymentGateway
participant DB as Database
User ->> Controller: Initiate Payment
Controller ->> PaymentService: Process Payment
PaymentService ->> Gateway: Call Payment Gateway
alt Successful Payment
Gateway -->> PaymentService: Payment Success
PaymentService ->> DB: Save Transaction
DB -->> PaymentService: Transaction Saved
PaymentService -->> Controller: Payment Processed
Controller -->> User: Payment Successful
else External Gateway Failure
Gateway -->> PaymentService: Payment Failed
PaymentService -->> Controller: Payment Failed
Controller -->> User: Payment Failed
else DB Failure
Gateway -->> PaymentService: Payment Success
PaymentService ->> DB: Save Transaction
DB -->> PaymentService: DB Error
PaymentService ->> Controller: Rollback Transaction
Controller -->> User: Payment Failed
end