Nativescript integration for Paystack payment platform
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.github
demo-ng
demo
publish
src
.gitignore
.travis.yml
CODE_OF_CONDUCT.md
LICENSE
README.md

README.md

Nativescript Paystack

npm version npm Build Status

Nativescript-Paystack provides a wrapper that incorporate payments using Paystack from within your {N} applications. The integration is achieved using the Paystack Android/iOS SDK libraries. Hence, has full support for both Android & iOS.

Installation

The package should be installed via tns plugin for proper gradle and Pod setup.

tns plugin add nativescript-paystack

Usage

Setup

First import package into the main-page's model or app.component as the case may be for either {N} Core or {N} w/ Angular

import { NSPaystack } from "nativescript-paystack";

Then create an instance of NSPaystack.

this.paystack = new NSPaystack();

Initialize the instance with the publicKey gotten from Paystack

this.paystack.initialize(publicKey);

Charging a Card

To charge a card, it is expected that the Form/UI responsible for handling the data collection is handled by you.

const payment = this.paystack.payment(<NSPaymentParams>{
    amount: 500000, // In Kobo
    email: "my.email@gmail.com",
    number: "4084084084084081",
    cvc: "408",
    year: 2019,
    month: 3
});

payment
    // Add metadata
    .addMetadata("Hello", "World")
    // Add custom data fields
    .addCustomField("Author", "Anonymous");

// Listen on when validation modal comes up
payment.on(NSPayment.openDialogEvent, () => {
    console.log(NSPayment.openDialogEvent);
});

// Listen on when validation modal goes out
payment.on(NSPayment.closeDialogEvent, () => {
    console.log(NSPayment.closeDialogEvent);
});

payment
    .charge()
    .then(({ reference }) => {
        alert(`Reference: ${reference}`);
    })
    .catch(({ code, message, reference }) => {
        alert(`An error occured`);
        console.log(`Code: ${code}`);
        console.log(`Message: ${message}`);
        console.log(`Reference: ${reference}`); // If any
    });

API

Payload Signature

The payload signature is also available via the definition files.

Argument Type Description
number string the card number without any space seperator
month number the card expiry month ranging from 1-12
year number the card expiry year in a four-digits e.g 2019
cvc string the card 3/4 digit security code
amount number the charge amount in kobo
email string the customer's email address

Response Signature

Promise response signature is also available via the definition files.

Success Response

interface NSPaystackSuccessResponse {
    reference: string;
}

Error Response

export interface NSPaystackErrorResponse {
    code: number | string;
    message: string;
    reference?: string;
}

Note

It is expected that all tests be carried out on an actual device.

License

Apache License Version 2.0, January 2004