1.0.7 • Published 2 years ago

node-shoket-ts v1.0.7

Weekly downloads
-
License
MIT
Repository
-
Last release
2 years ago

Shoket Client for Node.js

A node client for the Shoket Payment API

Features

  • Typescript support
  • Validate inputs
  • Support for request cancellation (using AbortController)
  • Debugging logs

Prerequisites

Installation

npm install node-shoket-ts
# OR
yarn add node-shoket-ts

Usage

Simple CJS example

const { charge } = require('node-shoket-ts');

charge({
  apiKey: 'sk_####',
  amount: '5000',
  customerName: 'Sam Smith',
  email: 'user@mail.com',
  numberUsed: '255612345678',
  channel: 'Halotel',
})
  .then(res => console.log(res))
  .catch(err => consolge.log(err));

Testing wip

yarn test

API docs

Charge

const charge: ({
  apiKey,
  amount,
  customerName,
  email,
  numberUsed,
  channel,
}: ICharge) => Promise<unknown>;
  • The charge function is used to accept payments.
import { charge } from 'node-shoket-ts';
const data = {
  amount: '5000',
  customer_name: 'John Doe',
  email: 'john@user.com',
  number_used: '255612345678',
  channel: 'Tigo',
};
const API_KEY = 'sk_#####';

charge({ API_KEY, ...data })
  .then(response => {
    console.log('Charge: ', response);
  })
  .catch(error => {
    console.log('Charge: ', error);
  });
import { charge, RequestAbortError } from 'node-shoket-ts';

// AbortController was added in node v14.17.0 globally
// if NODE_VSERION < 14 =>  npm i abort-controller
const AbortController =
  globalThis.AbortController ||
  import('abort-controller').then(m => m.AbortController);

const controller = new AbortController();
const timeout = setTimeout(() => {
  controller.abort();
}, 150);

const data = {
  amount: '5000',
  customer_name: 'John Doe',
  email: 'john@user.com',
  number_used: '255612345678',
  channel: 'Tigo',
};
const API_KEY = 'sk_#####';

try {
  const response = await charge(
    { API_KEY, ...data },
    { signal: controller.signal }
  );
  const data = await response.json();
  console.log(data);
} catch (error) {
  if (error instanceof AbortError) {
    console.log('request was aborted');
  }
} finally {
  clearTimeout(timeout);
}
ParameterRequiredDescription
API_KEYYesThis is the secret API key given on registering at the Shoket Official site
AmountYesThis is an amount in Tanzania shilling.
Customer NumberYesThis is a customer phone number which will be used to charge a customer.
EmailYesThis is a customer Email
ChannelYesMobile-provider name which is used by the customer phone number.
Customer namesYesThis is a customer full name

VerifyPayment

const verifyPayment: ({
  apiKey,
  reference,
}: IVerifyPayment) => Promise<unknown>;
  • The verifyPayment is used to verify the transaction conducted, the function has 2 parameters which are the API_KEY and the transaction reference. The parameters are arranged as follows:
import { verifyPayment } from 'node-shoket-ts';

const referenceId = 'OB3J177Lqnp6Rg6wHqr3q';
const API_KEY = 'sk_#####';

verifyPayment({ apiKey: API_KEY, reference: referenceId })
  .then(response => {
    console.log('Charge: ', response);
  })
  .catch(error => {
    console.log('Charge: ', error);
  });
ParameterRequiredDescription
API_KEYYesThis is the secret API key given on registering at the Shoket Official site
Transaction ReferenceYesThis is the reference of the transaction performed already.

Contributing

Please see CONTRIBUTING for details.

Credits

License

This project is licensed under the MIT License.

1.0.7

2 years ago

1.0.6

2 years ago

1.0.5

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago