aeremmiddleware 1.0.3 → 1.0.5

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.
Files changed (56) hide show
  1. package/dist/Finance/Ingenico.types.d.ts +21 -0
  2. package/dist/Finance/Ingenico.types.js +3 -0
  3. package/dist/Finance/Ingenico.types.js.map +1 -0
  4. package/dist/Finance/crimeCheck.d.ts +16 -0
  5. package/dist/Finance/crimeCheck.js +137 -0
  6. package/dist/Finance/crimeCheck.js.map +1 -0
  7. package/dist/Finance/crimecheck.types.d.ts +30 -0
  8. package/dist/Finance/crimecheck.types.js +3 -0
  9. package/dist/Finance/crimecheck.types.js.map +1 -0
  10. package/dist/Finance/encrypt.d.ts +1 -0
  11. package/dist/Finance/encrypt.js +20 -0
  12. package/dist/Finance/encrypt.js.map +1 -0
  13. package/dist/Finance/idfy.d.ts +63 -35
  14. package/dist/Finance/idfy.js +411 -201
  15. package/dist/Finance/idfy.js.map +1 -1
  16. package/dist/Finance/index.d.ts +6 -4
  17. package/dist/Finance/index.js +12 -10
  18. package/dist/Finance/index.js.map +1 -1
  19. package/dist/Finance/ingenico.d.ts +13 -0
  20. package/dist/Finance/ingenico.js +122 -0
  21. package/dist/Finance/ingenico.js.map +1 -0
  22. package/dist/Finance/ingenicoHtml.d.ts +2 -0
  23. package/dist/Finance/ingenicoHtml.js +122 -0
  24. package/dist/Finance/ingenicoHtml.js.map +1 -0
  25. package/dist/Finance/novel.d.ts +35 -0
  26. package/dist/Finance/novel.js +222 -0
  27. package/dist/Finance/novel.js.map +1 -0
  28. package/dist/Finance/novel.types.d.ts +23 -0
  29. package/dist/Finance/novel.types.js +10 -0
  30. package/dist/Finance/novel.types.js.map +1 -0
  31. package/dist/Maps/index.js +1 -1
  32. package/dist/Socials/Sms.types.d.ts +8 -0
  33. package/dist/Socials/Sms.types.js +9 -0
  34. package/dist/Socials/Sms.types.js.map +1 -0
  35. package/dist/Socials/SmsSender.d.ts +17 -0
  36. package/dist/Socials/SmsSender.js +74 -0
  37. package/dist/Socials/SmsSender.js.map +1 -0
  38. package/dist/Socials/Whatsapp.types.d.ts +93 -97
  39. package/dist/Socials/Whatsapp.types.js +8 -8
  40. package/dist/Socials/Whatsapp.types.js.map +1 -1
  41. package/dist/Socials/index.d.ts +6 -4
  42. package/dist/Socials/index.js +12 -10
  43. package/dist/Socials/index.js.map +1 -1
  44. package/dist/Socials/whatsApp.d.ts +23 -0
  45. package/dist/Socials/whatsApp.js +169 -0
  46. package/dist/Socials/whatsApp.js.map +1 -0
  47. package/dist/index.d.ts +10 -8
  48. package/dist/index.js +8 -8
  49. package/package.json +1 -1
  50. package/src/Finance/Ingenico.types.ts +3 -0
  51. package/src/Finance/crimeCheck.ts +135 -0
  52. package/src/Finance/crimecheck.types.ts +31 -0
  53. package/src/Finance/idfy.ts +497 -255
  54. package/src/Finance/ingenico.ts +36 -136
  55. package/src/Finance/ingenicoHtml.ts +119 -0
  56. package/src/Socials/SmsSender.ts +20 -21
@@ -1,160 +1,60 @@
1
1
  import axios from "axios";
2
+ import { MandateDataType } from "./Ingenico.types";
2
3
  import { createSHA512Hash } from "./encrypt";
4
+ import { createHash } from "crypto";
5
+ import { mandateHtml } from "./ingenicoHtml";
3
6
 
