@pixelpay/sdk-core 2.1.1 → 2.1.3-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 +23 -1
- package/lib/base/Helpers.d.ts +17 -1
- package/lib/base/Helpers.js +45 -8
- package/lib/base/Helpers.js.map +1 -1
- package/lib/base/RequestBehaviour.d.ts +24 -0
- package/lib/base/RequestBehaviour.js +36 -4
- package/lib/base/RequestBehaviour.js.map +1 -1
- package/lib/base/Response.js +4 -1
- package/lib/base/Response.js.map +1 -1
- package/lib/base/ServiceBehaviour.d.ts +30 -0
- package/lib/base/ServiceBehaviour.js +159 -35
- package/lib/base/ServiceBehaviour.js.map +1 -1
- package/lib/browser/index.js +3 -3
- package/lib/entities/CardResult.js +4 -1
- package/lib/entities/CardResult.js.map +1 -1
- package/lib/entities/TransactionResult.d.ts +12 -0
- package/lib/entities/TransactionResult.js +19 -4
- package/lib/entities/TransactionResult.js.map +1 -1
- package/lib/exceptions/FailedEncryptionException.d.ts +2 -0
- package/lib/exceptions/FailedEncryptionException.js +26 -0
- package/lib/exceptions/FailedEncryptionException.js.map +1 -0
- package/lib/index.d.ts +2 -0
- package/lib/index.js +35 -30
- package/lib/index.js.map +1 -1
- package/lib/libraries/CardinalManager.js +19 -16
- package/lib/libraries/CardinalManager.js.map +1 -1
- package/lib/libraries/PayloadManager.js +6 -3
- package/lib/libraries/PayloadManager.js.map +1 -1
- package/lib/libraries/PixelPayLoading.js +28 -2
- package/lib/libraries/PixelPayLoading.js.map +1 -1
- package/lib/libraries/PixelPayModal.js +4 -1
- package/lib/libraries/PixelPayModal.js.map +1 -1
- package/lib/models/Settings.d.ts +4 -0
- package/lib/models/Settings.js +13 -6
- package/lib/models/Settings.js.map +1 -1
- package/lib/requests/AuthTransaction.js +4 -1
- package/lib/requests/AuthTransaction.js.map +1 -1
- package/lib/requests/CaptureTransaction.js +4 -1
- package/lib/requests/CaptureTransaction.js.map +1 -1
- package/lib/requests/CardTokenization.d.ts +16 -2
- package/lib/requests/CardTokenization.js +51 -4
- package/lib/requests/CardTokenization.js.map +1 -1
- package/lib/requests/LookupContinueTransaction.js +4 -1
- package/lib/requests/LookupContinueTransaction.js.map +1 -1
- package/lib/requests/LookupTransaction.d.ts +18 -0
- package/lib/requests/LookupTransaction.js +50 -1
- package/lib/requests/LookupTransaction.js.map +1 -1
- package/lib/requests/PaymentTransaction.d.ts +19 -5
- package/lib/requests/PaymentTransaction.js +43 -2
- package/lib/requests/PaymentTransaction.js.map +1 -1
- package/lib/requests/SaleTransaction.js +5 -2
- package/lib/requests/SaleTransaction.js.map +1 -1
- package/lib/requests/StatusTransaction.js +4 -1
- package/lib/requests/StatusTransaction.js.map +1 -1
- package/lib/requests/VoidTransaction.js +4 -1
- package/lib/requests/VoidTransaction.js.map +1 -1
- package/lib/resources/Locations.js +26 -3
- package/lib/resources/Locations.js.map +1 -1
- package/lib/responses/ErrorResponse.js +4 -1
- package/lib/responses/ErrorResponse.js.map +1 -1
- package/lib/responses/FailureResponse.js +4 -1
- package/lib/responses/FailureResponse.js.map +1 -1
- package/lib/responses/InputErrorResponse.js +4 -1
- package/lib/responses/InputErrorResponse.js.map +1 -1
- package/lib/responses/NetworkFailureResponse.js +4 -1
- package/lib/responses/NetworkFailureResponse.js.map +1 -1
- package/lib/responses/NoAccessResponse.js +4 -1
- package/lib/responses/NoAccessResponse.js.map +1 -1
- package/lib/responses/NotFoundResponse.js +4 -1
- package/lib/responses/NotFoundResponse.js.map +1 -1
- package/lib/responses/PayloadResponse.js +4 -1
- package/lib/responses/PayloadResponse.js.map +1 -1
- package/lib/responses/PaymentDeclinedResponse.js +4 -1
- package/lib/responses/PaymentDeclinedResponse.js.map +1 -1
- package/lib/responses/PreconditionalResponse.js +4 -1
- package/lib/responses/PreconditionalResponse.js.map +1 -1
- package/lib/responses/SuccessResponse.js +4 -1
- package/lib/responses/SuccessResponse.js.map +1 -1
- package/lib/responses/TimeoutResponse.js +4 -1
- package/lib/responses/TimeoutResponse.js.map +1 -1
- package/lib/services/CardinalAuthentication.d.ts +4 -4
- package/lib/services/CardinalAuthentication.js +10 -7
- package/lib/services/CardinalAuthentication.js.map +1 -1
- package/lib/services/Tokenization.js +6 -3
- package/lib/services/Tokenization.js.map +1 -1
- package/lib/services/Transaction.js +12 -9
- package/lib/services/Transaction.js.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/lib/version.js.map +1 -1
- package/package.json +4 -2
- package/tests/Tokenization.test.ts +12 -8
- package/tsconfig.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -5,9 +5,31 @@ 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.3-beta.0] - 2023-08-16
|
|
9
|
+
### Added
|
|
10
|
+
- Se agregó campo de cuotas para autenticación con 3D Secure
|
|
11
|
+
|
|
12
|
+
## [v2.1.2] - 2023-08-16
|
|
13
|
+
### Added
|
|
14
|
+
- Se omiten los métodos de encriptación si la petición no lo requiere
|
|
15
|
+
|
|
16
|
+
### Changed
|
|
17
|
+
- En caso de fallos, se hacen reintentos para adquirir la llave pública del comercio
|
|
18
|
+
- En caso de fallos, se hacen reintentos para encriptar los datos de tarjeta
|
|
19
|
+
|
|
20
|
+
### Fixed
|
|
21
|
+
- Se corrigió caso donde reintentos de transacciones con una misma instancia de `RequestBehaviour` encripta datos múltiples veces
|
|
22
|
+
- Se corrigió encriptación para transacciones de 3D Secure
|
|
23
|
+
- Se arregló conflicto de encriptación al reutilizar instancias de `RequestBehaviour`
|
|
24
|
+
- Se arregló servicios de tokenización enviando fecha de expiración incorrecta si no se llenan los campos
|
|
25
|
+
|
|
8
26
|
## [v2.1.1] - 2023-08-09
|
|
27
|
+
### Changed
|
|
28
|
+
- Rollback temporal a v2.0.6
|
|
29
|
+
|
|
30
|
+
## [v2.1.0] - 2023-07-18
|
|
9
31
|
### Added
|
|
10
|
-
-
|
|
32
|
+
- Se agregó encriptación de datos de tarjeta.
|
|
11
33
|
|
|
12
34
|
## [v2.0.6] - 2023-06-09
|
|
13
35
|
### Added
|
package/lib/base/Helpers.d.ts
CHANGED
|
@@ -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
|
|
@@ -5,7 +6,7 @@ declare const _default: {
|
|
|
5
6
|
* @param value
|
|
6
7
|
* @return
|
|
7
8
|
*/
|
|
8
|
-
objectToJson(value: any): string;
|
|
9
|
+
objectToJson(value: any, ignore?: string[]): string;
|
|
9
10
|
/**
|
|
10
11
|
* Helper to hash object by algorithm
|
|
11
12
|
*
|
|
@@ -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
|
*/
|
package/lib/base/Helpers.js
CHANGED
|
@@ -10,7 +10,12 @@ var __assign = (this && this.__assign) || function () {
|
|
|
10
10
|
};
|
|
11
11
|
return __assign.apply(this, arguments);
|
|
12
12
|
};
|
|
13
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
+
};
|
|
13
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
var tweetnacl_1 = __importDefault(require("tweetnacl"));
|
|
18
|
+
var tweetnacl_util_1 = __importDefault(require("tweetnacl-util"));
|
|
14
19
|
var crypto_js_1 = require("crypto-js");
|
|
15
20
|
exports.default = {
|
|
16
21
|
/**
|
|
@@ -19,10 +24,11 @@ exports.default = {
|
|
|
19
24
|
* @param value
|
|
20
25
|
* @return
|
|
21
26
|
*/
|
|
22
|
-
objectToJson: function (value) {
|
|
27
|
+
objectToJson: function (value, ignore) {
|
|
28
|
+
if (ignore === void 0) { ignore = []; }
|
|
23
29
|
var filtered = __assign({}, value);
|
|
24
30
|
for (var propName in filtered) {
|
|
25
|
-
if (filtered[propName] === null || filtered[propName] === undefined) {
|
|
31
|
+
if (filtered[propName] === null || filtered[propName] === undefined || ignore.includes(propName)) {
|
|
26
32
|
delete filtered[propName];
|
|
27
33
|
}
|
|
28
34
|
}
|
|
@@ -37,12 +43,12 @@ exports.default = {
|
|
|
37
43
|
*/
|
|
38
44
|
hash: function (algorithm, value) {
|
|
39
45
|
switch (algorithm) {
|
|
40
|
-
case
|
|
46
|
+
case 'MD5':
|
|
41
47
|
return (0, crypto_js_1.MD5)(value).toString();
|
|
42
|
-
case
|
|
48
|
+
case 'SHA-512':
|
|
43
49
|
return (0, crypto_js_1.SHA512)(value).toString();
|
|
44
50
|
default:
|
|
45
|
-
return
|
|
51
|
+
return '';
|
|
46
52
|
}
|
|
47
53
|
},
|
|
48
54
|
/**
|
|
@@ -81,11 +87,42 @@ exports.default = {
|
|
|
81
87
|
}
|
|
82
88
|
return null;
|
|
83
89
|
},
|
|
90
|
+
/**
|
|
91
|
+
* Generate encryption key pair
|
|
92
|
+
*
|
|
93
|
+
* @return
|
|
94
|
+
*/
|
|
95
|
+
getKeyPair: function () {
|
|
96
|
+
return tweetnacl_1.default.box.keyPair();
|
|
97
|
+
},
|
|
98
|
+
/**
|
|
99
|
+
* Encrypt message, returns encrypted value concatenated with base64 nonce.
|
|
100
|
+
*
|
|
101
|
+
* @param message
|
|
102
|
+
* @param publicKey
|
|
103
|
+
* @param keyPair
|
|
104
|
+
* @return
|
|
105
|
+
*/
|
|
106
|
+
encrypt: function (message, publicKey, keyPair) {
|
|
107
|
+
if (!message) {
|
|
108
|
+
return null;
|
|
109
|
+
}
|
|
110
|
+
if (message.includes('|')) {
|
|
111
|
+
return message;
|
|
112
|
+
}
|
|
113
|
+
var nonce = tweetnacl_1.default.randomBytes(24);
|
|
114
|
+
var merchantPublicKey = tweetnacl_util_1.default.decodeBase64(publicKey);
|
|
115
|
+
var sharedKey = tweetnacl_1.default.box.before(merchantPublicKey, keyPair.secretKey);
|
|
116
|
+
var box = tweetnacl_1.default.box.after(tweetnacl_util_1.default.decodeUTF8(message), nonce, sharedKey);
|
|
117
|
+
var boxb64 = tweetnacl_util_1.default.encodeBase64(box);
|
|
118
|
+
var nonceb64 = tweetnacl_util_1.default.encodeBase64(nonce);
|
|
119
|
+
return "".concat(boxb64, "|").concat(nonceb64);
|
|
120
|
+
},
|
|
84
121
|
/**
|
|
85
122
|
* Verify if environment is a Browser
|
|
86
123
|
*/
|
|
87
124
|
checkIsBrowser: function () {
|
|
88
|
-
return typeof window !==
|
|
125
|
+
return typeof window !== 'undefined' && typeof window.document !== 'undefined';
|
|
89
126
|
},
|
|
90
127
|
/**
|
|
91
128
|
* Append website script and load
|
|
@@ -95,11 +132,11 @@ exports.default = {
|
|
|
95
132
|
addScriptToWebsite: function (src) {
|
|
96
133
|
return new Promise(function (resolve, reject) {
|
|
97
134
|
var id = (0, crypto_js_1.MD5)(src).toString();
|
|
98
|
-
var script = document.createElement(
|
|
135
|
+
var script = document.createElement('script');
|
|
99
136
|
if (!document.querySelector("script[id=\"".concat(id, "\"]"))) {
|
|
100
137
|
script.id = id;
|
|
101
138
|
script.src = src;
|
|
102
|
-
script.type =
|
|
139
|
+
script.type = 'text/javascript';
|
|
103
140
|
script.onload = resolve;
|
|
104
141
|
script.onerror = reject;
|
|
105
142
|
document.body.appendChild(script);
|
package/lib/base/Helpers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Helpers.js","sourceRoot":"","sources":["../../src/base/Helpers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Helpers.js","sourceRoot":"","sources":["../../src/base/Helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import nacl from 'tweetnacl';
|
|
1
2
|
export default class RequestBehaviour {
|
|
2
3
|
/**
|
|
3
4
|
* Environment identifier (live|test|sandbox)
|
|
@@ -15,10 +16,33 @@ export default class RequestBehaviour {
|
|
|
15
16
|
* SDK version
|
|
16
17
|
*/
|
|
17
18
|
sdk_version: string;
|
|
19
|
+
/**
|
|
20
|
+
* For internal use to prevent encrypting same request instance twice
|
|
21
|
+
*/
|
|
22
|
+
protected sdk_key_pair: nacl.BoxKeyPair;
|
|
18
23
|
/**
|
|
19
24
|
* Initialize request
|
|
20
25
|
*/
|
|
21
26
|
constructor();
|
|
27
|
+
/**
|
|
28
|
+
* Get sdk_key_pair from current instance
|
|
29
|
+
*
|
|
30
|
+
* @return
|
|
31
|
+
*/
|
|
32
|
+
getSDKKeyPair(): nacl.BoxKeyPair | null;
|
|
33
|
+
/**
|
|
34
|
+
* Check if current request needs encryption, must be overriden by inherited classes.
|
|
35
|
+
*
|
|
36
|
+
* @return
|
|
37
|
+
*/
|
|
38
|
+
isEncryptable(): boolean;
|
|
39
|
+
/**
|
|
40
|
+
* Encrypt fields with sensitive data, must be overriden by inherited classes.
|
|
41
|
+
*
|
|
42
|
+
* @param publicKey
|
|
43
|
+
* @return
|
|
44
|
+
*/
|
|
45
|
+
withEncryption(publicKey: string): string | null;
|
|
22
46
|
/**
|
|
23
47
|
* Serialize object to JSON string
|
|
24
48
|
*
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
var Helpers_1 = require("./Helpers");
|
|
4
|
-
var version_1 = require("../version");
|
|
6
|
+
var Helpers_1 = __importDefault(require("./Helpers"));
|
|
7
|
+
var version_1 = __importDefault(require("../version"));
|
|
5
8
|
var RequestBehaviour = /** @class */ (function () {
|
|
6
9
|
/**
|
|
7
10
|
* Initialize request
|
|
@@ -23,20 +26,49 @@ var RequestBehaviour = /** @class */ (function () {
|
|
|
23
26
|
* SDK version
|
|
24
27
|
*/
|
|
25
28
|
this.sdk_version = null;
|
|
29
|
+
/**
|
|
30
|
+
* For internal use to prevent encrypting same request instance twice
|
|
31
|
+
*/
|
|
32
|
+
this.sdk_key_pair = null;
|
|
26
33
|
this.lang = Intl.DateTimeFormat().resolvedOptions().locale;
|
|
27
|
-
this.from =
|
|
34
|
+
this.from = 'sdk-javascript';
|
|
28
35
|
this.sdk_version = version_1.default;
|
|
29
36
|
if (this.lang != 'es' && this.lang != 'en') {
|
|
30
37
|
this.lang = 'es';
|
|
31
38
|
}
|
|
32
39
|
}
|
|
40
|
+
/**
|
|
41
|
+
* Get sdk_key_pair from current instance
|
|
42
|
+
*
|
|
43
|
+
* @return
|
|
44
|
+
*/
|
|
45
|
+
RequestBehaviour.prototype.getSDKKeyPair = function () {
|
|
46
|
+
return this.sdk_key_pair;
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Check if current request needs encryption, must be overriden by inherited classes.
|
|
50
|
+
*
|
|
51
|
+
* @return
|
|
52
|
+
*/
|
|
53
|
+
RequestBehaviour.prototype.isEncryptable = function () {
|
|
54
|
+
return false;
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* Encrypt fields with sensitive data, must be overriden by inherited classes.
|
|
58
|
+
*
|
|
59
|
+
* @param publicKey
|
|
60
|
+
* @return
|
|
61
|
+
*/
|
|
62
|
+
RequestBehaviour.prototype.withEncryption = function (publicKey) {
|
|
63
|
+
return null;
|
|
64
|
+
};
|
|
33
65
|
/**
|
|
34
66
|
* Serialize object to JSON string
|
|
35
67
|
*
|
|
36
68
|
* @return
|
|
37
69
|
*/
|
|
38
70
|
RequestBehaviour.prototype.toJson = function () {
|
|
39
|
-
return Helpers_1.default.objectToJson(this);
|
|
71
|
+
return Helpers_1.default.objectToJson(this, ['sdk_key_pair']);
|
|
40
72
|
};
|
|
41
73
|
return RequestBehaviour;
|
|
42
74
|
}());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RequestBehaviour.js","sourceRoot":"","sources":["../../src/base/RequestBehaviour.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RequestBehaviour.js","sourceRoot":"","sources":["../../src/base/RequestBehaviour.ts"],"names":[],"mappings":";;;;;AACA,sDAAgC;AAChC,uDAAiC;AAEjC;IA0BC;;OAEG;IACH;QA5BA;;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;QAE3B;;WAEG;QACO,iBAAY,GAAoB,IAAI,CAAC;QAM9C,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,wCAAa,GAAb;QACC,OAAO,IAAI,CAAC,YAAY,CAAC;IAC1B,CAAC;IAED;;;;OAIG;IACH,wCAAa,GAAb;QACC,OAAO,KAAK,CAAC;IACd,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,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;IACrD,CAAC;IACF,uBAAC;AAAD,CAAC,AA3ED,IA2EC"}
|
package/lib/base/Response.js
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
var Helpers_1 = require("./Helpers");
|
|
6
|
+
var Helpers_1 = __importDefault(require("./Helpers"));
|
|
4
7
|
var Response = /** @class */ (function () {
|
|
5
8
|
function Response() {
|
|
6
9
|
/**
|
package/lib/base/Response.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Response.js","sourceRoot":"","sources":["../../src/base/Response.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Response.js","sourceRoot":"","sources":["../../src/base/Response.ts"],"names":[],"mappings":";;;;;AAAA,sDAAgC;AAEhC;IAAA;QAMC;;WAEG;QACH,WAAM,GAAW,IAAI,CAAC;QAOtB;;WAEG;QACH,YAAO,GAAY,KAAK,CAAC;QAEzB;;WAEG;QACH,YAAO,GAAW,IAAI,CAAC;QAEvB;;WAEG;QACH,SAAI,GAAQ,SAAS,CAAC;QAEtB;;WAEG;QACH,WAAM,GAAW,SAAS,CAAC;IA4D5B,CAAC;IA1DA;;;;OAIG;IACH,4BAAS,GAAT,UAAU,MAAc;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACtB,CAAC;IAED;;;;OAIG;IACH,4BAAS,GAAT;QACC,OAAO,IAAI,CAAC,MAAM,CAAC;IACpB,CAAC;IAED;;;;;OAKG;IACH,gCAAa,GAAb,UAAc,GAAW;QACxB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACjB,OAAO,KAAK,CAAC;SACb;QAED,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IACxC,CAAC;IAED;;;;;OAKG;IACH,0BAAO,GAAP,UAAQ,GAAW;QAClB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACf,OAAO,IAAI,CAAC;SACZ;QAED,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;YACnC,OAAO,IAAI,CAAC;SACZ;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;IAC/B,CAAC;IAED;;;;OAIG;IACH,yBAAM,GAAN;QACC,OAAO,iBAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IACF,eAAC;AAAD,CAAC,AA9FD,IA8FC"}
|
|
@@ -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
|
+
private sdk_public_key;
|
|
9
13
|
/**
|
|
10
14
|
* Initialize service
|
|
11
15
|
*/
|
|
@@ -33,6 +37,32 @@ 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;
|
|
46
|
+
/**
|
|
47
|
+
* Resiliently fetch merchant public key, trying at least 3 times before failing
|
|
48
|
+
*
|
|
49
|
+
* @throws InvalidCredentialsException
|
|
50
|
+
*/
|
|
51
|
+
private validateMerchantPublicKey;
|
|
52
|
+
/**
|
|
53
|
+
* Resiliently generate keys and encrypt request, trying at least 3 times before failing
|
|
54
|
+
*
|
|
55
|
+
* @param request
|
|
56
|
+
* @throws FailedEncryptionException
|
|
57
|
+
*/
|
|
58
|
+
private validateSDKPublicKey;
|
|
59
|
+
/**
|
|
60
|
+
* Fetch merchant public key for encryption
|
|
61
|
+
*
|
|
62
|
+
* @return
|
|
63
|
+
* @throws InvalidCredentialsException
|
|
64
|
+
*/
|
|
65
|
+
private fetchMerchantPublicKey;
|
|
36
66
|
/**
|
|
37
67
|
* Get API route
|
|
38
68
|
*
|
|
@@ -35,24 +35,30 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
35
35
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
36
|
}
|
|
37
37
|
};
|
|
38
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
39
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
40
|
+
};
|
|
38
41
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
var axios_1 = require("axios");
|
|
40
|
-
var InvalidCredentialsException_1 = require("../exceptions/InvalidCredentialsException");
|
|
41
|
-
var
|
|
42
|
-
var
|
|
43
|
-
var
|
|
44
|
-
var
|
|
45
|
-
var
|
|
46
|
-
var
|
|
47
|
-
var
|
|
48
|
-
var
|
|
49
|
-
var
|
|
50
|
-
var
|
|
51
|
-
var
|
|
52
|
-
var
|
|
42
|
+
var axios_1 = __importDefault(require("axios"));
|
|
43
|
+
var InvalidCredentialsException_1 = __importDefault(require("../exceptions/InvalidCredentialsException"));
|
|
44
|
+
var FailedEncryptionException_1 = __importDefault(require("../exceptions/FailedEncryptionException"));
|
|
45
|
+
var RequestBehaviour_1 = __importDefault(require("./RequestBehaviour"));
|
|
46
|
+
var Response_1 = __importDefault(require("./Response"));
|
|
47
|
+
var ErrorResponse_1 = __importDefault(require("../responses/ErrorResponse"));
|
|
48
|
+
var FailureResponse_1 = __importDefault(require("../responses/FailureResponse"));
|
|
49
|
+
var InputErrorResponse_1 = __importDefault(require("../responses/InputErrorResponse"));
|
|
50
|
+
var NetworkFailureResponse_1 = __importDefault(require("../responses/NetworkFailureResponse"));
|
|
51
|
+
var NoAccessResponse_1 = __importDefault(require("../responses/NoAccessResponse"));
|
|
52
|
+
var NotFoundResponse_1 = __importDefault(require("../responses/NotFoundResponse"));
|
|
53
|
+
var PayloadResponse_1 = __importDefault(require("../responses/PayloadResponse"));
|
|
54
|
+
var PaymentDeclinedResponse_1 = __importDefault(require("../responses/PaymentDeclinedResponse"));
|
|
55
|
+
var PreconditionalResponse_1 = __importDefault(require("../responses/PreconditionalResponse"));
|
|
56
|
+
var SuccessResponse_1 = __importDefault(require("../responses/SuccessResponse"));
|
|
57
|
+
var TimeoutResponse_1 = __importDefault(require("../responses/TimeoutResponse"));
|
|
53
58
|
axios_1.default.defaults.validateStatus = function () {
|
|
54
59
|
return true;
|
|
55
60
|
};
|
|
61
|
+
var PUBLIC_KEY_PATH = 'api/v2/merchant/public_key';
|
|
56
62
|
var ServiceBehaviour = /** @class */ (function () {
|
|
57
63
|
/**
|
|
58
64
|
* Initialize service
|
|
@@ -69,7 +75,7 @@ var ServiceBehaviour = /** @class */ (function () {
|
|
|
69
75
|
*/
|
|
70
76
|
ServiceBehaviour.prototype.buildRequest = function (url, transaction) {
|
|
71
77
|
if (!this.settings.auth_key || !this.settings.auth_hash) {
|
|
72
|
-
throw new InvalidCredentialsException_1.default(
|
|
78
|
+
throw new InvalidCredentialsException_1.default('The merchant credentials are not definied (key/hash).');
|
|
73
79
|
}
|
|
74
80
|
if (this.settings.environment != null) {
|
|
75
81
|
transaction.env = this.settings.environment;
|
|
@@ -84,7 +90,10 @@ var ServiceBehaviour = /** @class */ (function () {
|
|
|
84
90
|
'x-auth-hash': this.settings.auth_hash,
|
|
85
91
|
};
|
|
86
92
|
if (this.settings.auth_user) {
|
|
87
|
-
headers[
|
|
93
|
+
headers['x-auth-user'] = this.settings.auth_user;
|
|
94
|
+
}
|
|
95
|
+
if (this.sdk_public_key) {
|
|
96
|
+
headers['x-auth-secure'] = this.sdk_public_key;
|
|
88
97
|
}
|
|
89
98
|
return axios_1.default.create({
|
|
90
99
|
baseURL: this.settings.endpoint,
|
|
@@ -163,6 +172,107 @@ var ServiceBehaviour = /** @class */ (function () {
|
|
|
163
172
|
response.message = e.message;
|
|
164
173
|
return response;
|
|
165
174
|
};
|
|
175
|
+
/**
|
|
176
|
+
* Verify and set request encryption values
|
|
177
|
+
*
|
|
178
|
+
* @param request
|
|
179
|
+
*/
|
|
180
|
+
ServiceBehaviour.prototype.validateEncryption = function (request) {
|
|
181
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
182
|
+
return __generator(this, function (_a) {
|
|
183
|
+
switch (_a.label) {
|
|
184
|
+
case 0:
|
|
185
|
+
if (!request.isEncryptable()) {
|
|
186
|
+
return [2 /*return*/];
|
|
187
|
+
}
|
|
188
|
+
return [4 /*yield*/, this.validateMerchantPublicKey()];
|
|
189
|
+
case 1:
|
|
190
|
+
_a.sent();
|
|
191
|
+
this.validateSDKPublicKey(request);
|
|
192
|
+
return [2 /*return*/];
|
|
193
|
+
}
|
|
194
|
+
});
|
|
195
|
+
});
|
|
196
|
+
};
|
|
197
|
+
/**
|
|
198
|
+
* Resiliently fetch merchant public key, trying at least 3 times before failing
|
|
199
|
+
*
|
|
200
|
+
* @throws InvalidCredentialsException
|
|
201
|
+
*/
|
|
202
|
+
ServiceBehaviour.prototype.validateMerchantPublicKey = function () {
|
|
203
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
204
|
+
var tries, _a;
|
|
205
|
+
return __generator(this, function (_b) {
|
|
206
|
+
switch (_b.label) {
|
|
207
|
+
case 0:
|
|
208
|
+
tries = 0;
|
|
209
|
+
_b.label = 1;
|
|
210
|
+
case 1:
|
|
211
|
+
if (!(!this.settings.public_key && tries < 3)) return [3 /*break*/, 3];
|
|
212
|
+
_a = this.settings;
|
|
213
|
+
return [4 /*yield*/, this.fetchMerchantPublicKey()];
|
|
214
|
+
case 2:
|
|
215
|
+
_a.public_key = _b.sent();
|
|
216
|
+
tries++;
|
|
217
|
+
return [3 /*break*/, 1];
|
|
218
|
+
case 3:
|
|
219
|
+
if (this.settings.public_key == null) {
|
|
220
|
+
throw new InvalidCredentialsException_1.default('Could not obtain necessary credentials for transaction.');
|
|
221
|
+
}
|
|
222
|
+
return [2 /*return*/];
|
|
223
|
+
}
|
|
224
|
+
});
|
|
225
|
+
});
|
|
226
|
+
};
|
|
227
|
+
/**
|
|
228
|
+
* Resiliently generate keys and encrypt request, trying at least 3 times before failing
|
|
229
|
+
*
|
|
230
|
+
* @param request
|
|
231
|
+
* @throws FailedEncryptionException
|
|
232
|
+
*/
|
|
233
|
+
ServiceBehaviour.prototype.validateSDKPublicKey = function (request) {
|
|
234
|
+
var tries = 0;
|
|
235
|
+
var lastError = null;
|
|
236
|
+
while (!this.sdk_public_key && tries < 3 || tries === 0) {
|
|
237
|
+
try {
|
|
238
|
+
this.sdk_public_key = request.withEncryption(this.settings.public_key);
|
|
239
|
+
}
|
|
240
|
+
catch (err) {
|
|
241
|
+
lastError = err;
|
|
242
|
+
}
|
|
243
|
+
finally {
|
|
244
|
+
tries++;
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
if (!this.sdk_public_key && lastError) {
|
|
248
|
+
throw lastError;
|
|
249
|
+
}
|
|
250
|
+
if (!this.sdk_public_key) {
|
|
251
|
+
throw new FailedEncryptionException_1.default('Could not process encryption, please try again.');
|
|
252
|
+
}
|
|
253
|
+
};
|
|
254
|
+
/**
|
|
255
|
+
* Fetch merchant public key for encryption
|
|
256
|
+
*
|
|
257
|
+
* @return
|
|
258
|
+
* @throws InvalidCredentialsException
|
|
259
|
+
*/
|
|
260
|
+
ServiceBehaviour.prototype.fetchMerchantPublicKey = function () {
|
|
261
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
262
|
+
var response;
|
|
263
|
+
return __generator(this, function (_a) {
|
|
264
|
+
switch (_a.label) {
|
|
265
|
+
case 0: return [4 /*yield*/, this.get(PUBLIC_KEY_PATH, new RequestBehaviour_1.default())];
|
|
266
|
+
case 1:
|
|
267
|
+
response = _a.sent();
|
|
268
|
+
if (response.success) {
|
|
269
|
+
return [2 /*return*/, response.getData('public_key')];
|
|
270
|
+
}
|
|
271
|
+
return [2 /*return*/, null];
|
|
272
|
+
}
|
|
273
|
+
});
|
|
274
|
+
});
|
|
275
|
+
};
|
|
166
276
|
/**
|
|
167
277
|
* Get API route
|
|
168
278
|
*
|
|
@@ -170,7 +280,7 @@ var ServiceBehaviour = /** @class */ (function () {
|
|
|
170
280
|
* @return
|
|
171
281
|
*/
|
|
172
282
|
ServiceBehaviour.prototype.getRoute = function (route) {
|
|
173
|
-
return this.settings.endpoint +
|
|
283
|
+
return this.settings.endpoint + '/' + route;
|
|
174
284
|
};
|
|
175
285
|
/**
|
|
176
286
|
* API POST request
|
|
@@ -186,15 +296,18 @@ var ServiceBehaviour = /** @class */ (function () {
|
|
|
186
296
|
return __generator(this, function (_a) {
|
|
187
297
|
switch (_a.label) {
|
|
188
298
|
case 0:
|
|
189
|
-
_a.trys.push([0,
|
|
190
|
-
return [4 /*yield*/, this.
|
|
299
|
+
_a.trys.push([0, 3, , 4]);
|
|
300
|
+
return [4 /*yield*/, this.validateEncryption(body)];
|
|
191
301
|
case 1:
|
|
302
|
+
_a.sent();
|
|
303
|
+
return [4 /*yield*/, this.buildRequest(url, body).post(url, JSON.parse(body.toJson()))];
|
|
304
|
+
case 2:
|
|
192
305
|
response = _a.sent();
|
|
193
306
|
return [2 /*return*/, this.parseResponse(response.data, response.status)];
|
|
194
|
-
case
|
|
307
|
+
case 3:
|
|
195
308
|
e_1 = _a.sent();
|
|
196
309
|
return [2 /*return*/, this.exceptionResponse(e_1)];
|
|
197
|
-
case
|
|
310
|
+
case 4: return [2 /*return*/];
|
|
198
311
|
}
|
|
199
312
|
});
|
|
200
313
|
});
|
|
@@ -213,15 +326,18 @@ var ServiceBehaviour = /** @class */ (function () {
|
|
|
213
326
|
return __generator(this, function (_a) {
|
|
214
327
|
switch (_a.label) {
|
|
215
328
|
case 0:
|
|
216
|
-
_a.trys.push([0,
|
|
217
|
-
return [4 /*yield*/, this.
|
|
329
|
+
_a.trys.push([0, 3, , 4]);
|
|
330
|
+
return [4 /*yield*/, this.validateEncryption(body)];
|
|
218
331
|
case 1:
|
|
332
|
+
_a.sent();
|
|
333
|
+
return [4 /*yield*/, this.buildRequest(url, body).put(url, JSON.parse(body.toJson()))];
|
|
334
|
+
case 2:
|
|
219
335
|
response = _a.sent();
|
|
220
336
|
return [2 /*return*/, this.parseResponse(response.data, response.status)];
|
|
221
|
-
case
|
|
337
|
+
case 3:
|
|
222
338
|
e_2 = _a.sent();
|
|
223
339
|
return [2 /*return*/, this.exceptionResponse(e_2)];
|
|
224
|
-
case
|
|
340
|
+
case 4: return [2 /*return*/];
|
|
225
341
|
}
|
|
226
342
|
});
|
|
227
343
|
});
|
|
@@ -240,17 +356,20 @@ var ServiceBehaviour = /** @class */ (function () {
|
|
|
240
356
|
return __generator(this, function (_a) {
|
|
241
357
|
switch (_a.label) {
|
|
242
358
|
case 0:
|
|
243
|
-
_a.trys.push([0,
|
|
359
|
+
_a.trys.push([0, 3, , 4]);
|
|
360
|
+
return [4 /*yield*/, this.validateEncryption(body)];
|
|
361
|
+
case 1:
|
|
362
|
+
_a.sent();
|
|
244
363
|
return [4 /*yield*/, this.buildRequest(url, body).delete(url, {
|
|
245
364
|
params: JSON.parse(body.toJson()),
|
|
246
365
|
})];
|
|
247
|
-
case
|
|
366
|
+
case 2:
|
|
248
367
|
response = _a.sent();
|
|
249
368
|
return [2 /*return*/, this.parseResponse(response.data, response.status)];
|
|
250
|
-
case
|
|
369
|
+
case 3:
|
|
251
370
|
e_3 = _a.sent();
|
|
252
371
|
return [2 /*return*/, this.exceptionResponse(e_3)];
|
|
253
|
-
case
|
|
372
|
+
case 4: return [2 /*return*/];
|
|
254
373
|
}
|
|
255
374
|
});
|
|
256
375
|
});
|
|
@@ -269,17 +388,22 @@ var ServiceBehaviour = /** @class */ (function () {
|
|
|
269
388
|
return __generator(this, function (_a) {
|
|
270
389
|
switch (_a.label) {
|
|
271
390
|
case 0:
|
|
272
|
-
_a.trys.push([0,
|
|
273
|
-
return [
|
|
274
|
-
|
|
275
|
-
})];
|
|
391
|
+
_a.trys.push([0, 4, , 5]);
|
|
392
|
+
if (!(url !== PUBLIC_KEY_PATH)) return [3 /*break*/, 2];
|
|
393
|
+
return [4 /*yield*/, this.validateEncryption(body)];
|
|
276
394
|
case 1:
|
|
395
|
+
_a.sent();
|
|
396
|
+
_a.label = 2;
|
|
397
|
+
case 2: return [4 /*yield*/, this.buildRequest(url, body).get(url, {
|
|
398
|
+
params: JSON.parse(body.toJson()),
|
|
399
|
+
})];
|
|
400
|
+
case 3:
|
|
277
401
|
response = _a.sent();
|
|
278
402
|
return [2 /*return*/, this.parseResponse(response.data, response.status)];
|
|
279
|
-
case
|
|
403
|
+
case 4:
|
|
280
404
|
e_4 = _a.sent();
|
|
281
405
|
return [2 /*return*/, this.exceptionResponse(e_4)];
|
|
282
|
-
case
|
|
406
|
+
case 5: return [2 /*return*/];
|
|
283
407
|
}
|
|
284
408
|
});
|
|
285
409
|
});
|