1.0.2 • Published 5 years ago

@bigboblittle/epaymomo v1.0.2

Weekly downloads
-
License
MIT
Repository
github
Last release
5 years ago

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 calledyourtoken`

 **the actual api required parameters of epaygh**
{
    amount: 1.0,
    customer_email: "customer@email.com",
    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.

  1. I realized my use case dont really need my customers email :::: customer_email: "customer@email.com", however, i've provided that field, but without it, you can still charge your customers.

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