Node WiPay
This is a Node Wrapper for the WiPay Caribbean V1 API written in TypeScript.
Getting Started
Installation
This package is available on the Node Package Manager and be installed with the following commands:
npm install node-wipay
yarn add node-wipay
Basic Use
To use this package you must import it using the CommonJs or Es6 Module import statement.
import * as WiPay from 'node-wipay'
const WiPayAuth = require('node-wipay').WiPayAuth;
Creating an Auth instance
const auth = WiPayAuth({
AccountNumber: Number,
API_Key: String,
});
Testing in Sandbox Mode
auth.LiveMode = false;
Making Voucher API Call.
const handler = new WiPayVoucher(auth);
handler.check(voucher:String)
.then((result:WiPayVoucherResponse) => {
console.log(result);
})
.catch((error:WiPayVoucherResponse) => {
console.log(error);
});
WiPayAuth
This class is designed as a singleton object in order to create an immutable and fault-tolerant instance of the required WiPay configuration information.
WiPayAuthConfig
This configuration interface defines the required configuration information for a WiPay authentication instance to be sucessful.
interface WiPayAuthConfig {
AccountNumber: Number,
API_Key: String,
}
Using this format you can initialise an authorisation object by doing the following:
const config;
const wipay_auth = WiPayAuth.getInstance(config:WiPayAuthConfig);
wipay_auth.LiveMode = false or true;
It is important to note that the _config
of the WiPayAuth
is immutable and cannot be modified, although the LiveMode:Boolean
can be toggled for Live
and Sandbox
. Also as a Singleton object, the typical class constructor is private to prevent unwanted duplication.
Voucher API
The WiPayVoucher
functions returns a Promise<WiPayVoucherResponse>
. The structure of the response is as follows.
interface WiPayVoucherResponse {
status: String,
msg: String,
trxn_id?: String,
value?: Number,
}
Before any calls can be made to the object, it needs to be initialised witha valid authorisation object.
const handler = new WiPayVoucher(auth:WiPayAuth);
Check
handler.check(voucher:String)
.then((result:WiPayVoucherResponse) => {
console.log(result);
})
.catch((error:WiPayVoucherResponse) => {
console.log(error);
});
Pay
handler.pay(voucher:String, total:Number, details?:String)
.then((result:WiPayVoucher) => {
console.log(`Transaction ID is ${result.trxn_id}`);
})
.catch((error:WiPayVoucherResponse) => {
console.log(`Payment failed due to: [${error.msg}]`);
})