aeremmiddleware 1.0.26 → 1.0.28
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.
- package/README.md +28 -28
- package/dist/Finance/Ingenico.types.d.ts +5 -4
- package/dist/Finance/ingenicoHtml.js +114 -114
- package/dist/Finance/ingenicoHtml.js.map +1 -1
- package/dist/Finance/novel.types.js +1 -1
- package/dist/Finance/novel.types.js.map +1 -1
- package/dist/Socials/Sms.types.js +1 -1
- package/dist/Socials/Sms.types.js.map +1 -1
- package/dist/Socials/Whatsapp.types.js +1 -1
- package/dist/Socials/Whatsapp.types.js.map +1 -1
- package/package.json +21 -21
- package/src/Finance/Ingenico.types.ts +22 -21
- package/src/Finance/auEncrypt.ts +32 -32
- package/src/Finance/auFinance.ts +115 -115
- package/src/Finance/crimeCheck.ts +212 -212
- package/src/Finance/crimecheck.types.ts +31 -31
- package/src/Finance/encrypt.ts +18 -18
- package/src/Finance/idfy.ts +542 -542
- package/src/Finance/index.ts +16 -16
- package/src/Finance/ingenico.ts +104 -104
- package/src/Finance/ingenicoHtml.ts +119 -119
- package/src/Finance/novel.ts +233 -233
- package/src/Finance/novel.types.ts +30 -30
- package/src/Finance/qbrik.ts +828 -828
- package/src/Finance/qbrik.types.ts +131 -131
- package/src/Finance/setu.ts +560 -560
- package/src/Finance/setu.types.ts +44 -44
- package/src/PushNotification/index.ts +5 -5
- package/src/PushNotification/pushNotificationFCM.ts +37 -37
- package/src/Socials/Sms.types.ts +9 -9
- package/src/Socials/SmsSender.ts +78 -78
- package/src/Socials/Whatsapp.types.ts +95 -95
- package/src/Socials/index.ts +6 -6
- package/src/Socials/whatsApp.ts +188 -188
- package/src/index.ts +9 -9
- package/tsconfig.json +111 -111
package/src/Finance/index.ts
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import IdfyAPIWrapper from "./idfy";
|
|
2
|
-
import NovelApiWrapper from "./novel";
|
|
3
|
-
import IngenicoApiWrapper from "./ingenico";
|
|
4
|
-
import CrimeSearchAPIWrapper from "./crimeCheck";
|
|
5
|
-
import QbrikApiWrapper from "./qbrik";
|
|
6
|
-
import AuFinanceApiWrapper from "./auFinance";
|
|
7
|
-
import SetuApiWrapper from "./setu";
|
|
8
|
-
export const finance = {
|
|
9
|
-
idFy: IdfyAPIWrapper,
|
|
10
|
-
novel: NovelApiWrapper,
|
|
11
|
-
ingenico: IngenicoApiWrapper,
|
|
12
|
-
crimecheck: CrimeSearchAPIWrapper,
|
|
13
|
-
qbrik: QbrikApiWrapper,
|
|
14
|
-
auFinance: AuFinanceApiWrapper,
|
|
15
|
-
setu: SetuApiWrapper,
|
|
16
|
-
};
|
|
1
|
+
import IdfyAPIWrapper from "./idfy";
|
|
2
|
+
import NovelApiWrapper from "./novel";
|
|
3
|
+
import IngenicoApiWrapper from "./ingenico";
|
|
4
|
+
import CrimeSearchAPIWrapper from "./crimeCheck";
|
|
5
|
+
import QbrikApiWrapper from "./qbrik";
|
|
6
|
+
import AuFinanceApiWrapper from "./auFinance";
|
|
7
|
+
import SetuApiWrapper from "./setu";
|
|
8
|
+
export const finance = {
|
|
9
|
+
idFy: IdfyAPIWrapper,
|
|
10
|
+
novel: NovelApiWrapper,
|
|
11
|
+
ingenico: IngenicoApiWrapper,
|
|
12
|
+
crimecheck: CrimeSearchAPIWrapper,
|
|
13
|
+
qbrik: QbrikApiWrapper,
|
|
14
|
+
auFinance: AuFinanceApiWrapper,
|
|
15
|
+
setu: SetuApiWrapper,
|
|
16
|
+
};
|
package/src/Finance/ingenico.ts
CHANGED
|
@@ -1,104 +1,104 @@
|
|
|
1
|
-
import axios from "axios";
|
|
2
|
-
import { MandateDataType } from "./Ingenico.types";
|
|
3
|
-
import { createSHA512Hash } from "./encrypt";
|
|
4
|
-
import { createHash } from "crypto";
|
|
5
|
-
import { mandateHtml } from "./ingenicoHtml";
|
|
6
|
-
|
|
7
|
-
class IngenicoApiWrapper {
|
|
8
|
-
private verificationUrl = "https://www.paynimo.com/api/paynimoV2.req";
|
|
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,
|
|
28
|
-
cardNumber: "",
|
|
29
|
-
expMonth: "",
|
|
30
|
-
expYear: "",
|
|
31
|
-
cvvCode: "",
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
const tokenId = createSHA512Hash(hashingData, this.salt);
|
|
35
|
-
return mandateHtml(mandateData, tokenId);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
private hashString(input: string): string {
|
|
39
|
-
const hash = createHash("sha512");
|
|
40
|
-
|
|
41
|
-
return hash.update(input).digest("hex");
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
async dualVerification(inputString: any): Promise<any> {
|
|
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);
|
|
52
|
-
|
|
53
|
-
if (originalHash === modifiedHash) {
|
|
54
|
-
console.log("true");
|
|
55
|
-
return true;
|
|
56
|
-
} else {
|
|
57
|
-
console.log("faalse");
|
|
58
|
-
return false;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
async mandateVerification(requestData: any): Promise<any> {
|
|
63
|
-
try {
|
|
64
|
-
const response = await axios.post(this.verificationUrl, requestData, {
|
|
65
|
-
headers: {
|
|
66
|
-
"Content-Type": "application/json",
|
|
67
|
-
},
|
|
68
|
-
});
|
|
69
|
-
|
|
70
|
-
return response.data;
|
|
71
|
-
} catch (error) {
|
|
72
|
-
console.error("Error:", error);
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
async transactionScheduling(requestData: any): Promise<any> {
|
|
77
|
-
try {
|
|
78
|
-
const response = await axios.post(this.verificationUrl, requestData, {
|
|
79
|
-
headers: {
|
|
80
|
-
"Content-Type": "application/json",
|
|
81
|
-
},
|
|
82
|
-
});
|
|
83
|
-
|
|
84
|
-
return response.data;
|
|
85
|
-
} catch (error) {
|
|
86
|
-
console.error("Error:", error);
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
async transactionVerification(requestData: any): Promise<any> {
|
|
90
|
-
try {
|
|
91
|
-
const response = await axios.post(this.verificationUrl, requestData, {
|
|
92
|
-
headers: {
|
|
93
|
-
"Content-Type": "application/json",
|
|
94
|
-
},
|
|
95
|
-
});
|
|
96
|
-
|
|
97
|
-
return response.data;
|
|
98
|
-
} catch (error) {
|
|
99
|
-
console.error("Error:", error);
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
export default IngenicoApiWrapper;
|
|
1
|
+
import axios from "axios";
|
|
2
|
+
import { MandateDataType } from "./Ingenico.types";
|
|
3
|
+
import { createSHA512Hash } from "./encrypt";
|
|
4
|
+
import { createHash } from "crypto";
|
|
5
|
+
import { mandateHtml } from "./ingenicoHtml";
|
|
6
|
+
|
|
7
|
+
class IngenicoApiWrapper {
|
|
8
|
+
private verificationUrl = "https://www.paynimo.com/api/paynimoV2.req";
|
|
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,
|
|
28
|
+
cardNumber: "",
|
|
29
|
+
expMonth: "",
|
|
30
|
+
expYear: "",
|
|
31
|
+
cvvCode: "",
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
const tokenId = createSHA512Hash(hashingData, this.salt);
|
|
35
|
+
return mandateHtml(mandateData, tokenId);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
private hashString(input: string): string {
|
|
39
|
+
const hash = createHash("sha512");
|
|
40
|
+
|
|
41
|
+
return hash.update(input).digest("hex");
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
async dualVerification(inputString: any): Promise<any> {
|
|
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);
|
|
52
|
+
|
|
53
|
+
if (originalHash === modifiedHash) {
|
|
54
|
+
console.log("true");
|
|
55
|
+
return true;
|
|
56
|
+
} else {
|
|
57
|
+
console.log("faalse");
|
|
58
|
+
return false;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
async mandateVerification(requestData: any): Promise<any> {
|
|
63
|
+
try {
|
|
64
|
+
const response = await axios.post(this.verificationUrl, requestData, {
|
|
65
|
+
headers: {
|
|
66
|
+
"Content-Type": "application/json",
|
|
67
|
+
},
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
return response.data;
|
|
71
|
+
} catch (error) {
|
|
72
|
+
console.error("Error:", error);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
async transactionScheduling(requestData: any): Promise<any> {
|
|
77
|
+
try {
|
|
78
|
+
const response = await axios.post(this.verificationUrl, requestData, {
|
|
79
|
+
headers: {
|
|
80
|
+
"Content-Type": "application/json",
|
|
81
|
+
},
|
|
82
|
+
});
|
|
83
|
+
|
|
84
|
+
return response.data;
|
|
85
|
+
} catch (error) {
|
|
86
|
+
console.error("Error:", error);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
async transactionVerification(requestData: any): Promise<any> {
|
|
90
|
+
try {
|
|
91
|
+
const response = await axios.post(this.verificationUrl, requestData, {
|
|
92
|
+
headers: {
|
|
93
|
+
"Content-Type": "application/json",
|
|
94
|
+
},
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
return response.data;
|
|
98
|
+
} catch (error) {
|
|
99
|
+
console.error("Error:", error);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
export default IngenicoApiWrapper;
|
|
@@ -1,119 +1,119 @@
|
|
|
1
|
-
import { MandateDataType } from "./Ingenico.types";
|
|
2
|
-
|
|
3
|
-
export const mandateHtml = (mandateData: MandateDataType, tokenId: string) => {
|
|
4
|
-
|
|
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
|
-
"
|
|
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
|
-
};
|
|
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
|
+
"${mandateData?.returnUrl}", //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
|
+
};
|