Download the PHP package drh/mpesa without Composer
On this page you can find all versions of the php package drh/mpesa. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package mpesa
Mpesa Payments API
A Laravel package for integrating with Safaricom's M-Pesa payment APIs. Supports STK Push, C2B, B2C, B2B payments, transaction status queries, and identity verification.
Inspired by Mobile Money Library by Agweria: https://mobile-money.agweria.com
Requirements
- PHP 8.2+
- Laravel 8.x - 13.x
Installation
The package auto-discovers its service provider and facades. Publish the configuration file:
Run migrations to create the payment tracking tables:
Configuration
Add these environment variables to your .env file:
See the published config/drh.mpesa.php for all available options including callback URLs, retry settings, multi-tenancy, and logging.
Usage
STK Push (Lipa Na M-Pesa Online)
C2B (Customer to Business)
Register your validation and confirmation URLs with M-Pesa:
B2C (Business to Customer)
B2B (Business to Business)
Identity Verification
Events
The package dispatches events for payment lifecycle hooks. Listen for these in your EventServiceProvider or via Event::listen():
| Event | Description |
|---|---|
StkPushRequestedEvent |
STK push request initiated |
StkPushPaymentSuccessEvent |
STK push payment completed successfully |
StkPushPaymentFailedEvent |
STK push payment failed |
C2bConfirmationEvent |
C2B payment confirmed |
B2cPaymentSuccessEvent |
B2C payment completed successfully |
B2cPaymentFailedEvent |
B2C payment failed |
B2bPaymentSuccessEvent |
B2B payment completed successfully |
B2bPaymentFailedEvent |
B2B payment failed |
TransactionStatusSuccessEvent |
Transaction status query succeeded |
TransactionStatusFailedEvent |
Transaction status query failed |
QueueTimeoutEvent |
Queue timeout occurred |
All events are in the DrH\Mpesa\Events namespace.
Artisan Commands
Callback Routes
The package automatically registers callback routes under /payments/callbacks/:
POST /payments/callbacks/stk-callback- STK push callbackPOST /payments/callbacks/c2b-validation- C2B validationPOST /payments/callbacks/c2b-confirmation- C2B confirmationPOST /payments/callbacks/result/- B2C/B2B resultPOST /payments/callbacks/timeout/- B2C/B2B timeout
A pesa.cors middleware alias is available for CORS handling on callback routes.
Testing
License
MIT
All versions of mpesa with dependencies
ext-json Version *
ext-openssl Version *
guzzlehttp/guzzle Version ^7.9
illuminate/cache Version ^8.0|^9.0|^10.0|^11.0|^12.0|^13.0
illuminate/container Version ^8.0|^9.0|^10.0|^11.0|^12.0|^13.0
illuminate/contracts Version ^8.0|^9.0|^10.0|^11.0|^12.0|^13.0
illuminate/routing Version ^8.0|^9.0|^10.0|^11.0|^12.0|^13.0
illuminate/support Version ^8.0|^9.0|^10.0|^11.0|^12.0|^13.0
myclabs/deep-copy Version ^1.13