Download the PHP package kemboielvis/mpesa-sdk-php without Composer

On this page you can find all versions of the php package kemboielvis/mpesa-sdk-php. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package mpesa-sdk-php

M-Pesa PHP SDK

A PHP SDK for Safaricom M-Pesa APIs with batteries included: STK Push, C2B, B2C, Reversals, Transaction Status, and more. Now with multi-process safe token caching (lock + atomic writes).

Requirements

Installation

Quick start

Each call such as $mpesa->stk() returns a new service with its own copy of the settings. Set shared values (business code, pass key, certificate, URLs) on $mpesa first; values you set on a service (e.g. setPartyA()) only apply to that service.

For Buy Goods, where the till number differs from the store number used as the business code:

Multi-process safe token cache

The SDK caches the OAuth access token on disk to minimize network calls. The cache is safe for concurrent use by multiple PHP processes:

Details:

Services and examples

It takes the same setters as Business Pay Bill.

The actual balance arrives later on your ResultURL. Parse it with:

PartyB is fixed to KRA's shortcode 572572. The final result (Result.ResultCode, TransactionID, ...) is posted to your ResultURL.

The callback posted to your callbackUrl has resultCode (0 = success, 4001 = user cancelled), resultDesc, requestId, amount, and on success transactionId and status.

The payment result is sent to your C2B confirmation URL, so register it first with customerToBusiness()->registerUrl().

Some failures (e.g. a SIM that is not in your account) still return responseCode 200, so check getBody() as well.

Error handling

Wrap service calls in try/catch:

Advanced configuration

M-Pesa expects the initiator password encrypted with Safaricom's public key certificate (RSA, PKCS #1 v1.5). Use one of these:

If a credential is set and there is no certificate, a password passed to a service is ignored and the credential is used. With neither, passing a password throws an InvalidArgumentException.

Off by default. With it off, anyone on the network path can impersonate Safaricom's servers and read your consumer key, secret and tokens, so turn it on in production:

If requests then fail with certificate errors, update your system CA certificates (e.g. the ca-certificates package, or curl.cainfo in php.ini) rather than turning it off.

The default cache file is mpesa_token_<sha256 of your credentials>.json in the system temp directory, readable only by the PHP user.

Testing

The repository ships with a few simple tests, including concurrency/tamper checks for the token cache.

Notes:

Troubleshooting

License

MIT License. See LICENSE in this repository.

Support

Open an issue with details (PHP version, OS, logs, and a minimal repro). Pull requests welcome.


All versions of mpesa-sdk-php with dependencies

PHP Build Version
Package Version
Requires php Version >=8.0
ext-curl Version *
ext-openssl Version *
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package kemboielvis/mpesa-sdk-php contains the following files

Loading the files please wait ...