UNPKG

alfabank

Version:

Pay API for alfa-biz.by (alfabank belarus)

107 lines (99 loc) 3.68 kB
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }// src/lib/index.ts var _axios = require('axios'); var _axios2 = _interopRequireDefault(_axios); // src/lib/utils.ts var isObject = (obj) => typeof obj === "object" && obj !== null; var stringify = (value) => { try { return JSON.stringify(value); } catch (e) { return value; } }; var encode = (obj) => { const params = new URLSearchParams(); for (let [key, value] of Object.entries(obj)) { if (!value) continue; params.append(key, isObject(value) ? stringify(value) : value); } return params.toString(); }; var paramsToObject = (arr) => { let result = {}; for (const item of arr) { result[item.name] = item.value; } return result; }; // src/enums/orderStatus.ts var OrderStatus; (function(OrderStatus2) { OrderStatus2[OrderStatus2["CREATED"] = 0] = "CREATED"; OrderStatus2[OrderStatus2["APPROVED"] = 1] = "APPROVED"; OrderStatus2[OrderStatus2["DEPOSITED"] = 2] = "DEPOSITED"; OrderStatus2[OrderStatus2["REVERSED"] = 3] = "REVERSED"; OrderStatus2[OrderStatus2["REFUNDED"] = 4] = "REFUNDED"; OrderStatus2[OrderStatus2["AUTHORIZATION_INITIALIZED"] = 5] = "AUTHORIZATION_INITIALIZED"; OrderStatus2[OrderStatus2["DECLINED"] = 6] = "DECLINED"; })(OrderStatus || (OrderStatus = {})); // src/lib/index.ts var useAlfaBank = ({ token, password, userName, language = "ru" } = {}) => { let isDebug = true; let instance = _axios2.default.create(); let baseUrl = "https://web.rbsuat.com/ab_by"; const request = async (url, data = {}) => { try { let dataEncoded = encode({ language, ...{token, password, userName}, ...data }); const resp = await instance.post([baseUrl, url].join(""), dataEncoded); return resp.data; } catch (e) { if (isDebug) console.log(e.response.data); return null; } }; const register = async (data) => { return await request("/rest/register.do", data); }; const refund = async (data) => { return await request("/rest/refund.do", data); }; const getOrderStatus = async (data) => { return await request("/rest/getOrderStatus.do", data); }; const getOrderStatusExtended = async (data) => { const req = await request("/rest/getOrderStatusExtended.do", data); if (req) { const params = req.merchantOrderParams; req.params = params ? paramsToObject(params) : {}; req.paid = req.orderStatus === OrderStatus.APPROVED || req.orderStatus === OrderStatus.DEPOSITED; } return req; }; const addParams = async (data) => { const req = await request("/rest/addParams.do", data); return _optionalChain([req, 'optionalAccess', _ => _.errorCode]) === 0 ? true : req; }; return { instance, register, refund, addParams, getOrderStatus, getOrderStatusExtended }; }; // src/lib/helpers.ts var toBynPenny = (value) => { return parseFloat((value * 100).toFixed(2)); }; exports.toBynPenny = toBynPenny; exports.useAlfaBank = useAlfaBank;