node-shoket-ts
v1.0.7
Published
A node client for the Shoket Payment API
Downloads
8
Maintainers
Readme
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
- Node.js 12 or higher
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: '[email protected]',
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: '[email protected]',
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: '[email protected]',
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);
}
| Parameter | Required | Description | | --------------- | -------- | ----------------------------------------------------------------------------------------------------------- | | API_KEY | Yes | This is the secret API key given on registering at the Shoket Official site | | Amount | Yes | This is an amount in Tanzania shilling. | | Customer Number | Yes | This is a customer phone number which will be used to charge a customer. | | Email | Yes | This is a customer Email | | Channel | Yes | Mobile-provider name which is used by the customer phone number. | | Customer names | Yes | This 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);
});
| Parameter | Required | Description | | --------------------- | -------- | ----------------------------------------------------------------------------------------------------------- | | API_KEY | Yes | This is the secret API key given on registering at the Shoket Official site | | Transaction Reference | Yes | This is the reference of the transaction performed already. |
Contributing
Please see CONTRIBUTING for details.
Credits
License
This project is licensed under the MIT License.