@bigboblittle/epaymomo
v1.0.2
Published
this is an unofficial node package for [epaygh](https://epaygh.com/) momo
Downloads
15
Maintainers
Readme
epayghMomo
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
Note
The epaygh momo API
- requires you to re-generate your
Authorization Token
after every 3600(1hr). This package takes care of that, by first creating theAuthorization Token
for you and saves its expiration time in a file calledyourtoken. 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"
}
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 thecustomer_telephone: "057XXXXXXX",` and `mobile_wallet_number: "057XXXXXXX",
to thephonenumber
of the user you're charging.Also, i've used shortid to auto generate the reference for you.
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 a10 digit string
. Without it, you will get an error.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.Finally, you'll need your
reference
to get yourtransaction status
. Its always part of thesuccess response
from the api