A Java 17 and Spring Boot 3 service that isolates payment processing behind a REST interface: Stripe tokenization and charges, MySQL transaction records and OpenAPI documentation.
Project media coming soon
Screenshots and demo videos for this case study will appear here.
The project moves payment responsibilities into a small, single-purpose Spring service. It creates Stripe card tokens, submits charges, records each result in MySQL and exposes payment history and per-project payment totals.
The goal was to learn how an external payment provider, service-layer business logic and local transaction records fit together, without coupling payment code to a larger application.
I structured the code as controllers, DTOs, services, JPA entities and repositories. The Stripe Java SDK handles token and charge calls, Spring Data JPA persists results, and Springdoc publishes the REST contract through Swagger UI.
The prototype gave me practical experience with third-party payment APIs, layered design and persistence. It is an academic implementation, not a production payment processor.
Stripe calls live in a dedicated StripeService, while PaymentService owns business logic and persistence. Controllers only translate DTOs, so changing payment provider would touch one class.
Each charge result, successful or not, is stored as a Payment entity. History and per-project totals are answered from MySQL, not by querying Stripe on each request.