bmatovu / laravel-mtn-momo
Laravel MTN MOMO integration.
Installs: 5 658
Dependents: 0
Suggesters: 0
Security: 0
Stars: 135
Watchers: 18
Forks: 47
Open Issues: 14
Requires
- php: ^7.3|^8.0
- ext-json: *
- bmatovu/oauth-negotiator: ^2.0
- guzzlehttp/guzzle: ^7.5
- illuminate/console: ^8.0|^9.0|^10.0
- illuminate/container: ^8.0|^9.0|^10.0
- illuminate/contracts: ^8.0|^9.0|^10.0
- illuminate/database: ^8.0|^9.0|^10.0
- illuminate/support: ^8.0|^9.0|^10.0
- nesbot/carbon: ^2.62.1
- ramsey/uuid: ^4.7
Requires (Dev)
- code-lts/doctum: ^5.5
- friendsofphp/php-cs-fixer: ^3.14
- laravel/framework: ^10.0
- mockery/mockery: ^1.5
- orchestra/testbench: ^8.0
- phpunit/phpunit: ^9.3|^10.0
Suggests
- monolog/monolog: For more comprehensive logging.
- dev-master / 5.x-dev
- v4.3.1
- v4.3.0
- v4.2.1
- v4.2.0
- v4.1.0
- v4.0.0
- 3.x-dev
- v3.1.0
- v3.0.1
- v3.0.0
- 2.0.x-dev
- v2.0.3
- v2.0.2
- v2.0.1
- v2.0.0
- 1.8.x-dev
- v1.8.0
- 1.7.x-dev
- v1.7.0
- 1.6.x-dev
- v1.6.0
- 1.5.x-dev
- v1.5.0
- 1.4.x-dev
- v1.4.0
- 1.3.x-dev
- v1.3.2
- v1.3.1
- v1.3.0
- v0.4.0
- v0.3.0
- v0.2.0
- v0.1.0
- dev-dependabot/github_actions/dot-github/workflows/actions/download-artifact-4.1.7
- dev-callback
This package is auto-updated.
Last update: 2024-10-26 06:14:48 UTC
README
Introduction
This package helps you integrate the MTN MOMO API into your Laravel application. It provides a wrapper around the core MTN MOMO API services, leaving you to worry about other parts of your application.
Installation
To get started, install the package via the Composer package manager:
Configuration customization
If you wish to customize the default configurations, you may export the default configuration using
php artisan vendor:publish --provider="Bmatovu\MtnMomo\MtnMomoServiceProvider" --tag="config"
Database Migration
The package service provider registers it's own database migrations with the framework, so you should migrate your database after installation. The migration will create a tokens tables your application needs to store access tokens from MTN MOMO API.
php artisan migrate
Prerequisites
You will need the following to get started with you integration...
- Create a developer account with MTN MOMO.
- Subscribe to a product/service that you wish to consume.
If you already subscribed to a product, the subscription key can be found in your profile.
Getting started (Sandbox)
Register your client details.
php artisan mtn-momo:init
Next you need to register your client app ID.
php artisan mtn-momo:register-id
You may want to verify your client ID at this stage
php artisan mtn-momo:validate-id
Then request for a client secret (key).
php artisan mtn-momo:request-secret
Usage
use Bmatovu\MtnMomo\Products\Collection; $collection = new Collection(); $referenceId = $collection->requestToPay('yourTransactionId', '46733123454', 100);
See test numbers
Exception handling
use Bmatovu\MtnMomo\Products\Collection; use Bmatovu\MtnMomo\Exceptions\CollectionRequestException; try { $collection = new Collection(); $referenceId = $collection->requestToPay('yourTransactionId', '46733123453', 100); } catch(CollectionRequestException $e) { do { printf("\n\r%s:%d %s (%d) [%s]\n\r", $e->getFile(), $e->getLine(), $e->getMessage(), $e->getCode(), get_class($e)); } while($e = $e->getPrevious()); }
Available methods
Collection
-
$collection->requestToPay($yourTransactionId, $partyId, $amount)
-
$collection->getTransactionStatus($referenceId)
-
$collection->getAccountBalance()
-
$collection->isActive($partyId)
-
$collection->getToken()
-
$collection->getAccountHolderBasicInfo($partyId)
Disbursement
-
$disbursement->transfer($yourTransactionId, $partyId, $amount)
-
$disbursement->getTransactionStatus($referenceId)
-
$disbursement->getAccountBalance()
-
$disbursement->isActive($partyId)
-
$disbursement->getToken()
-
$disbursement->getAccountHolderBasicInfo($partyId)
Remittance
-
$remittance->transfer($yourTransactionId, $partyId, $amount)
-
$remittance->getTransactionStatus($referenceId)
-
$remittance->getAccountBalance()
-
$remittance->isActive($partyId)
-
$remittance->getToken()
-
$remittance->getAccountHolderBasicInfo($partyId)
Go live
You will need to make some changes to your setup before going live. Read more.
Support Groups
Join MTN's Skype & WhatsApp support groups. Here
Reporting bugs
If you've stumbled across a bug, please help us by leaving as much information about the bug as possible, e.g.
- Steps to reproduce
- Expected result
- Actual result
This will help us to fix the bug as quickly as possible, and if you wish to fix it yourself feel free to fork the package and submit a pull request!