wasksofts / mpesa
Mpesa daraja api library
Requires
- php: ^5.6|^7
This package is auto-updated.
Last update: 2024-06-28 22:16:56 UTC
README
Mpesa library which you can use with various framework like laravel ,codeigniter ,cakephp and many more This package seeks to help php developers implement the various Mpesa APIs without much hustle. It is based on the REST API whose documentation is available on https://developer.safaricom.co.ke.
Installation using composer
$ composer require wasksofts/mpesa
Usage example
require_once('vendor/autoload.php')
use the above statement if it procedural app else if its codeigniter 3.x go config enable $config['composer_autoload'] = 'vendor/autoload.php'; if vendor is root folder if vendor file are on application it should be $config['composer_autoload'] = true , for laravel and other framework they have no problem
use Wasksofts\Mpesa\Mpesa;
$mpesa = new Mpesa();
$mpesa->config('consumer_key', '');
$mpesa->config('consumer_secret', '');
$mpesa->config('pass_key', '');
$mpesa->config('initiator_name', '');
$mpesa->config('initiator_pass', '');
$mpesa->config('shortcode', '174379');
$mpesa->config('shortcode1', '');
$mpesa->config('shortcode2', '');
$mpesa->config('security_credential','');
$mpesa->config('callback_url', 'https://example.com/callback_url/');
$mpesa->config('confirmation_url', 'https://example.com/confirmation_url/');
$mpesa->config('validation_url', 'https://example.com/validation_url/');
$mpesa->config('result_url', 'https://example.com/result_url/');
$mpesa->config('timeout_url', 'https://example.com/timeout_url/');
$mpesa->config('env', 'sandbox');
echo " Token : " . $mpesa->oauth_token();
$mpesa->STKPushQuery('ws_CO_DMZ_297481201_09042019174418021');
$mpesa->STKPushSimulation('1','254708374149','pay now','test');
$mpesa->register_url();
$mpesa->c2b('1000', '254708374149', 'account');
$mpesa->b2c('200', 'BusinessPayment', '254708374149', 'payment','b2c_timeout','b2c_result'); // last two parameter define callback https://example.com/result_url.php/b2c_timeout/ or https://example.com/result_url/b2c_result/
$mpesa->b2b('10000','BusinessPayBill','60000','4','4','paytest','cool','b2b_timeout','b2b_result');
$mpesa->accountbalance('600443','4','remarks','acc_timeout','acc_result');
$mpesa->reversal('2','254708374149','1','NCR7S1UXBT','PAY NOW VIA WASKSOFT');
$mpesa->transaction_status('NCR7S1UXBT','254708374149','4','apitest');
get responses
echo $mpesa->getResponseData();
Callback json data received from safaricom
for call back you can use you own implementation
this is for testing.
use Wasksofts\Mpesa\Callback;
$callback = new Callback;
$callback::processSTKPushRequestCallback();
$callback::processC2BRequestConfirmation();
$callback::processC2BRequestValidation();
$callback::processB2CRequestCallback();
$callback::processB2BRequestCallback();
$callback::processAccountBalanceRequestCallback();
$callback::processReversalRequestCallBack();
$callback::processTransactionStatusRequestCallback();
Contributing
Please see CONTRIBUTING for details.
Security
If you discover any security related issues, please email mukamanusteven@gmail.com instead of using the issue tracker.
Credits
License
The MIT License (MIT). Please see License File for more information.