UNPKG

alfabank

Version:

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

107 lines (102 loc) 2.86 kB
// src/lib/index.ts import axios from "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 = axios.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 req?.errorCode === 0 ? true : req; }; return { instance, register, refund, addParams, getOrderStatus, getOrderStatusExtended }; }; // src/lib/helpers.ts var toBynPenny = (value) => { return parseFloat((value * 100).toFixed(2)); }; export { toBynPenny, useAlfaBank };