@pixelpay/sdk-core 2.0.6 → 2.1.0-beta.0

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/CHANGELOG.md CHANGED
@@ -5,6 +5,10 @@ El formato se basa en [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
5
5
  y este proyecto se adhiere a [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
  Tipos de cambios: `Added`, `Changed`, `Deprecated`, `Removed`, `Fixed`, `Security`.
7
7
 
8
+ ## [v2.1.0-beta.0] - Unreleased
9
+ ### Added
10
+ - Se agregó encriptación de datos de tarjeta.
11
+
8
12
  ## [v2.0.6] - 2023-06-09
9
13
  ### Added
10
14
  - Se agregan campos de cuotas y puntos
@@ -1,3 +1,4 @@
1
+ import nacl from 'tweetnacl';
1
2
  declare const _default: {
2
3
  /**
3
4
  * Serialize object to JSON string without empties
@@ -35,6 +36,21 @@ declare const _default: {
35
36
  * @return
36
37
  */
37
38
  parseAmount(amount: number | null | undefined): string | null;
39
+ /**
40
+ * Generate encryption key pair
41
+ *
42
+ * @return
43
+ */
44
+ getKeyPair(): nacl.BoxKeyPair;
45
+ /**
46
+ * Encrypt message, returns encrypted value concatenated with base64 nonce.
47
+ *
48
+ * @param message
49
+ * @param publicKey
50
+ * @param keyPair
51
+ * @return
52
+ */
53
+ encrypt(message: string | null, publicKey: string | null, keyPair: nacl.BoxKeyPair): string | null;
38
54
  /**
39
55
  * Verify if environment is a Browser
40
56
  */
@@ -11,6 +11,8 @@ var __assign = (this && this.__assign) || function () {
11
11
  return __assign.apply(this, arguments);
12
12
  };
13
13
  Object.defineProperty(exports, "__esModule", { value: true });
14
+ var tweetnacl_1 = require("tweetnacl");
15
+ var tweetnacl_util_1 = require("tweetnacl-util");
14
16
  var crypto_js_1 = require("crypto-js");
15
17
  exports.default = {
16
18
  /**
@@ -37,12 +39,12 @@ exports.default = {
37
39
  */
38
40
  hash: function (algorithm, value) {
39
41
  switch (algorithm) {
40
- case "MD5":
42
+ case 'MD5':
41
43
  return (0, crypto_js_1.MD5)(value).toString();
42
- case "SHA-512":
44
+ case 'SHA-512':
43
45
  return (0, crypto_js_1.SHA512)(value).toString();
44
46
  default:
45
- return "";
47
+ return '';
46
48
  }
47
49
  },
48
50
  /**
@@ -81,11 +83,42 @@ exports.default = {
81
83
  }
82
84
  return null;
83
85
  },
86
+ /**
87
+ * Generate encryption key pair
88
+ *
89
+ * @return
90
+ */
91
+ getKeyPair: function () {
92
+ return tweetnacl_1.default.box.keyPair();
93
+ },
94
+ /**
95
+ * Encrypt message, returns encrypted value concatenated with base64 nonce.
96
+ *
97
+ * @param message
98
+ * @param publicKey
99
+ * @param keyPair
100
+ * @return
101
+ */
102
+ encrypt: function (message, publicKey, keyPair) {
103
+ if (!message) {
104
+ return null;
105
+ }
106
+ if (!publicKey) {
107
+ return message;
108
+ }
109
+ var nonce = tweetnacl_1.default.randomBytes(24);
110
+ var merchantPublicKey = tweetnacl_util_1.default.decodeBase64(publicKey);
111
+ var sharedKey = tweetnacl_1.default.box.before(merchantPublicKey, keyPair.secretKey);
112
+ var box = tweetnacl_1.default.box.after(tweetnacl_util_1.default.decodeUTF8(message), nonce, sharedKey);
113
+ var boxb64 = tweetnacl_util_1.default.encodeBase64(box);
114
+ var nonceb64 = tweetnacl_util_1.default.encodeBase64(nonce);
115
+ return "".concat(boxb64, "|").concat(nonceb64);
116
+ },
84
117
  /**
85
118
  * Verify if environment is a Browser
86
119
  */
87
120
  checkIsBrowser: function () {
88
- return typeof window !== "undefined" && typeof window.document !== "undefined";
121
+ return typeof window !== 'undefined' && typeof window.document !== 'undefined';
89
122
  },
90
123
  /**
91
124
  * Append website script and load
@@ -95,11 +128,11 @@ exports.default = {
95
128
  addScriptToWebsite: function (src) {
96
129
  return new Promise(function (resolve, reject) {
97
130
  var id = (0, crypto_js_1.MD5)(src).toString();
98
- var script = document.createElement("script");
131
+ var script = document.createElement('script');
99
132
  if (!document.querySelector("script[id=\"".concat(id, "\"]"))) {
100
133
  script.id = id;
101
134
  script.src = src;
102
- script.type = "text/javascript";
135
+ script.type = 'text/javascript';
103
136
  script.onload = resolve;
104
137
  script.onerror = reject;
105
138
  document.body.appendChild(script);
@@ -1 +1 @@
1
- {"version":3,"file":"Helpers.js","sourceRoot":"","sources":["../../src/base/Helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Helpers.js","sourceRoot":"","sources":["../../src/base/Helpers.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,13 @@ export default class RequestBehaviour {
19
19
  * Initialize request
20
20
  */
21
21
  constructor();
22
+ /**
23
+ * Encrypt fields with sensitive data, must be overriden by inherited classes.
24
+ *
25
+ * @param publicKey
26
+ * @returns
27
+ */
28
+ withEncryption(publicKey: string): string | null;
22
29
  /**
23
30
  * Serialize object to JSON string
24
31
  *
@@ -24,12 +24,21 @@ var RequestBehaviour = /** @class */ (function () {
24
24
  */
25
25
  this.sdk_version = null;
26
26
  this.lang = Intl.DateTimeFormat().resolvedOptions().locale;
27
- this.from = "sdk-javascript";
27
+ this.from = 'sdk-javascript';
28
28
  this.sdk_version = version_1.default;
29
29
  if (this.lang != 'es' && this.lang != 'en') {
30
30
  this.lang = 'es';
31
31
  }
32
32
  }
33
+ /**
34
+ * Encrypt fields with sensitive data, must be overriden by inherited classes.
35
+ *
36
+ * @param publicKey
37
+ * @returns
38
+ */
39
+ RequestBehaviour.prototype.withEncryption = function (publicKey) {
40
+ return null;
41
+ };
33
42
  /**
34
43
  * Serialize object to JSON string
35
44
  *
@@ -1 +1 @@
1
- {"version":3,"file":"RequestBehaviour.js","sourceRoot":"","sources":["../../src/base/RequestBehaviour.ts"],"names":[],"mappings":";;AAAA,qCAAgC;AAChC,sCAAiC;AAEjC;IAqBC;;OAEG;IACH;QAvBA;;WAEG;QACH,QAAG,GAAW,IAAI,CAAC;QAEnB;;WAEG;QACH,SAAI,GAAW,IAAI,CAAC;QAEpB;;WAEG;QACH,SAAI,GAAW,IAAI,CAAC;QAEpB;;WAEG;QACH,gBAAW,GAAW,IAAI,CAAC;QAM1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,eAAe,EAAE,CAAC,MAAM,CAAC;QAC3D,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,iBAAO,CAAC;QAE3B,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE;YAC3C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SACjB;IACF,CAAC;IAED;;;;OAIG;IACH,iCAAM,GAAN;QACC,OAAO,iBAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IACF,uBAAC;AAAD,CAAC,AA1CD,IA0CC"}
1
+ {"version":3,"file":"RequestBehaviour.js","sourceRoot":"","sources":["../../src/base/RequestBehaviour.ts"],"names":[],"mappings":";;AAAA,qCAAgC;AAChC,sCAAiC;AAEjC;IAqBC;;OAEG;IACH;QAvBA;;WAEG;QACH,QAAG,GAAW,IAAI,CAAC;QAEnB;;WAEG;QACH,SAAI,GAAW,IAAI,CAAC;QAEpB;;WAEG;QACH,SAAI,GAAW,IAAI,CAAC;QAEpB;;WAEG;QACH,gBAAW,GAAW,IAAI,CAAC;QAM1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,eAAe,EAAE,CAAC,MAAM,CAAC;QAC3D,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,iBAAO,CAAC;QAE3B,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE;YAC3C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SACjB;IACF,CAAC;IAED;;;;;OAKG;IACH,yCAAc,GAAd,UAAe,SAAiB;QAC/B,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;;OAIG;IACH,iCAAM,GAAN;QACC,OAAO,iBAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IACF,uBAAC;AAAD,CAAC,AApDD,IAoDC"}
@@ -6,6 +6,10 @@ export default class ServiceBehaviour {
6
6
  * Settings service model
7
7
  */
8
8
  settings: Settings;
9
+ /**
10
+ * Public key from pair generated by current instance.
11
+ */
12
+ sdk_public_key: string;
9
13
  /**
10
14
  * Initialize service
11
15
  */
@@ -33,6 +37,12 @@ export default class ServiceBehaviour {
33
37
  * @returns
34
38
  */
35
39
  private exceptionResponse;
40
+ /**
41
+ * Verify and set request encryption values
42
+ *
43
+ * @param request
44
+ */
45
+ private validateEncryption;
36
46
  /**
37
47
  * Get API route
38
48
  *
@@ -14,7 +14,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
14
14
  function verb(n) { return function (v) { return step([n, v]); }; }
15
15
  function step(op) {
16
16
  if (f) throw new TypeError("Generator is already executing.");
17
- while (_) try {
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
18
  if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
19
  if (y = 0, t) op = [op[0] & 2, t.value];
20
20
  switch (op[0]) {
@@ -38,6 +38,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
39
  var axios_1 = require("axios");
40
40
  var InvalidCredentialsException_1 = require("../exceptions/InvalidCredentialsException");
41
+ var RequestBehaviour_1 = require("./RequestBehaviour");
41
42
  var Response_1 = require("./Response");
42
43
  var ErrorResponse_1 = require("../responses/ErrorResponse");
43
44
  var FailureResponse_1 = require("../responses/FailureResponse");
@@ -53,6 +54,7 @@ var TimeoutResponse_1 = require("../responses/TimeoutResponse");
53
54
  axios_1.default.defaults.validateStatus = function () {
54
55
  return true;
55
56
  };
57
+ var PUBLIC_KEY_PATH = 'api/v2/merchant/public_key';
56
58
  var ServiceBehaviour = /** @class */ (function () {
57
59
  /**
58
60
  * Initialize service
@@ -69,7 +71,7 @@ var ServiceBehaviour = /** @class */ (function () {
69
71
  */
70
72
  ServiceBehaviour.prototype.buildRequest = function (url, transaction) {
71
73
  if (!this.settings.auth_key || !this.settings.auth_hash) {
72
- throw new InvalidCredentialsException_1.default("The merchant credentials are not definied (key/hash).");
74
+ throw new InvalidCredentialsException_1.default('The merchant credentials are not definied (key/hash).');
73
75
  }
74
76
  if (this.settings.environment != null) {
75
77
  transaction.env = this.settings.environment;
@@ -84,7 +86,10 @@ var ServiceBehaviour = /** @class */ (function () {
84
86
  'x-auth-hash': this.settings.auth_hash,
85
87
  };
86
88
  if (this.settings.auth_user) {
87
- headers["x-auth-user"] = this.settings.auth_user;
89
+ headers['x-auth-user'] = this.settings.auth_user;
90
+ }
91
+ if (this.sdk_public_key) {
92
+ headers['x-auth-secure'] = this.sdk_public_key;
88
93
  }
89
94
  return axios_1.default.create({
90
95
  baseURL: this.settings.endpoint,
@@ -163,6 +168,41 @@ var ServiceBehaviour = /** @class */ (function () {
163
168
  response.message = e.message;
164
169
  return response;
165
170
  };
171
+ /**
172
+ * Verify and set request encryption values
173
+ *
174
+ * @param request
175
+ */
176
+ ServiceBehaviour.prototype.validateEncryption = function (request) {
177
+ return __awaiter(this, void 0, void 0, function () {
178
+ var response, e_1;
179
+ return __generator(this, function (_a) {
180
+ switch (_a.label) {
181
+ case 0:
182
+ if (!!this.settings.public_key) return [3 /*break*/, 4];
183
+ _a.label = 1;
184
+ case 1:
185
+ _a.trys.push([1, 3, , 4]);
186
+ return [4 /*yield*/, this.get(PUBLIC_KEY_PATH, new RequestBehaviour_1.default())];
187
+ case 2:
188
+ response = _a.sent();
189
+ if (response.success) {
190
+ this.settings.public_key = response.getData('public_key');
191
+ }
192
+ return [3 /*break*/, 4];
193
+ case 3:
194
+ e_1 = _a.sent();
195
+ console.error(e_1);
196
+ return [3 /*break*/, 4];
197
+ case 4:
198
+ if (this.settings.public_key) {
199
+ this.sdk_public_key = request.withEncryption(this.settings.public_key);
200
+ }
201
+ return [2 /*return*/];
202
+ }
203
+ });
204
+ });
205
+ };
166
206
  /**
167
207
  * Get API route
168
208
  *
@@ -170,7 +210,7 @@ var ServiceBehaviour = /** @class */ (function () {
170
210
  * @return
171
211
  */
172
212
  ServiceBehaviour.prototype.getRoute = function (route) {
173
- return this.settings.endpoint + "/" + route;
213
+ return this.settings.endpoint + '/' + route;
174
214
  };
175
215
  /**
176
216
  * API POST request
@@ -182,19 +222,22 @@ var ServiceBehaviour = /** @class */ (function () {
182
222
  */
183
223
  ServiceBehaviour.prototype.post = function (url, body) {
184
224
  return __awaiter(this, void 0, void 0, function () {
185
- var response, e_1;
225
+ var response, e_2;
186
226
  return __generator(this, function (_a) {
187
227
  switch (_a.label) {
188
228
  case 0:
189
- _a.trys.push([0, 2, , 3]);
190
- return [4 /*yield*/, this.buildRequest(url, body).post(url, JSON.parse(body.toJson()))];
229
+ _a.trys.push([0, 3, , 4]);
230
+ return [4 /*yield*/, this.validateEncryption(body)];
191
231
  case 1:
232
+ _a.sent();
233
+ return [4 /*yield*/, this.buildRequest(url, body).post(url, JSON.parse(body.toJson()))];
234
+ case 2:
192
235
  response = _a.sent();
193
236
  return [2 /*return*/, this.parseResponse(response.data, response.status)];
194
- case 2:
195
- e_1 = _a.sent();
196
- return [2 /*return*/, this.exceptionResponse(e_1)];
197
- case 3: return [2 /*return*/];
237
+ case 3:
238
+ e_2 = _a.sent();
239
+ return [2 /*return*/, this.exceptionResponse(e_2)];
240
+ case 4: return [2 /*return*/];
198
241
  }
199
242
  });
200
243
  });
@@ -209,19 +252,22 @@ var ServiceBehaviour = /** @class */ (function () {
209
252
  */
210
253
  ServiceBehaviour.prototype.put = function (url, body) {
211
254
  return __awaiter(this, void 0, void 0, function () {
212
- var response, e_2;
255
+ var response, e_3;
213
256
  return __generator(this, function (_a) {
214
257
  switch (_a.label) {
215
258
  case 0:
216
- _a.trys.push([0, 2, , 3]);
217
- return [4 /*yield*/, this.buildRequest(url, body).put(url, JSON.parse(body.toJson()))];
259
+ _a.trys.push([0, 3, , 4]);
260
+ return [4 /*yield*/, this.validateEncryption(body)];
218
261
  case 1:
262
+ _a.sent();
263
+ return [4 /*yield*/, this.buildRequest(url, body).put(url, JSON.parse(body.toJson()))];
264
+ case 2:
219
265
  response = _a.sent();
220
266
  return [2 /*return*/, this.parseResponse(response.data, response.status)];
221
- case 2:
222
- e_2 = _a.sent();
223
- return [2 /*return*/, this.exceptionResponse(e_2)];
224
- case 3: return [2 /*return*/];
267
+ case 3:
268
+ e_3 = _a.sent();
269
+ return [2 /*return*/, this.exceptionResponse(e_3)];
270
+ case 4: return [2 /*return*/];
225
271
  }
226
272
  });
227
273
  });
@@ -236,21 +282,24 @@ var ServiceBehaviour = /** @class */ (function () {
236
282
  */
237
283
  ServiceBehaviour.prototype.delete = function (url, body) {
238
284
  return __awaiter(this, void 0, void 0, function () {
239
- var response, e_3;
285
+ var response, e_4;
240
286
  return __generator(this, function (_a) {
241
287
  switch (_a.label) {
242
288
  case 0:
243
- _a.trys.push([0, 2, , 3]);
289
+ _a.trys.push([0, 3, , 4]);
290
+ return [4 /*yield*/, this.validateEncryption(body)];
291
+ case 1:
292
+ _a.sent();
244
293
  return [4 /*yield*/, this.buildRequest(url, body).delete(url, {
245
294
  params: JSON.parse(body.toJson()),
246
295
  })];
247
- case 1:
296
+ case 2:
248
297
  response = _a.sent();
249
298
  return [2 /*return*/, this.parseResponse(response.data, response.status)];
250
- case 2:
251
- e_3 = _a.sent();
252
- return [2 /*return*/, this.exceptionResponse(e_3)];
253
- case 3: return [2 /*return*/];
299
+ case 3:
300
+ e_4 = _a.sent();
301
+ return [2 /*return*/, this.exceptionResponse(e_4)];
302
+ case 4: return [2 /*return*/];
254
303
  }
255
304
  });
256
305
  });
@@ -265,21 +314,26 @@ var ServiceBehaviour = /** @class */ (function () {
265
314
  */
266
315
  ServiceBehaviour.prototype.get = function (url, body) {
267
316
  return __awaiter(this, void 0, void 0, function () {
268
- var response, e_4;
317
+ var response, e_5;
269
318
  return __generator(this, function (_a) {
270
319
  switch (_a.label) {
271
320
  case 0:
272
- _a.trys.push([0, 2, , 3]);
273
- return [4 /*yield*/, this.buildRequest(url, body).get(url, {
274
- params: JSON.parse(body.toJson()),
275
- })];
321
+ _a.trys.push([0, 4, , 5]);
322
+ if (!(url !== PUBLIC_KEY_PATH)) return [3 /*break*/, 2];
323
+ return [4 /*yield*/, this.validateEncryption(body)];
276
324
  case 1:
325
+ _a.sent();
326
+ _a.label = 2;
327
+ case 2: return [4 /*yield*/, this.buildRequest(url, body).get(url, {
328
+ params: JSON.parse(body.toJson()),
329
+ })];
330
+ case 3:
277
331
  response = _a.sent();
278
332
  return [2 /*return*/, this.parseResponse(response.data, response.status)];
279
- case 2:
280
- e_4 = _a.sent();
281
- return [2 /*return*/, this.exceptionResponse(e_4)];
282
- case 3: return [2 /*return*/];
333
+ case 4:
334
+ e_5 = _a.sent();
335
+ return [2 /*return*/, this.exceptionResponse(e_5)];
336
+ case 5: return [2 /*return*/];
283
337
  }
284
338
  });
285
339
  });
@@ -1 +1 @@
1
- {"version":3,"file":"ServiceBehaviour.js","sourceRoot":"","sources":["../../src/base/ServiceBehaviour.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ServiceBehaviour.js","sourceRoot":"","sources":["../../src/base/ServiceBehaviour.ts"],"names":[],"mappings":"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"}