New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

pesajs

Package Overview
Dependencies
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

pesajs

M-Pesa API helper

  • 0.0.1
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
0
decreased by-100%
Maintainers
1
Weekly downloads
 
Created
Source

PesaJs

Goal

Simplify interactions with the official (horribly documented) M-PESA API.

Important: :construction: Work in progress, NOT ready for use in production

Usage
$ npm install pesajs

  • Online checkout (Lipa Na M-Pesa): According to Safaricom, this is a "Web service for integrating the M-Pesa Checkout API to a merchant site. The overall scope of this Web service is to provide primitives for application developers to handle checkout process in a simple way."

Initiate Lipa Na M-Pesa online payment

const PesaJs = require("pesajs");

let options = {
    merchant: "YOUR_MERCHANT_ID",
    passkey: "YOUR_PASSKEY",
    //debug: false || true
};
let paymentService = new PesaJs.LipaNaMpesa(options);


let cart = {
    transaction: MY_TRANSACTION_ID,
    ref: MY_REFERENCE,
    account: USER_MPESA_NUMBER,
    amount: AMOUNT,
    callbackUrl: MY_CALLBACK_URL,
    details: "Additional transaction details if any"
};
paymentService.requestPayment(cart).then(function(data) {

    // Now display M-Pesa message to user
    let msg = data.message;
    
    // Keep mpesa transaction id so you can use it to confirm transaction.
    let mpesa_txn = data.mpesa_txn
});

Confirm payment request

let params = {
    transaction: MY_TRANSACTION, 
    mpesa_txn: mpesa_txn
};
paymentService.confirmPayment(params).then(function(data) {
    
    // User should see a USSD menu on their phone at this point.
    // Now relax and wait for M-Pesa to notify you of the payment

});

Receive payment notification

// Wait for payment notification (example using express)
app.post("/ipn", paymentService.paymentNotification, function(req, res) {
    
    // Do whatever with payment info like confirm purchase, init shipping, send download link, etc.
    let paymentData = req.payment;
   
});

See the example app for a working demo.

  • Paybill and Buygoods validation & confirmation: TODO

  • Transaction Extracts: TODO

Contributing
  1. Fork this repo and make changes in your own fork.
  2. Commit your changes and push to your fork git push origin master
  3. Create a new pull request and submit it back to the project.
Bugs & Issues

To report bugs (or any other issues), use the issues page.

Keywords

FAQs

Package last updated on 17 Jun 2016

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc