0.9.4 • Published 9 months ago

@twelver313/kapital-bank v0.9.4

Weekly downloads
-
License
MIT
Repository
github
Last release
9 months ago

Kapital Bank Payment Gateway integration library

Table of Contents

1. Installation

npm i --save @twelver313/kapital-bank

2. Usage

2.1 Initialize payment gateway adapter

import { PaymentGateway } from '@twelver313/kapital-bank';

const paymentGateway = new PaymentGateway([
  login: '<YOUR_LOGIN>',
  password: '<YOUR_PASSWORD>',
  isDev: true, // Optional flag for using Kapital-Bank's test environment
  /** You don't need to pass the option below. It was added just in case Kapital Bank changes host address */
  // paymentHost: 'https://txpgtst.kapitalbank.az'
]);

2.2 Create order

const orderParams = {
  amount: 10, // i.e '10.00',
  currency: 'AZN', // Optional, 'AZN' by default
  description: 'Purchase order example', // Your description
  redirectUrl: '/your-redirect-url',
  language: 'az', // Optional, 'az' by default
};
/** Creating purchase order */
const order = await paymentGateway.createPurchaseOrder(orderParams);

/** Creating pre-auth order */
const order = await paymentGateway.createPreAuthOrder(orderParams);

/** Creating recurring order */
const order = await paymentGateway.createRecurringOrder(orderParams);

console.log(order.id) // 4595
console.log(order.password) // "8xjpd1ejxdma"
console.log(order.secret) // "312866"
console.log(order.url) // 'https://txpgtst.kapitalbank.az/flex?id=4595&password=8xjpd1ejxdma

2.3 Refunding

const response = await paymentGateway.refund({
  id: 4595,
  password: '8xjpd1ejxdma',
  amount: 10, // i.e 10.00
  phase: 'Single', // Optional, 'Single' by default
});

// Response properties
console.log(response.approvalCode) // "963348"
console.log(response.match.tranActionId) // "240612-11391689-000tn7="
console.log(response.match.ridByPmo) // "17579348"
console.log(response.pmoResultCode) // "1"

2.4 Get order status

import { OrderStatus } from '@twelver313/kapital-bank';

const orderStatus = await paymentGateway.getOrderStatus([
  id: 4595,
  password: '8xjpd1ejxdma'
]);
// or for more detailed status
const orderStatus = await paymentGateway.getDetailedOrderStatus([
  id: 4595,
  password: '8xjpd1ejxdma'
]);
const status = orderStatus.status;

// Do any stuff depending on status
if (status === OrderStatus.CANCELED) { // equivalent: orderStatus.isCanceled()
  ...
}
if (status === OrderStatus.DECLINED) { // equivalent: orderStatus.isDeclined()
  ...
}
if (status === OrderStatus.FULLY_PAID) { // equivalent: orderStatus.isFullyPaid()
  ...
}
if (status === OrderStatus.EXPIRED) { // equivalent: orderStatus.isExpired()
  ...
}
if (status === OrderStatus.REFUNDED) { // equivalent: orderStatus.isRefunded()
  ...
}
if (orderStatus.isOneOf([OrderStatus.CANCELED, OrderStatus.DECLINED])) {
  ...
}

2.5 Restore order

const orderParams = {
  id: 4595,
  password: '8xjpd1ejxdma'
};
const orderStatus = await paymentGateway.getOrderStatus(orderParams);

/** Restoring order if it was not finished or expired */
if (orderStatus.isPreparing()) {
  const order = orderStatus.restoreOrder(orderParams);
  console.log(order.id) // 4595
  console.log(order.password) // "8xjpd1ejxdma"
  console.log(order.url) // 'https://txpgtst.kapitalbank.az/flex?id=4595&password=8xjpd1ejxdma
}
0.9.4

9 months ago

0.9.3

9 months ago

0.9.2

9 months ago

0.9.1

9 months ago

0.9.0

9 months ago