Skip to content

A Spring Boot–based payment microservice integrating Razorpay and Stripe using a strategy pattern for scalable and extensible payment processing.

Notifications You must be signed in to change notification settings

rishiica8/payment_Service

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

💳 Payment Service

A standalone Spring Boot–based payment microservice that integrates multiple payment gateways using a clean, extensible architecture. The service supports secure payment initiation, verification, and asynchronous webhook handling for real-world payment flows.

🚀 Features

Integration with Razorpay and Stripe payment gateways

Strategy-based design pattern for extensible multi-gateway support

APIs for order creation, payment initiation, and verification

Webhook endpoints to handle asynchronous payment status updates

Clean Controller–Service–DTO layered architecture

Centralized global exception handling for reliable error management

🛠️ Tech Stack

Language: Java

Framework: Spring Boot

Architecture: Layered Architecture (Controller, Service, DTO)

Design Pattern: Strategy Pattern

APIs: RESTful APIs

Payment Gateways: Razorpay, Stripe

Tools: Maven, Git, Postman

📐 Architecture Overview

The service follows a clean and modular design:

Controller Layer: Handles HTTP requests and responses

Service Layer: Contains core business logic and payment workflows

Strategy Layer: Abstracts payment gateway implementations

DTOs: Used for request/response separation

Exception Handling: Centralized using @ControllerAdvice

This design ensures loose coupling, scalability, and easy extensibility for adding new payment providers in the future.

🔄 Payment Flow

Client creates an order via the API

Payment is initiated through the selected gateway (Razorpay/Stripe)

Gateway processes the payment

Webhook endpoint receives asynchronous payment updates

Payment status is verified and updated accordingly

📦 API Highlights

POST /payments/initiate – Initiate payment

POST /webhooks/{gateway} – Handle payment webhooks

(Endpoints may vary based on implementation)

🎯 Learning Outcomes

->Designed a real-world payment workflow using microservice principles

->Implemented strategy pattern for flexible gateway integration

->Gained experience handling asynchronous webhook events

->Improved understanding of clean architecture and exception handling

📌 Future Enhancements

->Add more payment gateways

->Persist payment transactions in a database

About

A Spring Boot–based payment microservice integrating Razorpay and Stripe using a strategy pattern for scalable and extensible payment processing.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages