npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@bigboblittle/epaymomo

v1.0.2

Published

this is an unofficial node package for [epaygh](https://epaygh.com/) momo

Downloads

15

Readme

epayghMomo GitHub issues GitHub forksGitHub starsTwitter

This is an unofficial nodejs wrapper for epaygh mobile money. This package will help you to charge your customers mobile money wallet on all networks.
NOTE: This package will only take care of sending the mobile money prompt to your customers phone.

Installation

npm i -s @bigboblittle/epaymomo

Setup

Please head over to epaygh website to create account for yourself, on your dashboard, click integrations to create your keys. You'll need it in order to use this package.

Required Fields

    merchant_key: "YOUR-MERCHANT-KEY-HERE",      
    app_id: "APP_ID",    
    app_secret: "APP-SECRET"   
For security reasons, please load your keys from your .env file  

Example using express js

const app = require('express')();
const epayMomo = require('@bigboblittle/epaymomo'); 

app.post('/testEpay', async(req,res,next) => {
 try {
       //load your keys here... remember it's a good practice to save such keys in your .env
    let epayConfig = {
        merchant_key: "YOUR-MERCHANT-KEY-HERE",
        app_id: "APP_ID",
        app_secret: "APP-SECRET"
      };
    
    //pass in username, amount, phonenumber, email, and config 
    epayMomo("username", 1, "0543892565", "email", epayConfig).then((value) => {

    //wait for a response when the promise is resolved 
     console.log(value);
    })

 } catch (error) {
     console.log(error)
 }
})

app.listen(process.env.PORT || 3000);

Errors

i have customized the errors from this package starting with BIGBOBLITTLE followed by the error itself alt text

Note

The epaygh momo API

  1. requires you to re-generate your Authorization Token after every 3600(1hr). This package takes care of that, by first creating the Authorization Token for you and saves its expiration time in a file called yourtoken. it then checks if the Token is expired and re-generate a new one before sending your momo request to the epaygh API. You can check the generated token and expiration time in a file called yourtoken`
 **the actual api required parameters of epaygh**
{
    amount: 1.0,
    customer_email: "[email protected]",
    customer_name: "Customer Name",
    customer_telephone: "057XXXXXXX",
    mobile_wallet_network: "tigo",
    mobile_wallet_number: "057XXXXXXX",
    payment_method: "momo",
    reference: "000000"
  }
  1. the API requires you to provide the above information as parameters to the momo API
    Not all the information here matches my use case when creating the package. so i've set the
    customer_telephone: "057XXXXXXX",` and `mobile_wallet_number: "057XXXXXXX",
    to the phonenumber of the user you're charging.

  2. Also, i've used shortid to auto generate the reference for you.

  3. I've also taken care of the mobile_wallet_network: "tigo" For this reason, you have to always make sure the phonenumber you pass to this package is always a 10 digit string. Without it, you will get an error.

  4. I realized my use case dont really need my customers email :::: customer_email: "[email protected]", however, i've provided that field, but without it, you can still charge your customers.

  5. Finally, you'll need your reference to get your transaction status. Its always part of the success response from the api alt text