johnes-ke/mpesa-php-api

Safaricom Daraja M-pesa API for laravel framework

v2.0.4 2023-12-19 12:41 UTC

README

This package provides you with a simple tool to make requests to Safaricom Mpesa APIs so that you can focus on the development of your awesome application.

Installation

Install via composer

composer require johnes-ke/mpesa-php-api

Publish Configuration File

php artisan vendor:publish --tag=mpesa-php-api-config

Publish Database Migration File

php artisan vendor:publish --tag=mpesa-php-api-migrations

IF YOU WANT TO GO LIVE/PRODUCTION READY

Copy the variables in the .env.example. to the .env environment file . For the MPESA_ENVIRONMENT use live as the value for the production environment.

Usage

If you have not created your Safaricom Daraja Mpesa API application yet you can create one at Safaricom Developer

Example code to try

<?php

    use JohnesKe\MpesaPhpApi\MpesaPhpApi;

    $mpesa = new MpesaPhpApi(
            config('mpesa-php-api.mpesa_environment'),
            config('mpesa-php-api.consumer_key'),
            config('mpesa-php-api.consumer_secret')
        );

    $accessToken = $mpesa->getToken();

    $amount = '1';
    $phoneNumber = '2547********';
    $callBackUrl = 'https:://example.com';
    $accountReference = 'Test001';
    $transactionRef = 'test';

   // Stk Push Example
    $result = $mpesa->stkPushRequest(
        $accessToken,
        config('mpesa-php-api.c2b_stk_short_code'),
        config('mpesa-php-api.lipa_na_mpesa_pass_key'),
        $amount,
        $phoneNumber,
        $callBackUrl,
        $accountReference,
        $transactionRef,
    );

    $ResponseCode        = $result->ResponseCode;
    $ResponseDescription = $result->ResponseDescription;
    $merchantRequestID   = $result->MerchantRequestID;
    $checkoutRequestID   = $result->CheckoutRequestID;
    $CustomerMessage     = $result->CustomerMessage;
    
    //Response   
    echo "<br/>Response Code --> ".$ResponseCode;
    echo "<br/>Response Desc --> ".$ResponseDescription;
    echo "<br/>Merchant Request ID --> ".$merchantRequestID;
    echo "<br/>Checkout Request ID--> ".$checkoutRequestID;
    echo "<br/>Customer Message --> ".$CustomerMessage;

Security

If you discover any security related issues, please send an email to jmecha09@gmail.com instead of using the issue tracker.