@konplit-services/common 1.0.182 → 1.0.183

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -42,6 +42,14 @@ interface InterswitchTransfer {
42
42
  requestPrefix: string;
43
43
  base_url: string;
44
44
  }
45
+ interface Opay {
46
+ publicKey: string;
47
+ secretKey: string;
48
+ base_url: string;
49
+ returnUrl: string;
50
+ cancelUrl: string;
51
+ merchantId: string;
52
+ }
45
53
  interface ValuePaySenderTransfer {
46
54
  lastname: string;
47
55
  othernames: string;
@@ -110,6 +118,7 @@ declare class AppConfigs {
110
118
  getNATSURI(): string;
111
119
  getWebsiteDBURI(): string;
112
120
  getSettlementDBURI(): string;
121
+ getOpayDBURI(): string;
113
122
  getNATSPassword(): string;
114
123
  getNATSUsername(): string;
115
124
  getSettlementInterval(): string;
@@ -164,6 +173,7 @@ declare class AppConfigs {
164
173
  noReplyEmail: string;
165
174
  emailName: string;
166
175
  };
176
+ getOpayDetails(): Opay;
167
177
  getNIBSSDetails(): NIBSS;
168
178
  getFidelityDetails(): {
169
179
  fbase_url: string;
@@ -89,6 +89,12 @@ class AppConfigs {
89
89
  }
90
90
  return this.env.MONGO_SETTLEMENT_URI;
91
91
  }
92
+ getOpayDBURI() {
93
+ if (!this.env.MONGO_OPAY_URI) {
94
+ throw new Error("MONGO_OPAY_URI is required");
95
+ }
96
+ return this.env.MONGO_OPAY_URI;
97
+ }
92
98
  getNATSPassword() {
93
99
  if (!this.env.NATS_PASSWORD) {
94
100
  throw new Error("NATS_PASSWORD is required");
@@ -400,6 +406,34 @@ class AppConfigs {
400
406
  emailName: this.env.VALUEPAY_EMAIL_NAME,
401
407
  };
402
408
  }
409
+ getOpayDetails() {
410
+ if (!this.env.OPAY_MERCHANT_ID) {
411
+ throw new Error("OPAY_MERCHANT_ID is required");
412
+ }
413
+ if (!this.env.OPAY_RETURN_URL) {
414
+ throw new Error("OPAY_RETURN_URL is required");
415
+ }
416
+ if (!this.env.OPAY_CANCEL_URL) {
417
+ throw new Error("OPAY_CANCEL_URL is required");
418
+ }
419
+ if (!this.env.OPAY_BASE_URL) {
420
+ throw new Error("OPAY_BASE_URL is required");
421
+ }
422
+ if (!this.env.OPAY_PUBLIC_KEY) {
423
+ throw new Error("OPAY_PUBLIC_KEY is required");
424
+ }
425
+ if (!this.env.OPAY_SECRET_KEY) {
426
+ throw new Error("OPAY_SECRET_KEY is required");
427
+ }
428
+ return {
429
+ merchantId: this.env.OPAY_MERCHANT_ID,
430
+ secretKey: this.env.OPAY_SECRET_KEY,
431
+ publicKey: this.env.OPAY_PUBLIC_KEY,
432
+ returnUrl: this.env.OPAY_RETURN_URL,
433
+ cancelUrl: this.env.OPAY_CANCEL_URL,
434
+ base_url: this.env.OPAY_BASE_URL,
435
+ };
436
+ }
403
437
  getNIBSSDetails() {
404
438
  if (!this.env.NIBSS_EASYPAY_BASE_URL) {
405
439
  throw new Error("NIBSS_EASYPAY_BASE_URL is required");
@@ -11,6 +11,12 @@ declare const hashingKey: (secret: string) => Buffer;
11
11
  * @returns MD5 hash of the data
12
12
  */
13
13
  declare const generateSignMD5: (data: Record<string, string>) => string;
14
+ /**
15
+ * Generates an Hmac signatur
16
+ * @param data - the data to sign
17
+ * @returns MD5 hash of the data
18
+ */
19
+ declare const generateOpaySign: (data: Record<string, string>) => string;
14
20
  /**
15
21
  * Generates an MD5 signature for Fidelity transactions
16
22
  * @param request_ref - the request reference
@@ -86,4 +92,4 @@ interface MACParams {
86
92
  * @returns The generated MAC as a hexadecimal string.
87
93
  */
88
94
  declare const generateMAC: (params: MACParams) => string;
89
- export { MACParams, generateMAC, hashingKey, generateSignMD5, generateSignMD5Fedilty, authData, generateOrderId, generateBase64Key, generateSignatureCipher, generateBase64KeyNibssBVN, generateTransactionID, };
95
+ export { MACParams, generateMAC, hashingKey, generateSignMD5, generateSignMD5Fedilty, authData, generateOrderId, generateBase64Key, generateSignatureCipher, generateBase64KeyNibssBVN, generateTransactionID, generateOpaySign, };
@@ -23,7 +23,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.generateTransactionID = exports.generateBase64KeyNibssBVN = exports.generateSignatureCipher = exports.generateBase64Key = exports.generateOrderId = exports.authData = exports.generateSignMD5Fedilty = exports.generateSignMD5 = exports.hashingKey = exports.generateMAC = void 0;
26
+ exports.generateOpaySign = exports.generateTransactionID = exports.generateBase64KeyNibssBVN = exports.generateSignatureCipher = exports.generateBase64Key = exports.generateOrderId = exports.authData = exports.generateSignMD5Fedilty = exports.generateSignMD5 = exports.hashingKey = exports.generateMAC = void 0;
27
27
  const crypto = __importStar(require("crypto"));
28
28
  const forge = __importStar(require("node-forge"));
29
29
  const timestamp_1 = require("./timestamp");
@@ -74,6 +74,21 @@ const generateSignMD5 = (data) => {
74
74
  return hash.toUpperCase();
75
75
  };
76
76
  exports.generateSignMD5 = generateSignMD5;
77
+ /**
78
+ * Generates an Hmac signatur
79
+ * @param data - the data to sign
80
+ * @returns MD5 hash of the data
81
+ */
82
+ const generateOpaySign = (data) => {
83
+ const { secretKey } = app_configs_1.appConfigs.getOpayDetails();
84
+ const dataString = JSON.stringify(data);
85
+ const hmac = crypto.createHmac("sha512", secretKey);
86
+ // the actual implementation
87
+ hmac.update(dataString);
88
+ const hash = hmac.digest("hex");
89
+ return hash;
90
+ };
91
+ exports.generateOpaySign = generateOpaySign;
77
92
  /**
78
93
  * Generates an MD5 signature for Fidelity transactions
79
94
  * @param request_ref - the request reference
@@ -3,5 +3,6 @@ export declare enum PaymentOptions {
3
3
  qrcode = "qrcode",
4
4
  ussd = "ussd",
5
5
  mobile_money = "mobile_money",
6
- transfer = "transfer"
6
+ transfer = "transfer",
7
+ opay = "opay"
7
8
  }
@@ -8,4 +8,5 @@ var PaymentOptions;
8
8
  PaymentOptions["ussd"] = "ussd";
9
9
  PaymentOptions["mobile_money"] = "mobile_money";
10
10
  PaymentOptions["transfer"] = "transfer";
11
+ PaymentOptions["opay"] = "opay";
11
12
  })(PaymentOptions = exports.PaymentOptions || (exports.PaymentOptions = {}));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@konplit-services/common",
3
- "version": "1.0.182",
3
+ "version": "1.0.183",
4
4
  "description": "",
5
5
  "main": "./build/index.js",
6
6
  "types": "./build/index.d.ts",