Skip to content

shottah/node-wipay

Repository files navigation

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; // LiveMode is true by default

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}]`);
    })

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published