4
7
  class IngenicoApiWrapper {
5
8
  private verificationUrl = "https://www.paynimo.com/api/paynimoV2.req";
6
- private salt = "3970170229YUYEWB";
7
-
8
- async startMandate(data: any): Promise<any> {
9
- const obj = {
10
- merchantId: "T656995", //data.merchantId
11
- txnId: "16949471459696",
12
- totalamount: "2",
13
- accountNo: "203209528180",
14
- consumerId: "c964635",
15
- consumerMobileNo: "8823809696",
16
- consumerEmailId: "saransh2196@gmail.com",
17
- debitStartDate: "29-09-2023",
18
- debitEndDate: "10-05-2025",
19
- maxAmount: "20000",
20
- amountType: "M",
21
- frequency: "ADHO",
9
+ private salt = "";
10
+
11
+ constructor(salt: string) {
12
+ this.salt = salt;
13
+ }
14
+ async startMandate(mandateData: MandateDataType): Promise<any> {
15
+ const hashingData = {
16
+ merchantId: mandateData.merchantId,
17
+ txnId: mandateData.txnId,
18
+ totalamount: mandateData.totalamount,
19
+ accountNo: mandateData.accountNo,
20
+ consumerId: mandateData.consumerId,
21
+ consumerMobileNo: mandateData.consumerMobileNo,
22
+ consumerEmailId: mandateData.consumerEmailId,
23
+ debitStartDate: mandateData.debitStartDate,
24
+ debitEndDate: mandateData.debitEndDate,
25
+ maxAmount: mandateData.maxAmount,
26
+ amountType: mandateData.amountType,
27
+ frequency: mandateData.frequency,
22
28
  cardNumber: "",
23
29
  expMonth: "",
24
30
  expYear: "",
25
31
  cvvCode: "",
26
32
  };
27
33
 
28
- const tokenId = createSHA512Hash(obj, this.salt);
29
- console.log(tokenId);
30
- return `<!DOCTYPE html>
31
- <html>
32
- <head>
33
- <title>Checkout Demo</title>
34
- <meta name="viewport" content="user-scalable=no, width=device-width,
35
- initial-scale=1" / />
36
- <script
37
- src="https://www.paynimo.com/paynimocheckout/client/lib/jquery.min.js"
38
- type="text/javascript"
39
- ></script>
40
- </head>
41
-
42
- <body>
43
- <button id="btnSubmit">Register Now</button>
44
-
45
- <script
46
- type="text/javascript"
47
- src="https://www.paynimo.com/paynimocheckout/server/lib/checkout.js"
48
- ></script>
49
-
50
- <script type="text/javascript">
51
- $(document).ready(function () {
52
- function handleResponse(res) {
53
- if (
54
- typeof res != "undefined" &&
55
- typeof res.paymentMethod != "undefined" &&
56
- typeof res.paymentMethod.paymentTransaction != "undefined" &&
57
- typeof res.paymentMethod.paymentTransaction.statusCode !=
58
- "undefined" &&
59
- res.paymentMethod.paymentTransaction.statusCode == "0300"
60
- ) {
61
- // success block
62
- console.log("success block",res);
63
- } else if (
64
- typeof res != "undefined" &&
65
- typeof res.paymentMethod != "undefined" &&
66
- typeof res.paymentMethod.paymentTransaction != "undefined" &&
67
- typeof res.paymentMethod.paymentTransaction.statusCode !=
68
- "undefined" &&
69
- res.paymentMethod.paymentTransaction.statusCode == "0398"
70
- ) {
71
- // initiated block
72
- console.log("initiate block",res);
73
- } else {
74
- // error block
75
- console.log("error block",res);
76
- }
77
- }
78
-
79
- $(document)
80
- .off("click", "#btnSubmit")
81
- .on("click", "#btnSubmit", function (e) {
82
- e.preventDefault();
83
-
84
- var reqJson = {
85
- features: {
86
- enableAbortResponse: true,
87
- enableNewWindowFlow: true, //for hybrid applications please disable this by passing false
88
- enableExpressPay: true,
89
- enableMerTxnDetails: true,
90
- siDetailsAtMerchantEnd: true,
91
- enableSI: true,
92
- },
93
- consumerData: {
94
- deviceId: "WEBSH2",
95
- token:"${tokenId}",
96
- returnUrl:
97
- "https://aerem.co/", //merchant response page URL
98
- responseHandler: handleResponse,
99
- paymentMode: "netBanking",
100
- merchantLogoUrl:
101
- "https://www.paynimo.com/CompanyDocs/company-logo-vertical.png", //provided merchant logo will be displayed
102
- merchantId: "T656995",
103
- currency: "INR",
104
- consumerId: "c964635", //Your unique consumer identifier to register a eMandate/eNACH
105
- consumerMobileNo: "8823809696",
106
- consumerEmailId: "saransh2196@gmail.com",
107
- txnId: "16949471459696", //Unique merchant transaction ID
108
-
109
- items: [
110
- {
111
- itemId: "FIRST",
112
- amount: "2",
113
- comAmt: "0",
114
- },
115
- ],
116
- customStyle: {
117
- PRIMARY_COLOR_CODE: "#45beaa", //merchant primary color code
118
- SECONDARY_COLOR_CODE: "#FFFFFF", //provide merchant's suitable color code
119
- BUTTON_COLOR_CODE_1: "#2d8c8c", //merchant's button background color code
120
- BUTTON_COLOR_CODE_2: "#FFFFFF", //provide merchant's suitable color code for button text
121
- },
122
- accountNo: "203209528180", //Pass this if accountNo is captured at merchant side for eMandate/eNACH
123
-
124
- ifscCode: "SBIN0000441", //Pass this if ifscCode is captured at merchant side.
125
- accountType: "Saving", //Required for eNACH registration this is mandatory field
126
- debitStartDate: "29-09-2023",
127
- debitEndDate: "10-05-2025",
128
- maxAmount: "20000",
129
- amountType: "M",
130
- frequency: "ADHO",
131
- },
132
- };
133
-
134
- $.pnCheckout(reqJson);
135
- if (reqJson.features.enableNewWindowFlow) {
136
- pnCheckoutShared.openNewWindow();
137
- }
138
- });
139
- });
140
- </script>
141
- </body>
142
- </html>
143
-
144
- `;
34
+ const tokenId = createSHA512Hash(hashingData, this.salt);
35
+ return mandateHtml(mandateData, tokenId);
145
36
  }
146
37
 
147
- public inputString =
148
- "T656995|16949471459696|2|203209528180|c964635|8823809696|saransh2196@gmail.com|10-03-2019|10-05-2022|20000|M|ADHO|7412191510887498|09|2028|123|3970170229YUYEWB";
38
+ private hashString(input: string): string {
39
+ const hash = createHash("sha512");
40
+
41
+ return hash.update(input).digest("hex");
42
+ }
149
43
 
150
44
  async dualVerification(inputString: any): Promise<any> {
45
+ const originalHash = this.hashString(inputString);
46
+ console.log("originalhash", originalHash);
151
47
  const dataArray = inputString.split("|");
152
48
  dataArray[dataArray.length - 1] = this.salt;
153
49
  const modifiedString = dataArray.join("|");
50
+ const modifiedHash = this.hashString(modifiedString);
51
+ console.log("modifiedhash", modifiedHash);
154
52
 
155
- if (inputString === modifiedString) {
53
+ if (originalHash === modifiedHash) {
54
+ console.log("true");
156
55
  return true;
157
56
  } else {
57
+ console.log("faalse");
158
58
  return false;
159
59
  }
160
60
  }
@@ -0,0 +1,119 @@
1
+ import { MandateDataType } from "./Ingenico.types";
2
+
3
+ export const mandateHtml = (mandateData: MandateDataType, tokenId: string) => {
4
+ return `<!DOCTYPE html>
5
+ <html>
6
+ <head>
7
+ <title>Checkout Demo</title>
8
+ <meta name="viewport" content="user-scalable=no, width=device-width,
9
+ initial-scale=1" / />
10
+ <script
11
+ src="https://www.paynimo.com/paynimocheckout/client/lib/jquery.min.js"
12
+ type="text/javascript"
13
+ ></script>
14
+ </head>
15
+
16
+ <body>
17
+ <button id="btnSubmit">Register Now</button>
18
+
19
+ <script
20
+ type="text/javascript"
21
+ src="https://www.paynimo.com/paynimocheckout/server/lib/checkout.js"
22
+ ></script>
23
+
24
+ <script type="text/javascript">
25
+ $(document).ready(function () {
26
+ function handleResponse(res) {
27
+ if (
28
+ typeof res != "undefined" &&
29
+ typeof res.paymentMethod != "undefined" &&
30
+ typeof res.paymentMethod.paymentTransaction != "undefined" &&
31
+ typeof res.paymentMethod.paymentTransaction.statusCode !=
32
+ "undefined" &&
33
+ res.paymentMethod.paymentTransaction.statusCode == "0300"
34
+ ) {
35
+ // success block
36
+ console.log("success block",res);
37
+ } else if (
38
+ typeof res != "undefined" &&
39
+ typeof res.paymentMethod != "undefined" &&
40
+ typeof res.paymentMethod.paymentTransaction != "undefined" &&
41
+ typeof res.paymentMethod.paymentTransaction.statusCode !=
42
+ "undefined" &&
43
+ res.paymentMethod.paymentTransaction.statusCode == "0398"
44
+ ) {
45
+ // initiated block
46
+ console.log("initiate block",res);
47
+ } else {
48
+ // error block
49
+ console.log("error block",res);
50
+ }
51
+ }
52
+
53
+ $(document)
54
+ .off("click", "#btnSubmit")
55
+ .on("click", "#btnSubmit", function (e) {
56
+ e.preventDefault();
57
+
58
+ var reqJson = {
59
+ features: {
60
+ enableAbortResponse: true,
61
+ enableNewWindowFlow: true, //for hybrid applications please disable this by passing false
62
+ enableExpressPay: true,
63
+ enableMerTxnDetails: true,
64
+ siDetailsAtMerchantEnd: true,
65
+ enableSI: true,
66
+ },
67
+ consumerData: {
68
+ deviceId: "WEBSH2",
69
+ token:"${tokenId}",
70
+ returnUrl:
71
+ "https://aerem.co/", //merchant response page URL
72
+ responseHandler: handleResponse,
73
+ paymentMode: "${mandateData.paymentMode}",
74
+ merchantLogoUrl:
75
+ "https://www.paynimo.com/CompanyDocs/company-logo-vertical.png",
76
+ merchantId: "${mandateData.merchantId}",
77
+ currency: "INR",
78
+ consumerId: "${mandateData.consumerId}",
79
+ consumerMobileNo: "${mandateData.consumerMobileNo}",
80
+ consumerEmailId: "${mandateData.consumerEmailId}",
81
+ txnId: "${mandateData.txnId}",
82
+
83
+ items: [
84
+ {
85
+ itemId: "FIRST",
86
+ amount: "${mandateData.totalamount}",
87
+ comAmt: "0",
88
+ },
89
+ ],
90
+ customStyle: {
91
+ PRIMARY_COLOR_CODE: "#45beaa",
92
+ SECONDARY_COLOR_CODE: "#FFFFFF",
93
+ BUTTON_COLOR_CODE_1: "#2d8c8c",
94
+ BUTTON_COLOR_CODE_2: "#FFFFFF",
95
+ },
96
+ accountNo: "${mandateData.accountNo}", //Pass this if accountNo is captured at merchant side for eMandate/eNACH
97
+
98
+ ifscCode: "${mandateData.ifscCode}", //Pass this if ifscCode is captured at merchant side.
99
+ accountType: "${mandateData.accountType}", //Required for eNACH registration this is mandatory field
100
+ debitStartDate: "${mandateData.debitStartDate}",
101
+ debitEndDate: "${mandateData.debitEndDate}",
102
+ maxAmount: "${mandateData.maxAmount}",
103
+ amountType: "${mandateData.amountType}",
104
+ frequency: "${mandateData.frequency}",
105
+ },
106
+ };
107
+
108
+ $.pnCheckout(reqJson);
109
+ if (reqJson.features.enableNewWindowFlow) {
110
+ pnCheckoutShared.openNewWindow();
111
+ }
112
+ });
113
+ });
114
+ </script>
115
+ </body>
116
+ </html>
117
+
118
+ `;
119
+ };
@@ -21,7 +21,7 @@ class SmsSender {
21
21
  this.provider = provider;
22
22
 
23
23
  if (this.provider === Provider.EXOTEL) {
24
- this.smsUrl = `https://${exotelApiKey}:${exotelToken}@api.exotel.com/v1/Accounts/${exotelSid}/Sms/send`;
24
+ this.smsUrl = `https://${this.exotelApiKey}:${this.exotelToken}@api.exotel.com/v1/Accounts/${this.exotelSid}/Sms/send`;
25
25
  } else if (this.provider === Provider.GUPSHUP) {
26
26
  // Define the URL for Gupshup API
27
27
  // this.gupshupApiUrl = ...;
@@ -29,25 +29,27 @@ class SmsSender {
29
29
  }
30
30
 
31
31
  private async sendOtpMessage(messageData: DemoBody): Promise<boolean> {
32
+ if (messageData.To && messageData.Body) {
33
+ if (messageData.Body.length != 6) {
34
+ throw new Error("Please enter 6 digit number");
35
+ }
36
+ } else throw new Error("All input data not found");
32
37
 
33
- if(messageData.To && messageData.Body ){
34
-
35
- if(messageData.Body.length != 6){
36
- throw new Error("Please enter 6 digit number")
37
- }
38
- } else throw new Error("All input data not found")
38
+ const bodyFormData = new FormData();
39
39
 
40
- const bodyFormData=new FormData();
41
-
42
- const smsTemplateMsg="Your OTP for AEREMS login is %d. This %d will expire in 10 minutes."
40
+ const smsTemplateMsg =
41
+ "Your OTP for AEREMS login is %d. This %d will expire in 10 minutes.";
43
42
 
44
- bodyFormData.append("To",messageData.To)
45
- bodyFormData.append("From","AEREM")
46
- bodyFormData.append("Body",smsTemplateMsg.replace(/%d/g,messageData.Body))
47
- bodyFormData.append("EncodingType","plain")
48
- bodyFormData.append("DltEntityId","1301164059765333889")
49
- bodyFormData.append("DltTemplateId","1307164663997173809")
50
- bodyFormData.append("SmsType","transactional")
43
+ bodyFormData.append("To", messageData.To);
44
+ bodyFormData.append("From", "AEREM");
45
+ bodyFormData.append(
46
+ "Body",
47
+ smsTemplateMsg.replace(/%d/g, messageData.Body)
48
+ );
49
+ bodyFormData.append("EncodingType", "plain");
50
+ bodyFormData.append("DltEntityId", "1301164059765333889");
51
+ bodyFormData.append("DltTemplateId", "1307164663997173809");
52
+ bodyFormData.append("SmsType", "transactional");
51
53
 
52
54
  try {
53
55
  let config = {
@@ -63,7 +65,6 @@ class SmsSender {
63
65
 
64
66
  await axios.request(config);
65
67
  return true;
66
-
67
68
  } catch (error) {
68
69
  console.error("Error sending sms:", error);
69
70
  return false;
@@ -71,9 +72,7 @@ class SmsSender {
71
72
  }
72
73
 
73
74
  async sendOtpSms(obj: DemoBody): Promise<boolean> {
74
- return this.sendOtpMessage(obj);
75
-
75
+ return this.sendOtpMessage(obj);
76
76
  }
77
-
78
77
  }
79
78
  export default SmsSender;