node-paytmpg 5.3.0 → 5.3.2

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.
@@ -1,154 +1,154 @@
1
- "use strict";
2
-
3
- var crypt = require('./crypt');
4
- var util = require('util');
5
- var crypto = require('crypto');
6
- const PaytmChecksum = require('./PaytmChecksum.js');
7
-
8
- //mandatory flag: when it set, only mandatory parameters are added to checksum
9
-
10
- function paramsToString(params, mandatoryflag) {
11
- var data = '';
12
- var tempKeys = Object.keys(params);
13
- tempKeys.sort();
14
- tempKeys.forEach(function (key) {
15
- if (!params[key]) {
16
- return
17
- }
18
- try {
19
- var n = params[key].includes("REFUND");
20
- var m = params[key].includes("|");
21
- if (n == true) {
22
- params[key] = "";
23
- }
24
- if (m == true) {
25
- params[key] = "";
26
- }
27
- } catch (e) {
28
- params[key] = "";
29
- console.log(e)
30
- }
31
-
32
-
33
- if (key !== 'CHECKSUMHASH') {
34
- if (params[key] === 'null') params[key] = '';
35
- if (!mandatoryflag || mandatoryParams.indexOf(key) !== -1) {
36
- data += (params[key] + '|');
37
- }
38
- }
39
- });
40
- return data;
41
- }
42
-
43
-
44
- function genchecksum(params, key, cb) {
45
- let checksumPromise = PaytmChecksum.generateSignature(params, key).then(checksum => {
46
- cb(undefined, checksum)
47
- })
48
- return checksumPromise;
49
- var data = paramsToString(params);
50
- crypt.gen_salt(4, function (err, salt) {
51
- var sha256 = crypto.createHash('sha256').update(data + salt).digest('hex');
52
- var check_sum = sha256 + salt;
53
- var encrypted = crypt.encrypt(check_sum, key);
54
- cb(undefined, encrypted);
55
- });
56
- }
57
- function genchecksumbystring(params, key, cb) {
58
-
59
- crypt.gen_salt(4, function (err, salt) {
60
- var sha256 = crypto.createHash('sha256').update(params + '|' + salt).digest('hex');
61
- var check_sum = sha256 + salt;
62
- var encrypted = crypt.encrypt(check_sum, key);
63
-
64
- var CHECKSUMHASH = encodeURIComponent(encrypted);
65
- CHECKSUMHASH = encrypted;
66
- cb(undefined, CHECKSUMHASH);
67
- });
68
- }
69
-
70
- function verifychecksum(params, key, checksumhash) {
71
- return PaytmChecksum.verifySignature(params, key, checksumhash)
72
- var data = paramsToString(params, false);
73
-
74
- //TODO: after PG fix on thier side remove below two lines
75
- if (typeof checksumhash !== "undefined") {
76
- checksumhash = checksumhash.replace('\n', '');
77
- checksumhash = checksumhash.replace('\r', '');
78
- var temp = decodeURIComponent(checksumhash);
79
- var checksum = crypt.decrypt(temp, key);
80
- var salt = checksum.substr(checksum.length - 4);
81
- var sha256 = checksum.substr(0, checksum.length - 4);
82
- var hash = crypto.createHash('sha256').update(data + salt).digest('hex');
83
- if (hash === sha256) {
84
- return true;
85
- } else {
86
- util.log("checksum is wrong");
87
- return false;
88
- }
89
- } else {
90
- util.log("checksum not found");
91
- return false;
92
- }
93
- }
94
-
95
- function verifychecksumbystring(params, key, checksumhash) {
96
-
97
- var checksum = crypt.decrypt(checksumhash, key);
98
- var salt = checksum.substr(checksum.length - 4);
99
- var sha256 = checksum.substr(0, checksum.length - 4);
100
- var hash = crypto.createHash('sha256').update(params + '|' + salt).digest('hex');
101
- if (hash === sha256) {
102
- return true;
103
- } else {
104
- util.log("checksum is wrong");
105
- return false;
106
- }
107
- }
108
-
109
- function genchecksumforrefund(params, key, cb) {
110
- var data = paramsToStringrefund(params);
111
- crypt.gen_salt(4, function (err, salt) {
112
- var sha256 = crypto.createHash('sha256').update(data + salt).digest('hex');
113
- var check_sum = sha256 + salt;
114
- var encrypted = crypt.encrypt(check_sum, key);
115
- params.CHECKSUM = encodeURIComponent(encrypted);
116
- cb(undefined, params);
117
- });
118
- }
119
-
120
- function paramsToStringrefund(params, mandatoryflag) {
121
- var data = '';
122
- var tempKeys = Object.keys(params);
123
- tempKeys.sort();
124
- tempKeys.forEach(function (key) {
125
- var m = params[key].includes("|");
126
- if (m == true) {
127
- params[key] = "";
128
- }
129
- if (key !== 'CHECKSUMHASH') {
130
- if (params[key] === 'null') params[key] = '';
131
- if (!mandatoryflag || mandatoryParams.indexOf(key) !== -1) {
132
- data += (params[key] + '|');
133
- }
134
- }
135
- });
136
- return data;
137
- }
138
-
139
- function checkRazorSignature(razorpayOrderId, razorpayPaymentId, secret, razorpay_signature) {
140
- const hmac = crypto.createHmac('sha256', secret);
141
-
142
- hmac.update(razorpayOrderId + "|" + razorpayPaymentId);
143
- let generatedSignature = hmac.digest('hex');
144
-
145
- let isSignatureValid = generatedSignature == razorpay_signature;
146
- return isSignatureValid
147
- }
148
-
149
- module.exports.genchecksum = genchecksum;
150
- module.exports.verifychecksum = verifychecksum;
151
- module.exports.verifychecksumbystring = verifychecksumbystring;
152
- module.exports.genchecksumbystring = genchecksumbystring;
153
- module.exports.genchecksumforrefund = genchecksumforrefund;
154
- module.exports.checkRazorSignature = checkRazorSignature;
1
+ "use strict";
2
+
3
+ var crypt = require('./crypt');
4
+ var util = require('util');
5
+ var crypto = require('crypto');
6
+ const PaytmChecksum = require('./PaytmChecksum.js');
7
+
8
+ //mandatory flag: when it set, only mandatory parameters are added to checksum
9
+
10
+ function paramsToString(params, mandatoryflag) {
11
+ var data = '';
12
+ var tempKeys = Object.keys(params);
13
+ tempKeys.sort();
14
+ tempKeys.forEach(function (key) {
15
+ if (!params[key]) {
16
+ return
17
+ }
18
+ try {
19
+ var n = params[key].includes("REFUND");
20
+ var m = params[key].includes("|");
21
+ if (n == true) {
22
+ params[key] = "";
23
+ }
24
+ if (m == true) {
25
+ params[key] = "";
26
+ }
27
+ } catch (e) {
28
+ params[key] = "";
29
+ console.log(e)
30
+ }
31
+
32
+
33
+ if (key !== 'CHECKSUMHASH') {
34
+ if (params[key] === 'null') params[key] = '';
35
+ if (!mandatoryflag || mandatoryParams.indexOf(key) !== -1) {
36
+ data += (params[key] + '|');
37
+ }
38
+ }
39
+ });
40
+ return data;
41
+ }
42
+
43
+
44
+ function genchecksum(params, key, cb) {
45
+ let checksumPromise = PaytmChecksum.generateSignature(params, key).then(checksum => {
46
+ cb(undefined, checksum)
47
+ })
48
+ return checksumPromise;
49
+ var data = paramsToString(params);
50
+ crypt.gen_salt(4, function (err, salt) {
51
+ var sha256 = crypto.createHash('sha256').update(data + salt).digest('hex');
52
+ var check_sum = sha256 + salt;
53
+ var encrypted = crypt.encrypt(check_sum, key);
54
+ cb(undefined, encrypted);
55
+ });
56
+ }
57
+ function genchecksumbystring(params, key, cb) {
58
+
59
+ crypt.gen_salt(4, function (err, salt) {
60
+ var sha256 = crypto.createHash('sha256').update(params + '|' + salt).digest('hex');
61
+ var check_sum = sha256 + salt;
62
+ var encrypted = crypt.encrypt(check_sum, key);
63
+
64
+ var CHECKSUMHASH = encodeURIComponent(encrypted);
65
+ CHECKSUMHASH = encrypted;
66
+ cb(undefined, CHECKSUMHASH);
67
+ });
68
+ }
69
+
70
+ function verifychecksum(params, key, checksumhash) {
71
+ return PaytmChecksum.verifySignature(params, key, checksumhash)
72
+ var data = paramsToString(params, false);
73
+
74
+ //TODO: after PG fix on thier side remove below two lines
75
+ if (typeof checksumhash !== "undefined") {
76
+ checksumhash = checksumhash.replace('\n', '');
77
+ checksumhash = checksumhash.replace('\r', '');
78
+ var temp = decodeURIComponent(checksumhash);
79
+ var checksum = crypt.decrypt(temp, key);
80
+ var salt = checksum.substr(checksum.length - 4);
81
+ var sha256 = checksum.substr(0, checksum.length - 4);
82
+ var hash = crypto.createHash('sha256').update(data + salt).digest('hex');
83
+ if (hash === sha256) {
84
+ return true;
85
+ } else {
86
+ util.log("checksum is wrong");
87
+ return false;
88
+ }
89
+ } else {
90
+ util.log("checksum not found");
91
+ return false;
92
+ }
93
+ }
94
+
95
+ function verifychecksumbystring(params, key, checksumhash) {
96
+
97
+ var checksum = crypt.decrypt(checksumhash, key);
98
+ var salt = checksum.substr(checksum.length - 4);
99
+ var sha256 = checksum.substr(0, checksum.length - 4);
100
+ var hash = crypto.createHash('sha256').update(params + '|' + salt).digest('hex');
101
+ if (hash === sha256) {
102
+ return true;
103
+ } else {
104
+ util.log("checksum is wrong");
105
+ return false;
106
+ }
107
+ }
108
+
109
+ function genchecksumforrefund(params, key, cb) {
110
+ var data = paramsToStringrefund(params);
111
+ crypt.gen_salt(4, function (err, salt) {
112
+ var sha256 = crypto.createHash('sha256').update(data + salt).digest('hex');
113
+ var check_sum = sha256 + salt;
114
+ var encrypted = crypt.encrypt(check_sum, key);
115
+ params.CHECKSUM = encodeURIComponent(encrypted);
116
+ cb(undefined, params);
117
+ });
118
+ }
119
+
120
+ function paramsToStringrefund(params, mandatoryflag) {
121
+ var data = '';
122
+ var tempKeys = Object.keys(params);
123
+ tempKeys.sort();
124
+ tempKeys.forEach(function (key) {
125
+ var m = params[key].includes("|");
126
+ if (m == true) {
127
+ params[key] = "";
128
+ }
129
+ if (key !== 'CHECKSUMHASH') {
130
+ if (params[key] === 'null') params[key] = '';
131
+ if (!mandatoryflag || mandatoryParams.indexOf(key) !== -1) {
132
+ data += (params[key] + '|');
133
+ }
134
+ }
135
+ });
136
+ return data;
137
+ }
138
+
139
+ function checkRazorSignature(razorpayOrderId, razorpayPaymentId, secret, razorpay_signature) {
140
+ const hmac = crypto.createHmac('sha256', secret);
141
+
142
+ hmac.update(razorpayOrderId + "|" + razorpayPaymentId);
143
+ let generatedSignature = hmac.digest('hex');
144
+
145
+ let isSignatureValid = generatedSignature == razorpay_signature;
146
+ return isSignatureValid
147
+ }
148
+
149
+ module.exports.genchecksum = genchecksum;
150
+ module.exports.verifychecksum = verifychecksum;
151
+ module.exports.verifychecksumbystring = verifychecksumbystring;
152
+ module.exports.genchecksumbystring = genchecksumbystring;
153
+ module.exports.genchecksumforrefund = genchecksumforrefund;
154
+ module.exports.checkRazorSignature = checkRazorSignature;
@@ -1,98 +1,98 @@
1
- "use strict";
2
-
3
- var crypto = require('crypto');
4
- var util = require('util');
5
-
6
- var crypt = {
7
- iv: '@@@@&&&&####$$$$',
8
-
9
- encrypt: function (data,custom_key) {
10
- var iv = this.iv;
11
- var key = custom_key;
12
- var algo = '256';
13
- switch (key.length) {
14
- case 16:
15
- algo = '128';
16
- break;
17
- case 24:
18
- algo = '192';
19
- break;
20
- case 32:
21
- algo = '256';
22
- break;
23
-
24
- }
25
- var cipher = crypto.createCipheriv('AES-' + algo + '-CBC', key, iv);
26
- //var cipher = crypto.createCipher('aes256',key);
27
- var encrypted = cipher.update(data, 'binary', 'base64');
28
- encrypted += cipher.final('base64');
29
- return encrypted;
30
- },
31
-
32
- decrypt: function (data,custom_key) {
33
- var iv = this.iv;
34
- var key = custom_key;
35
- var algo = '256';
36
- switch (key.length) {
37
- case 16:
38
- algo = '128';
39
- break;
40
- case 24:
41
- algo = '192';
42
- break;
43
- case 32:
44
- algo = '256';
45
- break;
46
- }
47
- var decipher = crypto.createDecipheriv('AES-' + algo + '-CBC', key, iv);
48
- var decrypted = decipher.update(data, 'base64', 'binary');
49
- try {
50
- decrypted += decipher.final('binary');
51
- } catch (e) {
52
- util.log(util.inspect(e));
53
- }
54
- return decrypted;
55
- },
56
-
57
- gen_salt: function (length, cb) {
58
- crypto.randomBytes((length * 3.0) / 4.0, function (err, buf) {
59
- var salt;
60
- if (!err) {
61
- salt = buf.toString("base64");
62
- }
63
- //salt=Math.floor(Math.random()*8999)+1000;
64
- cb(err, salt);
65
- });
66
- },
67
-
68
- /* one way md5 hash with salt */
69
- md5sum: function (salt, data) {
70
- return crypto.createHash('md5').update(salt + data).digest('hex');
71
- },
72
- sha256sum: function (salt, data) {
73
- return crypto.createHash('sha256').update(data + salt).digest('hex');
74
- }
75
- };
76
-
77
- module.exports = crypt;
78
-
79
- (function () {
80
- var i;
81
-
82
- function logsalt(err, salt) {
83
- if (!err) {
84
- console.log('salt is ' + salt);
85
- }
86
- }
87
-
88
- if (require.main === module) {
89
- var enc = crypt.encrypt('One97');
90
- console.log('encrypted - ' + enc);
91
- console.log('decrypted - ' + crypt.decrypt(enc));
92
-
93
- for (i = 0; i < 5; i++) {
94
- crypt.gen_salt(4, logsalt);
95
- }
96
- }
97
-
98
- }());
1
+ "use strict";
2
+
3
+ var crypto = require('crypto');
4
+ var util = require('util');
5
+
6
+ var crypt = {
7
+ iv: '@@@@&&&&####$$$$',
8
+
9
+ encrypt: function (data,custom_key) {
10
+ var iv = this.iv;
11
+ var key = custom_key;
12
+ var algo = '256';
13
+ switch (key.length) {
14
+ case 16:
15
+ algo = '128';
16
+ break;
17
+ case 24:
18
+ algo = '192';
19
+ break;
20
+ case 32:
21
+ algo = '256';
22
+ break;
23
+
24
+ }
25
+ var cipher = crypto.createCipheriv('AES-' + algo + '-CBC', key, iv);
26
+ //var cipher = crypto.createCipher('aes256',key);
27
+ var encrypted = cipher.update(data, 'binary', 'base64');
28
+ encrypted += cipher.final('base64');
29
+ return encrypted;
30
+ },
31
+
32
+ decrypt: function (data,custom_key) {
33
+ var iv = this.iv;
34
+ var key = custom_key;
35
+ var algo = '256';
36
+ switch (key.length) {
37
+ case 16:
38
+ algo = '128';
39
+ break;
40
+ case 24:
41
+ algo = '192';
42
+ break;
43
+ case 32:
44
+ algo = '256';
45
+ break;
46
+ }
47
+ var decipher = crypto.createDecipheriv('AES-' + algo + '-CBC', key, iv);
48
+ var decrypted = decipher.update(data, 'base64', 'binary');
49
+ try {
50
+ decrypted += decipher.final('binary');
51
+ } catch (e) {
52
+ util.log(util.inspect(e));
53
+ }
54
+ return decrypted;
55
+ },
56
+
57
+ gen_salt: function (length, cb) {
58
+ crypto.randomBytes((length * 3.0) / 4.0, function (err, buf) {
59
+ var salt;
60
+ if (!err) {
61
+ salt = buf.toString("base64");
62
+ }
63
+ //salt=Math.floor(Math.random()*8999)+1000;
64
+ cb(err, salt);
65
+ });
66
+ },
67
+
68
+ /* one way md5 hash with salt */
69
+ md5sum: function (salt, data) {
70
+ return crypto.createHash('md5').update(salt + data).digest('hex');
71
+ },
72
+ sha256sum: function (salt, data) {
73
+ return crypto.createHash('sha256').update(data + salt).digest('hex');
74
+ }
75
+ };
76
+
77
+ module.exports = crypt;
78
+
79
+ (function () {
80
+ var i;
81
+
82
+ function logsalt(err, salt) {
83
+ if (!err) {
84
+ console.log('salt is ' + salt);
85
+ }
86
+ }
87
+
88
+ if (require.main === module) {
89
+ var enc = crypt.encrypt('One97');
90
+ console.log('encrypted - ' + enc);
91
+ console.log('decrypted - ' + crypt.decrypt(enc));
92
+
93
+ for (i = 0; i < 5; i++) {
94
+ crypt.gen_salt(4, logsalt);
95
+ }
96
+ }
97
+
98
+ }());