Multi-Gateway Payment Page (Laravel)
An online merchant / e-commerce business
Overview
A Laravel-based hosted payment page that integrates multiple payment providers behind a single checkout experience. It supports card and gateway-redirect flows for an online merchant, with a containerized runtime for consistent deployment.
The Challenge
Merchants often need to accept payments across several providers and regions, different gateways for cards, alternative methods, and bank-specific flows, without exposing customers to inconsistent or insecure checkouts. That requires a server-side application that orchestrates each provider’s API and redirect/callback model.
What We Built
A Laravel application (standard app/, routes/, config/, database/ structure with migrations and PHPUnit tests) integrating three payment providers: Stripe (stripe/stripe-php), Redsys (creagia/redsys-php, the Spanish bank card gateway), and Paylike (paylike/php-api). It uses Guzzle for HTTP, fideloper/proxy and laravel-cors for proxy/CORS handling, Bootstrap-4 form helpers for the checkout UI, and Laravel Mix (webpack.mix.js) for asset bundling. A docker/ setup with docker-compose.yml and Supervisor provides a reproducible runtime.
Technologies & Approach
Laravel for the application and routing layer; provider SDKs (Stripe, Redsys, Paylike) to abstract each gateway; Guzzle for outbound API calls; Docker + Supervisor for deployment. CORS/proxy middleware ensures the page works correctly behind load balancers and across origins.
Outcome / Impact
Delivered a working, multi-gateway payment page that lets a merchant accept payments through several providers from one Laravel codebase, with a containerized deployment maintained over several years.
Capabilities Demonstrated
- Multi-provider payment-gateway integration (Stripe, Redsys, Paylike)
- Secure server-side checkout orchestration (redirects, callbacks)
- Laravel application development with tests
- Containerized deployment (Docker + Supervisor)