mpesa 1.0.0

Dart native
Flutter Android iOS

This is a dart wrapper around mpesa daraja api. Written in pure dart which means it's framework agnostic(ios,android,web,plain dart,fuschia) and works out of the box.

mpesa #

A dart wrapper around mpesa daraja api.

Ready Methods/APIs

  • [x] LIPA NA MPESA
  • [ ] C2BSIMULATE
  • [ ] B2B
  • [ ] C2B
  • [ ] B2C
  • [ ] TRANSACTION STATUS
  • [ ] ACCOUNT BALANCE
  • [ ] REVERSAL

Requisites #

You Will need a few things from Safaricom before development.

  1. Consumer Key
  2. Consumer Secret
  3. Test Credentials for Development/Sanbox environment
  • Login or Register as a Safaricom developer here if you haven't.
  • Add a new App here
  • You will be issued with a Consumer Key and Consumer Secret. You will use these to initiate an Mpesa Instance.
  • Obtain Test Credentials here.
    • The Test Credentials Obtained Are only valid in Sandbox/Development environment. Take note of them.
    • To run in Production Environment you will need real Credentials.
      • To go Live and be issued with real credentials,please refer to this guide

Getting Started #

Add dependency in pubspec.yaml

dependencies:
  mpesa: [ADD_LATEST_VERSION_HERE]

Import in your Flutter app or plain dart app.

import 'package:mpesa/mpesa.dart';

class MYClass {

    Mpesa mpesa = Mpesa(
        clientKey: "YOUR_CONSUMER_KEY_HERE",
        clientSecret: "YOUR_CONSUMER_SECRET_HERE",
        passKey: "YOUR_LNM_PASS_KEY_HERE",
        initiatorPassword: "YOUR_SECURITY_CREDENTIAL_HERE",
        environment: "sandbox",
    );

}

For the initiator_password, use the security credential from the test credentials. You'll also find passkey on the same page.

Environment should be either sandbox or production

Methods and Api Calls #

Lipa Na Mpesa Online (LNMO)

Lipa na M-Pesa Online Payment API is used to initiate a M-Pesa transaction on behalf of a customer using STK Push. This is the same technique mySafaricom App uses whenever the app is used to make payments.

import 'package:mpesa/mpesa.dart';

class MYClass {

    myMethod(){
        mpesa
            .lipaNaMpesa(
                phoneNumber: "",
                amount: 1,
                businessShortCode: "",
                callbackUrl: "",
            )
            .then((result) {})
            .catchError((error) {});
    }
}
  1. businessShortCode - The organization shortcode used to receive the transaction.
  2. amount - The amount to be transacted.
  3. phoneNumber - The MSISDN sending the funds.
  4. callbackUrl - The url to where responses from M-Pesa will be sent to.

Features and bugs #

Please file feature requests and bugs at the issue tracker.

Recording #

Recording

Contributing #

|screenshot|

  1. Fork the project then clone the forked project
  2. Create your feature branch: git checkout -b my-new-feature
  3. Make your changes and add name to Contributors list below and in authors in pubspec.yaml
  4. Commit your changes: git commit -m 'Add some feature'
  5. Push to the branch: git push origin my-new-feature
  6. Submit a pull request.

Credits #

| Contributors | #

| Newton Munene |

For help getting started with Flutter, view their online documentation, which offers tutorials, samples, guidance on mobile development, and a full API reference.

5
likes
90
pub points
55%
popularity

This is a dart wrapper around mpesa daraja api. Written in pure dart which means it's framework agnostic(ios,android,web,plain dart,fuschia) and works out of the box.

Repository (GitHub)
View/report issues

Documentation

API reference

Uploader

newtonmunene99@gmail.com

License

MIT (LICENSE)

Dependencies

http, meta

More

Packages that depend on mpesa