hachther / laravel-mesomb
A laravel wrapper on top of Mesomb Payment API
1.8.1
2024-10-07 14:48 UTC
Requires
- php: ^7.2.5|^8.0|^8.1
- illuminate/database: ~5.7|^6.0|^7.0|^8.0|^9.0|^10.0|^11.0
- illuminate/support: ~5.7|^6.0|^7.0|^8.0|^9.0|^10.0|^11.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.1
- orchestra/testbench: ^7.0
- pestphp/pest: ^1.19
- pestphp/pest-plugin-laravel: ^1.1
- phpunit/phpunit: ^9.5.10
- spatie/ray: ^1.30
This package is auto-updated.
Last update: 2025-03-07 15:48:38 UTC
README
Laravel Wrapper on top of MeSomb Payment API
Roadmap
API Features and their implementations https://mesomb.hachther.com/en/api/v1.1/schema/
Feature | Status | Documentation |
---|---|---|
Payment | ☑ | Check the documentation |
Transaction Status | ☑ | Check the documentation |
Application Status | ☑ | Check the documentation |
Deposits | ☑ | Check the documentation |
Test | ☐ | |
Better Documentation | ☐ |
Installation
Before you start, you must register your service and MeSomb and get API Access keys. Please follow this tutorial.
Install Package
composer require hachther/laravel-mesomb
Publish Configuration Files
Setting the following parameters from MeSomb
Get the information below from MeSomb after following the above tutorial.
MESOMB_APP_KEY=<ApplicationKey> MESOMB_API_HOST=https://mesomb.hachther.com MESOMB_API_VERSION=v1.1 MESOMB_ACCESS_KEY=<AccessKey> MESOMB_SECRET_KEY=<SecretKey> MESOMB_SSL_VERIFY=true
Publish configurations file
php artisan vendor:publish --tag=mesomb-configuration
Migrate Mesomb Transaction Tables
php artisan migrate
Usage
Quick Examples
Simple Collect
// OrderController.php use Hachther\MeSomb\Operation\Payment\Collect; class OrderController extends Controller { public function confirmOrder() { $request = new Collect('67xxxxxxx', 1000, 'MTN', 'CM'); $payment = $request->pay(); if($payment->success){ // Fire some event,Pay someone, Alert user } else { // fire some event, redirect to error page } // get Transactions details $payment->transactions } }
Simple Deposit
// OrderController.php use Hachther\MeSomb\Operation\Payment\Deposit; class OrderController extends Controller { public function makeDeposit() { $request = new Deposit('67xxxxxxx', 1000, 'MTN', 'CM'); $payment = $request->pay(); if($payment->success){ // Fire some event,Pay someone, Alert user } else { // fire some event, redirect to error page } // get Transactions details $payment->transactions } }
Attaching Payments to Models Directly
// Order.php use Hachther\MeSomb\Helper\HasPayments; class Order extends Model { use HasPayments; } // OrderController.php class OrderController extends Controller { public function confirmOrder(){ $order = Order::create(['amount' => 100]); $payment = $order->payment('67xxxxxxx', $order->amount, 'MTN', 'CM')->pay(); if($payment->success){ // Fire some event,Pay someone, Alert user } else { // fire some event, redirect to error page } // View Order payments via $order->payments // Get payment transaction with $payment->transaction return $payment; } }
Handle multiple applications
This is how you process if you want to handle multiple MeSomb applications with the same project.
- Set up your configuration file with the default application and other information as specified below.
- Update the applicationKey (the accessKey and the secretKey if needed) on the fly as you can see below.
// OrderController.php use Hachther\MeSomb\Operation\Payment\Collect; class OrderController extends Controller { public function confirmOrder() { $request = new Collect('67xxxxxxx', 1000, 'MTN', 'CM'); // Update applicationKey before process the payment // You also have setAccessKey and setSecretKey $payment = $request->setApplicationKey('<applicationKey>')->pay(); if($payment->success){ // Fire some event,Pay someone, Alert user } else { // fire some event, redirect to error page } // get Transactions details $payment->transactions } }
Author
Hachther LLC contact@hachther.com
Thank you to Malico (hi@malico.me) for starting this module.