UNPKG

pg-test-project

Version:

A payment gateway for sab paisa

98 lines (80 loc) 2.53 kB
import CryptoJS from "crypto-js"; import uuid from 'react-uuid' import { devUrl, prodUrl, stagUrl } from "../constants/envVariables"; const getPaymentModeByName = (value: string, data: { [key: string]: any }) => { const objData: { [key: string]: any } = { debit_card: 1, credit_card: 2, net_banking: 3, cash: 4, neft_rtgs: 5, upi: 6, wallet: 7, bhim_upi_qr: 8, rupay_card: 12, rtgs: 13, imps: 10 } return data.filter((obj: any) => obj.paymodeId == (objData[value])); } const encryptAES = (message: string, object: any) => { let encObj: any = {}; for (const key in object) { encObj[key] = CryptoJS.AES.encrypt(object[key], "sabpaisa").toString() } return encObj; } const encrypt = function (plain_text: any, secret: any, ivString: any) { const msg = plain_text; // key & iv - 128-bit (16 byte) const key = CryptoJS.enc.Utf8.parse(secret); const iv = CryptoJS.enc.Utf8.parse(ivString); // AES-128 const enc = CryptoJS.AES.encrypt(msg, key, { iv, mode: CryptoJS.mode.CBC, }).ciphertext.toString(CryptoJS.enc.Base64); return enc; } const encryptAESString = (data: string, authkey: string, authiv: string): string => { let encData = encrypt(data, authkey, authiv); return encData; } const decrypt = function (plain_text: any, encryptionMethod: any, secret: any, ivString: any) { const msg = plain_text; // key & iv - 128-bit (16 byte) const key = CryptoJS.enc.Utf8.parse(secret); const iv = CryptoJS.enc.Utf8.parse(ivString); // AES-128 const dec = CryptoJS.AES.decrypt(msg, key, { iv, mode: CryptoJS.mode.CBC, }); return dec.toString(CryptoJS.enc.Utf8); } const decAESString = (data: string, authkey: string, authiv: string): string => { let decData = decrypt(data, "aes-128-cbc", authkey, authiv); return decData; } const getUUID = () => { return uuid(); } const getPaymentUrl = (env: string = ""): string => { let finalUrl: string = ""; switch (env) { case "dev": finalUrl = devUrl; break; case "stag": finalUrl = stagUrl; break; case "prod": finalUrl = prodUrl; break; default: finalUrl = devUrl; break; } return finalUrl; } export { getPaymentModeByName, encryptAES, encryptAESString, getUUID, decAESString, getPaymentUrl };