aeremmiddleware 1.0.32 → 1.0.34
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.
|
@@ -5,7 +5,7 @@ declare class IngenicoApiWrapper {
|
|
|
5
5
|
constructor(salt: string);
|
|
6
6
|
startMandate(mandateData: MandateDataType): Promise<any>;
|
|
7
7
|
private hashString;
|
|
8
|
-
dualVerification(inputString:
|
|
8
|
+
dualVerification(inputString: string): Promise<any>;
|
|
9
9
|
mandateVerification(requestData: any): Promise<any>;
|
|
10
10
|
transactionScheduling(requestData: any): Promise<any>;
|
|
11
11
|
transactionVerification(requestData: any): Promise<any>;
|
package/dist/Finance/ingenico.js
CHANGED
|
@@ -52,13 +52,10 @@ class IngenicoApiWrapper {
|
|
|
52
52
|
}
|
|
53
53
|
dualVerification(inputString) {
|
|
54
54
|
return __awaiter(this, void 0, void 0, function* () {
|
|
55
|
-
const
|
|
56
|
-
|
|
57
|
-
const
|
|
58
|
-
|
|
59
|
-
const modifiedString = dataArray.join("|");
|
|
60
|
-
const modifiedHash = this.hashString(modifiedString);
|
|
61
|
-
console.log("modifiedhash", modifiedHash);
|
|
55
|
+
const modifiedHash = inputString.split("|").slice(-1).join("");
|
|
56
|
+
const payload = inputString.split("|").slice(0, -1).join("|") + `|${this.salt}`;
|
|
57
|
+
const originalHash = this.hashString(payload);
|
|
58
|
+
console.log("dualVerification==", modifiedHash, payload, originalHash);
|
|
62
59
|
if (originalHash === modifiedHash) {
|
|
63
60
|
console.log("true");
|
|
64
61
|
return true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ingenico.js","sourceRoot":"","sources":["../../src/Finance/ingenico.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,kDAA0B;AAE1B,uCAA6C;AAC7C,mCAAoC;AACpC,iDAA6C;AAE7C,MAAM,kBAAkB;
|
|
1
|
+
{"version":3,"file":"ingenico.js","sourceRoot":"","sources":["../../src/Finance/ingenico.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/Finance/ingenico.ts
CHANGED
|
@@ -5,100 +5,112 @@ import { createHash } from "crypto";
|
|
|
5
5
|
import { mandateHtml } from "./ingenicoHtml";
|
|
6
6
|
|
|
7
7
|
class IngenicoApiWrapper {
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
private verificationUrl = "https://www.paynimo.com/api/paynimoV2.req";
|
|
9
|
+
private salt = "";
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
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,
|
|
28
|
+
cardNumber: "",
|
|
29
|
+
expMonth: "",
|
|
30
|
+
expYear: "",
|
|
31
|
+
cvvCode: "",
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
const tokenId = createSHA512Hash(hashingData, this.salt);
|
|
35
|
+
return mandateHtml(mandateData, tokenId);
|
|
36
|
+
}
|
|
33
37
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
38
|
+
private hashString(input: string): string {
|
|
39
|
+
const hash = createHash("sha512");
|
|
40
|
+
|
|
41
|
+
return hash.update(input).digest("hex");
|
|
42
|
+
}
|
|
37
43
|
|
|
38
|
-
|
|
39
|
-
|
|
44
|
+
async dualVerification(inputString: string): Promise<any> {
|
|
45
|
+
const modifiedHash = inputString.split("|").slice(-1).join("");
|
|
46
|
+
const payload =
|
|
47
|
+
inputString.split("|").slice(0, -1).join("|") + `|${this.salt}`;
|
|
40
48
|
|
|
41
|
-
|
|
42
|
-
}
|
|
49
|
+
const originalHash = this.hashString(payload);
|
|
43
50
|
|
|
44
|
-
|
|
45
|
-
const originalHash = this.hashString(inputString);
|
|
46
|
-
console.log("originalhash", originalHash);
|
|
47
|
-
const dataArray = inputString.split("|");
|
|
48
|
-
dataArray[dataArray.length - 1] = this.salt;
|
|
49
|
-
const modifiedString = dataArray.join("|");
|
|
50
|
-
const modifiedHash = this.hashString(modifiedString);
|
|
51
|
-
console.log("modifiedhash", modifiedHash);
|
|
51
|
+
console.log("dualVerification==", modifiedHash, payload, originalHash);
|
|
52
52
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
53
|
+
if (originalHash === modifiedHash) {
|
|
54
|
+
console.log("true");
|
|
55
|
+
return true;
|
|
56
|
+
} else {
|
|
57
|
+
console.log("faalse");
|
|
58
|
+
return false;
|
|
59
|
+
}
|
|
59
60
|
}
|
|
60
|
-
}
|
|
61
61
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
62
|
+
async mandateVerification(requestData: any): Promise<any> {
|
|
63
|
+
try {
|
|
64
|
+
const response = await axios.post(
|
|
65
|
+
this.verificationUrl,
|
|
66
|
+
requestData,
|
|
67
|
+
{
|
|
68
|
+
headers: {
|
|
69
|
+
"Content-Type": "application/json",
|
|
70
|
+
},
|
|
71
|
+
}
|
|
72
|
+
);
|
|
69
73
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
74
|
+
return response.data;
|
|
75
|
+
} catch (error) {
|
|
76
|
+
console.error("Error:", error);
|
|
77
|
+
}
|
|
73
78
|
}
|
|
74
|
-
}
|
|
75
79
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
80
|
+
async transactionScheduling(requestData: any): Promise<any> {
|
|
81
|
+
try {
|
|
82
|
+
const response = await axios.post(
|
|
83
|
+
this.verificationUrl,
|
|
84
|
+
requestData,
|
|
85
|
+
{
|
|
86
|
+
headers: {
|
|
87
|
+
"Content-Type": "application/json",
|
|
88
|
+
},
|
|
89
|
+
}
|
|
90
|
+
);
|
|
83
91
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
92
|
+
return response.data;
|
|
93
|
+
} catch (error) {
|
|
94
|
+
console.error("Error:", error);
|
|
95
|
+
}
|
|
87
96
|
}
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
97
|
+
async transactionVerification(requestData: any): Promise<any> {
|
|
98
|
+
try {
|
|
99
|
+
const response = await axios.post(
|
|
100
|
+
this.verificationUrl,
|
|
101
|
+
requestData,
|
|
102
|
+
{
|
|
103
|
+
headers: {
|
|
104
|
+
"Content-Type": "application/json",
|
|
105
|
+
},
|
|
106
|
+
}
|
|
107
|
+
);
|
|
96
108
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
109
|
+
return response.data;
|
|
110
|
+
} catch (error) {
|
|
111
|
+
console.error("Error:", error);
|
|
112
|
+
}
|
|
100
113
|
}
|
|
101
|
-
}
|
|
102
114
|
}
|
|
103
115
|
|
|
104
116
|
export default IngenicoApiWrapper;
|