Laravel Wrapper on top of MeSomb Payment API
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 | ☐ |
Before you start, you must register your service and MeSomb and get API Access keys. Please follow this tutorial.
composer require hachther/laravel-mesomb
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
php artisan migrate
// 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
}
}
// 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
}
}
// 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;
}
}
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
}
}
Hachther LLC [email protected]
Thank you to Malico ([email protected]) for starting this module.