brotechsploit / daraja
Safaricom Daraja API PHP SDK
Requires
- php: ^8.1
- ext-curl: *
- vlucas/phpdotenv: ^5.6
Requires (Dev)
None
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
mpesa stk push made easy , b2c , b2b
Daraja API PHP SDK
A lightweight Object-Oriented PHP SDK for integrating with the Safaricom Daraja API for effecient mpesa payments
This package simplifies working with Daraja services such as STK Push, STK Push Query, OAuth token generation, and other supported endpoints.
Features
- Object-Oriented API
- Composer compatible
- OAuth Access Token generation
- STK Push
- B2c payments
- B2B Payments
- B2Pochi payments
- Configurable using PHP configuration files
- Simple and easy to integrate
Requirements
- PHP 8.1 or later
- Composer
- Safaricom Daraja API credentials
Installation
Install the package using Composer:
composer require brotechsploit/daraja
Project Structure
daraja/
│
│
│
├── callback/
│ └── (Callback responses)
│
├── .env
│
├── example/
│
│── composer.json
│── composer.lock
│── src/
│ └── Daraja.php
│── vendor/
│ ├── autoload.php
│ ├── composer/
│ │ ├── autoload_psr4.php
│ │ ├── autoload_real.php
│ │ └── ...
│ └── vlucas/
Configuration
edit the .env file with the valid safaricom daraja credentials and place it in the home directory folder to prevent read file errors
Example: MPESA_CONSUMER_KEY=qP50LHCHnaIJajKsOMZAxbC3v0PoGvaj4GhQa02pszLy0e00 MPESA_CONSUMER_SECRET=i7dP8GRQJ4G6avPzM4GfUBKvAJ4pdaRUT0SajUPuEfnUhjAhSScGR4YHcIwnwPKW MPESA_PASSKEY=bfb279f9aa9bdbcf158e97dd71a467cd2e0c893059b10f78e6b72ada1ed2c919 MPESA_SHORTCODE=174379 MPESA_CALLBACK_URL=https://example.com/callback/ MPESA_INITIATOR_USERNAME=apiuser MPESA_SECURITY_CREDENTIALS=i7dP8GRQJ4G6avPzM4GfUBKvAJ4pdaRUT0SajUPuEfnUhjAhSScGR4YHcIwnwPKW QueueTimeOutURL=https://example.com/timeout.php ResultURL=https://example.com/result.php
$config = [ 'consumerkey' => $_ENV['MPESA_CONSUMER_KEY'], 'consumersecret' => $_ENV['MPESA_CONSUMER_SECRET'], 'shortcode' => $_ENV['MPESA_SHORTCODE'], 'passkey' => $_ENV['MPESA_PASSKEY'], 'callbackurl' => $_ENV['MPESA_CALLBACK_URL'], 'sandbox' => true, 'apiusername' => $_ENV['MPESA_INITIATOR_USERNAME'], 'apipassword' => $_ENV['MPESA_SECURITY_CREDENTIALS'], 'timeouturl' => $_ENV['QueueTimeOutURL'], 'resulturl' => $_ENV['ResultURL'] ];