yazzzon / mps-payment-library
library helps to integrate with MPS Payment Gateway
Requires
- php: ^8.2
- guzzlehttp/guzzle: ^7.9
- vlucas/phpdotenv: ^5.6
Requires (Dev)
- phpunit/phpunit: ^10.5
This package is auto-updated.
Last update: 2026-03-29 01:13:15 UTC
README
A lightweight, secure, and easy-to-use PHP SDK for integrating with the MPS Payment Gateway.
This package allows you to authenticate using client credentials and create payments with full control and validation.
๐ Features
- ๐ Token-based authentication (Client Credentials)
- ๐งพ Secure payment creation
- โ Strong data validation with typed request DTO
- โ๏ธ Built with GuzzleHTTP
- ๐ฆ PSR-4 autoloaded and Composer-ready
๐งฑ Installation
Install via Composer:
composer require yazzzon/mps-payment-library
Then run:
composer update
โ๏ธ Environment Setup
Create a .env file in your project root:
PAYMENT_BASE_URL=https://your-gateway.com PAYMENT_CLIENT_ID=your-client-id PAYMENT_CLIENT_SECRET=your-client-secret
๐ง Usage
1. Authenticate
use Yazan\MpsLibrary\MpsPayment; $gateway = new MpsPayment(); // values loaded from .env if ($gateway->authenticate()) { echo "Authenticated successfully!"; } else { echo "Authentication failed!"; }
2. Create a Payment
use Yazan\MpsLibrary\DTO\PaymentRequest; $request = new PaymentRequest( product: 'Pro Subscription', transactionFee: 2.5, recipientName: 'Zahraa Ali', recipientPhone: '07701234567', recipientEmail: 'zahraa@example.com', cardHolder: 'Zahraa Ali', cardNumber: '4111111111111111', cardExpiryDate: '12/26', cvc2: '123' ); $response = $gateway->createPayment($request); print_r($response);
๐ All fields are validated before sending the request.
๐ License
This project is licensed under the MIT License.
You are free to use, modify, and distribute this software with attribution.
See the full license text in the LICENSE file.
๐ค Author
Yazan Kaakeh
๐ง yazanka187@gmail.com
๐ GitHub: yazankaakeh
๐ค Contributions
Contributions, issues, and feature requests are welcome!
Please feel free to fork the repository and submit a pull request.
If you find a bug or have a suggestion, please open an issue on GitHub.
Let's build better tools together ๐