Skip to content

wasksofts-technology/mpesa

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

76 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Introduction

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-technology/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

<?php
require_once('vendor/autoload.php');
use Wasksofts\Mpesa\Mpesa;
$mpesa  = new Mpesa();
  
   or
   
$mpesa  = new Wasksofts\MpesaMpesa();
  
$mpesa->config('consumer_key', '');
$mpesa->config('consumer_secret', '');
$mpesa->config('pass_key', '');
$mpesa->config('store_number', '174379');
$mpesa->config('business_shortcode', '');
$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('initiator_name', '');
$mpesa->config('initiator_pass', '');
$mpesa->config('b2c_shortcode', '');
$mpesa->config('security_credential','');
$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_simulation('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->tax_remittance('1000', 'kraaccoutn', 'tax_remit_timeout_url','tax_remit_result_url');
$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');

#  Usage example for billing
<?php
require_once('vendor/autoload.php');
   
use Wasksofts\Mpesa\BillManager;
$bill_manager  = new BillManager(); 

   or
   
$bill_manager  = new Wasksofts\Mpesa\BillManager(); 
   
$bill_manager->optin_biller('examaple@demo.com');
$bill_manager->optin_update('examaple@demo.com');
$bill_manager->single_invoice($reference, $billedfullname, $billedphoneNumber, $billedperiod, $invoiceName, $dueDate,            $accountRef, $amount);
$bill_manager->bulk_invoicing($array);
$bill_manager->reconciliation($payment_date, $paidAmmount, $actReference, $transactionId, $phoneNumber, $fullName,               $invoiceName, $reference);
$bill_manager->update_invoice_data($payment_date, $paidAmmount, $actReference, $transactionId, $phoneNumber, $fullName,          $invoiceName, $reference);
$bill_manager->cancel_single_invoice($reference);
$bill_manager->cancel_bulk_invoice($array);

# 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.