@pixelpay/sdk-core 2.0.5 → 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 +10 -0
- package/CONTRIBUTING.md +8 -0
- package/README.md +0 -7
- package/lib/assets/formats.json +982 -0
- package/lib/base/Helpers.d.ts +19 -3
- package/lib/base/Helpers.js +43 -10
- package/lib/base/Helpers.js.map +1 -1
- package/lib/base/RequestBehaviour.d.ts +7 -0
- package/lib/base/RequestBehaviour.js +10 -1
- package/lib/base/RequestBehaviour.js.map +1 -1
- package/lib/base/ServiceBehaviour.d.ts +10 -0
- package/lib/base/ServiceBehaviour.js +88 -34
- package/lib/base/ServiceBehaviour.js.map +1 -1
- package/lib/browser/index.js +3 -3
- package/lib/index.d.ts +1 -0
- package/lib/libraries/CardinalManager.js +1 -1
- package/lib/models/Settings.d.ts +4 -0
- package/lib/models/Settings.js +8 -4
- package/lib/models/Settings.js.map +1 -1
- package/lib/requests/CardTokenization.d.ts +9 -2
- package/lib/requests/CardTokenization.js +28 -0
- package/lib/requests/CardTokenization.js.map +1 -1
- package/lib/requests/PaymentTransaction.d.ts +12 -5
- package/lib/requests/PaymentTransaction.js +25 -0
- package/lib/requests/PaymentTransaction.js.map +1 -1
- package/lib/requests/SaleTransaction.d.ts +25 -0
- package/lib/requests/SaleTransaction.js +33 -1
- package/lib/requests/SaleTransaction.js.map +1 -1
- package/lib/requests/VoidTransaction.d.ts +4 -0
- package/lib/requests/VoidTransaction.js +4 -0
- package/lib/requests/VoidTransaction.js.map +1 -1
- package/lib/resources/Locations.d.ts +7 -0
- package/lib/resources/Locations.js +13 -0
- package/lib/resources/Locations.js.map +1 -1
- package/lib/services/Tokenization.js +1 -1
- package/lib/services/Transaction.js +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 +5 -2
- package/tests/Locations.test.ts +7 -2
- package/tests/Transaction.test.ts +24 -34
package/lib/index.d.ts
CHANGED
|
@@ -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]) {
|
package/lib/models/Settings.d.ts
CHANGED
package/lib/models/Settings.js
CHANGED
|
@@ -31,7 +31,11 @@ var Settings = /** @class */ (function () {
|
|
|
31
31
|
* Settings response messages language
|
|
32
32
|
*/
|
|
33
33
|
this.lang = undefined;
|
|
34
|
-
|
|
34
|
+
/**
|
|
35
|
+
* Public encryption key
|
|
36
|
+
*/
|
|
37
|
+
this.public_key = undefined;
|
|
38
|
+
this.endpoint = 'https://pixelpay.app';
|
|
35
39
|
}
|
|
36
40
|
/**
|
|
37
41
|
* Setup API endpoint URL
|
|
@@ -71,9 +75,9 @@ var Settings = /** @class */ (function () {
|
|
|
71
75
|
* Setup defaults to Sandbox credentials
|
|
72
76
|
*/
|
|
73
77
|
Settings.prototype.setupSandbox = function () {
|
|
74
|
-
this.endpoint =
|
|
75
|
-
this.auth_key =
|
|
76
|
-
this.auth_hash = Helpers_1.default.hash(
|
|
78
|
+
this.endpoint = 'https://pixel-pay.com';
|
|
79
|
+
this.auth_key = '1234567890';
|
|
80
|
+
this.auth_hash = Helpers_1.default.hash('MD5', '@s4ndb0x-abcd-1234-n1l4-p1x3l');
|
|
77
81
|
this.environment = Environment_1.default.SANDBOX;
|
|
78
82
|
};
|
|
79
83
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Settings.js","sourceRoot":"","sources":["../../src/models/Settings.ts"],"names":[],"mappings":";;AAAA,2CAAsC;AACtC,wDAAmD;AAEnD;
|
|
1
|
+
{"version":3,"file":"Settings.js","sourceRoot":"","sources":["../../src/models/Settings.ts"],"names":[],"mappings":";;AAAA,2CAAsC;AACtC,wDAAmD;AAEnD;IAoCC;;OAEG;IACH;QAtCA;;WAEG;QACH,aAAQ,GAAW,SAAS,CAAC;QAE7B;;WAEG;QACH,cAAS,GAAW,SAAS,CAAC;QAE9B;;WAEG;QACH,cAAS,GAAW,SAAS,CAAC;QAE9B;;WAEG;QACH,aAAQ,GAAW,SAAS,CAAC;QAE7B;;WAEG;QACH,gBAAW,GAAW,SAAS,CAAC;QAEhC;;WAEG;QACH,SAAI,GAAW,SAAS,CAAC;QAEzB;;WAEG;QACH,eAAU,GAAW,SAAS,CAAC;QAM9B,IAAI,CAAC,QAAQ,GAAG,sBAAsB,CAAC;IACxC,CAAC;IAED;;;;OAIG;IACH,gCAAa,GAAb,UAAc,QAAgB;QAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC1B,CAAC;IAED;;;;;OAKG;IACH,mCAAgB,GAAhB,UAAiB,GAAW,EAAE,IAAY;QACzC,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;QACpB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACH,oCAAiB,GAAjB,UAAkB,IAAY;QAC7B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACH,mCAAgB,GAAhB,UAAiB,GAAW;QAC3B,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,+BAAY,GAAZ;QACC,IAAI,CAAC,QAAQ,GAAG,uBAAuB,CAAC;QACxC,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,iBAAO,CAAC,IAAI,CAAC,KAAK,EAAE,+BAA+B,CAAC,CAAC;QACtE,IAAI,CAAC,WAAW,GAAG,qBAAW,CAAC,OAAO,CAAC;IACxC,CAAC;IAED;;;;OAIG;IACH,gCAAa,GAAb,UAAc,IAAY;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IAClB,CAAC;IACF,eAAC;AAAD,CAAC,AAnGD,IAmGC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import RequestBehaviour from '../base/RequestBehaviour';
|
|
2
|
-
import Card from
|
|
3
|
-
import Billing from
|
|
2
|
+
import Card from '../models/Card';
|
|
3
|
+
import Billing from '../models/Billing';
|
|
4
4
|
export default class CardTokenization extends RequestBehaviour {
|
|
5
5
|
/**
|
|
6
6
|
* Card number or PAN
|
|
@@ -62,4 +62,11 @@ export default class CardTokenization extends RequestBehaviour {
|
|
|
62
62
|
* @param billing
|
|
63
63
|
*/
|
|
64
64
|
setBilling(billing: Billing): void;
|
|
65
|
+
/**
|
|
66
|
+
* Encrypt fields with sensitive data.
|
|
67
|
+
*
|
|
68
|
+
* @param publicKey
|
|
69
|
+
* @return
|
|
70
|
+
*/
|
|
71
|
+
withEncryption(publicKey: string | null): string | null;
|
|
65
72
|
}
|
|
@@ -15,6 +15,7 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
15
15
|
};
|
|
16
16
|
})();
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
var tweetnacl_util_1 = require("tweetnacl-util");
|
|
18
19
|
var RequestBehaviour_1 = require("../base/RequestBehaviour");
|
|
19
20
|
var Helpers_1 = require("../base/Helpers");
|
|
20
21
|
var CardTokenization = /** @class */ (function (_super) {
|
|
@@ -96,6 +97,33 @@ var CardTokenization = /** @class */ (function (_super) {
|
|
|
96
97
|
this.zip = billing.zip;
|
|
97
98
|
this.phone = billing.phone;
|
|
98
99
|
};
|
|
100
|
+
/**
|
|
101
|
+
* Encrypt fields with sensitive data.
|
|
102
|
+
*
|
|
103
|
+
* @param publicKey
|
|
104
|
+
* @return
|
|
105
|
+
*/
|
|
106
|
+
CardTokenization.prototype.withEncryption = function (publicKey) {
|
|
107
|
+
if (!publicKey) {
|
|
108
|
+
return null;
|
|
109
|
+
}
|
|
110
|
+
var keyPair = Helpers_1.default.getKeyPair();
|
|
111
|
+
var number = Helpers_1.default.encrypt(this.number, publicKey, keyPair);
|
|
112
|
+
var cvv2 = Helpers_1.default.encrypt(this.cvv2, publicKey, keyPair);
|
|
113
|
+
var expire_month = Helpers_1.default.encrypt(this.expire_month, publicKey, keyPair);
|
|
114
|
+
var expire_year = Helpers_1.default.encrypt(this.expire_year, publicKey, keyPair);
|
|
115
|
+
if (this.number === number
|
|
116
|
+
&& this.cvv2 === cvv2
|
|
117
|
+
&& this.expire_month === expire_month
|
|
118
|
+
&& this.expire_year === expire_year) {
|
|
119
|
+
return null;
|
|
120
|
+
}
|
|
121
|
+
this.number = number;
|
|
122
|
+
this.cvv2 = cvv2;
|
|
123
|
+
this.expire_month = expire_month;
|
|
124
|
+
this.expire_year = expire_year;
|
|
125
|
+
return tweetnacl_util_1.default.encodeBase64(keyPair.publicKey);
|
|
126
|
+
};
|
|
99
127
|
return CardTokenization;
|
|
100
128
|
}(RequestBehaviour_1.default));
|
|
101
129
|
exports.default = CardTokenization;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CardTokenization.js","sourceRoot":"","sources":["../../src/requests/CardTokenization.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,6DAAwD;AACxD,2CAAsC;AAItC;IAA8C,oCAAgB;IAA9D;QAAA,
|
|
1
|
+
{"version":3,"file":"CardTokenization.js","sourceRoot":"","sources":["../../src/requests/CardTokenization.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import Item from
|
|
2
|
-
import Order from
|
|
3
|
-
import Card from
|
|
4
|
-
import Billing from
|
|
5
|
-
import RequestBehaviour from
|
|
1
|
+
import Item from '../models/Item';
|
|
2
|
+
import Order from '../models/Order';
|
|
3
|
+
import Card from '../models/Card';
|
|
4
|
+
import Billing from '../models/Billing';
|
|
5
|
+
import RequestBehaviour from '../base/RequestBehaviour';
|
|
6
6
|
export default class PaymentTransaction extends RequestBehaviour {
|
|
7
7
|
/**
|
|
8
8
|
* Payment UUID
|
|
@@ -136,4 +136,11 @@ export default class PaymentTransaction extends RequestBehaviour {
|
|
|
136
136
|
* Enable 3DS/EMV authentication request
|
|
137
137
|
*/
|
|
138
138
|
withAuthenticationRequest(): void;
|
|
139
|
+
/**
|
|
140
|
+
* Encrypt fields with sensitive data.
|
|
141
|
+
*
|
|
142
|
+
* @param publicKey
|
|
143
|
+
* @return
|
|
144
|
+
*/
|
|
145
|
+
withEncryption(publicKey: string | null): string | null;
|
|
139
146
|
}
|
|
@@ -15,6 +15,7 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
15
15
|
};
|
|
16
16
|
})();
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
var tweetnacl_util_1 = require("tweetnacl-util");
|
|
18
19
|
var Helpers_1 = require("../base/Helpers");
|
|
19
20
|
var RequestBehaviour_1 = require("../base/RequestBehaviour");
|
|
20
21
|
var PaymentTransaction = /** @class */ (function (_super) {
|
|
@@ -184,6 +185,30 @@ var PaymentTransaction = /** @class */ (function (_super) {
|
|
|
184
185
|
PaymentTransaction.prototype.withAuthenticationRequest = function () {
|
|
185
186
|
this.authentication_request = true;
|
|
186
187
|
};
|
|
188
|
+
/**
|
|
189
|
+
* Encrypt fields with sensitive data.
|
|
190
|
+
*
|
|
191
|
+
* @param publicKey
|
|
192
|
+
* @return
|
|
193
|
+
*/
|
|
194
|
+
PaymentTransaction.prototype.withEncryption = function (publicKey) {
|
|
195
|
+
if (!publicKey) {
|
|
196
|
+
return null;
|
|
197
|
+
}
|
|
198
|
+
var keyPair = Helpers_1.default.getKeyPair();
|
|
199
|
+
var card_number = Helpers_1.default.encrypt(this.card_number, publicKey, keyPair);
|
|
200
|
+
var card_cvv = Helpers_1.default.encrypt(this.card_cvv, publicKey, keyPair);
|
|
201
|
+
var card_expire = Helpers_1.default.encrypt(this.card_expire, publicKey, keyPair);
|
|
202
|
+
if (this.card_number === card_number
|
|
203
|
+
&& this.card_cvv === card_cvv
|
|
204
|
+
&& this.card_expire === card_expire) {
|
|
205
|
+
return null;
|
|
206
|
+
}
|
|
207
|
+
this.card_number = card_number;
|
|
208
|
+
this.card_cvv = card_cvv;
|
|
209
|
+
this.card_expire = card_expire;
|
|
210
|
+
return tweetnacl_util_1.default.encodeBase64(keyPair.publicKey);
|
|
211
|
+
};
|
|
187
212
|
return PaymentTransaction;
|
|
188
213
|
}(RequestBehaviour_1.default));
|
|
189
214
|
exports.default = PaymentTransaction;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PaymentTransaction.js","sourceRoot":"","sources":["../../src/requests/PaymentTransaction.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"PaymentTransaction.js","sourceRoot":"","sources":["../../src/requests/PaymentTransaction.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,iDAAsC;AAKtC,2CAAsC;AACtC,6DAAwD;AAExD;IAAgD,sCAAgB;IAAhE;QAAA,qEA8NC;QA7NA;;WAEG;QACH,kBAAY,GAAW,IAAI,CAAC;QAE5B;;WAEG;QACH,gBAAU,GAAW,IAAI,CAAC;QAE1B;;WAEG;QACH,iBAAW,GAAW,IAAI,CAAC;QAE3B;;WAEG;QACH,cAAQ,GAAW,IAAI,CAAC;QAExB;;WAEG;QACH,iBAAW,GAAW,IAAI,CAAC;QAE3B;;WAEG;QACH,iBAAW,GAAW,IAAI,CAAC;QAE3B;;WAEG;QACH,qBAAe,GAAW,IAAI,CAAC;QAE/B;;WAEG;QACH,qBAAe,GAAW,IAAI,CAAC;QAE/B;;WAEG;QACH,mBAAa,GAAW,IAAI,CAAC;QAE7B;;WAEG;QACH,kBAAY,GAAW,IAAI,CAAC;QAE5B;;WAEG;QACH,iBAAW,GAAW,IAAI,CAAC;QAE3B;;WAEG;QACH,mBAAa,GAAW,IAAI,CAAC;QAE7B;;WAEG;QACH,mBAAa,GAAW,IAAI,CAAC;QAE7B;;WAEG;QACH,oBAAc,GAAW,IAAI,CAAC;QAE9B;;WAEG;QACH,0BAAoB,GAAW,IAAI,CAAC;QAEpC;;WAEG;QACH,cAAQ,GAAW,IAAI,CAAC;QAExB;;WAEG;QACH,oBAAc,GAAW,IAAI,CAAC;QAE9B;;WAEG;QACH,kBAAY,GAAW,IAAI,CAAC;QAE5B;;WAEG;QACH,sBAAgB,GAAW,IAAI,CAAC;QAEhC;;WAEG;QACH,2BAAqB,GAAW,IAAI,CAAC;QAErC;;WAEG;QACH,mBAAa,GAAgB,EAAE,CAAC;QAEhC;;WAEG;QACH,kBAAY,GAAW,EAAE,CAAC;QAE1B;;WAEG;QACH,gBAAU,GAAW,IAAI,CAAC;QAE1B;;WAEG;QACH,oBAAc,GAAW,IAAI,CAAC;QAE9B;;WAEG;QACH,4BAAsB,GAAY,KAAK,CAAC;QAExC;;WAEG;QACH,+BAAyB,GAAW,IAAI,CAAC;;IA6F1C,CAAC;IA3FA;;;;OAIG;IACH,oCAAO,GAAP,UAAQ,IAAU;QACjB,IAAI,CAAC,WAAW,GAAG,iBAAO,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;QAC1B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAC1C,IAAI,CAAC,WAAW,GAAG,iBAAO,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACvD,CAAC;IAED;;;;OAIG;IACH,yCAAY,GAAZ,UAAa,KAAoB;QAApB,sBAAA,EAAA,YAAoB;QAChC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;IACzB,CAAC;IAED;;;;OAIG;IACH,uCAAU,GAAV,UAAW,OAAgB;QAC1B,IAAI,CAAC,eAAe,GAAG,iBAAO,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC1D,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC;QACvC,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC;QACnC,IAAI,CAAC,YAAY,GAAG,iBAAO,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC;QAC/B,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC;IACpC,CAAC;IAED;;;;OAIG;IACH,qCAAQ,GAAR,UAAS,KAAY;QACpB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,EAAE,CAAC;QACzB,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,QAAQ,CAAC;QACrC,IAAI,CAAC,YAAY,GAAG,iBAAO,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACtD,IAAI,CAAC,gBAAgB,GAAG,iBAAO,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC9D,IAAI,CAAC,qBAAqB,GAAG,iBAAO,CAAC,WAAW,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QACxE,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC;QACnC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC;QACjC,IAAI,CAAC,UAAU,GAAG,iBAAO,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,YAAY,CAAC;QAEzC,IAAI,CAAC,aAAa,GAAG,iBAAO,CAAC,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC5D,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,sDAAyB,GAAzB;QACC,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;IACpC,CAAC;IAED;;;;;OAKG;IACH,2CAAc,GAAd,UAAe,SAAwB;QACtC,IAAI,CAAC,SAAS,EAAE;YACf,OAAO,IAAI,CAAC;SACZ;QAED,IAAM,OAAO,GAAG,iBAAO,CAAC,UAAU,EAAE,CAAC;QAErC,IAAM,WAAW,GAAG,iBAAO,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAC1E,IAAM,QAAQ,GAAG,iBAAO,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QACpE,IAAM,WAAW,GAAG,iBAAO,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAE1E,IAAI,IAAI,CAAC,WAAW,KAAK,WAAW;eAChC,IAAI,CAAC,QAAQ,KAAK,QAAQ;eAC1B,IAAI,CAAC,WAAW,KAAK,WAAW,EAAE;YACrC,OAAO,IAAI,CAAC;SACZ;QAED,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAE/B,OAAO,wBAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACjD,CAAC;IACF,yBAAC;AAAD,CAAC,AA9ND,CAAgD,0BAAgB,GA8N/D"}
|
|
@@ -1,3 +1,28 @@
|
|
|
1
1
|
import PaymentTransaction from './PaymentTransaction';
|
|
2
2
|
export default class SaleTransaction extends PaymentTransaction {
|
|
3
|
+
/**
|
|
4
|
+
* Transaction installment type
|
|
5
|
+
*/
|
|
6
|
+
installment_type: string;
|
|
7
|
+
/**
|
|
8
|
+
* Transaction installment value
|
|
9
|
+
*/
|
|
10
|
+
installment_months: string;
|
|
11
|
+
/**
|
|
12
|
+
* Transaction total points redeem amount
|
|
13
|
+
*/
|
|
14
|
+
points_redeem_amount: string;
|
|
15
|
+
/**
|
|
16
|
+
* Set Installment service values to transaction
|
|
17
|
+
*
|
|
18
|
+
* @param months
|
|
19
|
+
* @param type
|
|
20
|
+
*/
|
|
21
|
+
setInstallment(months: number, type: string): void;
|
|
22
|
+
/**
|
|
23
|
+
* Set transaction points redeem amount
|
|
24
|
+
*
|
|
25
|
+
* @param amount
|
|
26
|
+
*/
|
|
27
|
+
withPointsRedeemAmount(amount: number): void;
|
|
3
28
|
}
|
|
@@ -15,12 +15,44 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
15
15
|
};
|
|
16
16
|
})();
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
var Helpers_1 = require("../base/Helpers");
|
|
18
19
|
var PaymentTransaction_1 = require("./PaymentTransaction");
|
|
19
20
|
var SaleTransaction = /** @class */ (function (_super) {
|
|
20
21
|
__extends(SaleTransaction, _super);
|
|
21
22
|
function SaleTransaction() {
|
|
22
|
-
|
|
23
|
+
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
24
|
+
/**
|
|
25
|
+
* Transaction installment type
|
|
26
|
+
*/
|
|
27
|
+
_this.installment_type = null;
|
|
28
|
+
/**
|
|
29
|
+
* Transaction installment value
|
|
30
|
+
*/
|
|
31
|
+
_this.installment_months = null;
|
|
32
|
+
/**
|
|
33
|
+
* Transaction total points redeem amount
|
|
34
|
+
*/
|
|
35
|
+
_this.points_redeem_amount = null;
|
|
36
|
+
return _this;
|
|
23
37
|
}
|
|
38
|
+
/**
|
|
39
|
+
* Set Installment service values to transaction
|
|
40
|
+
*
|
|
41
|
+
* @param months
|
|
42
|
+
* @param type
|
|
43
|
+
*/
|
|
44
|
+
SaleTransaction.prototype.setInstallment = function (months, type) {
|
|
45
|
+
this.installment_months = String(months);
|
|
46
|
+
this.installment_type = type;
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Set transaction points redeem amount
|
|
50
|
+
*
|
|
51
|
+
* @param amount
|
|
52
|
+
*/
|
|
53
|
+
SaleTransaction.prototype.withPointsRedeemAmount = function (amount) {
|
|
54
|
+
this.points_redeem_amount = Helpers_1.default.parseAmount(amount);
|
|
55
|
+
};
|
|
24
56
|
return SaleTransaction;
|
|
25
57
|
}(PaymentTransaction_1.default));
|
|
26
58
|
exports.default = SaleTransaction;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SaleTransaction.js","sourceRoot":"","sources":["../../src/requests/SaleTransaction.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,2DAAsD;AAEtD;IAA6C,mCAAkB;IAA/D;;
|
|
1
|
+
{"version":3,"file":"SaleTransaction.js","sourceRoot":"","sources":["../../src/requests/SaleTransaction.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,2CAAsC;AACtC,2DAAsD;AAEtD;IAA6C,mCAAkB;IAA/D;QAAA,qEAmCC;QAlCA;;WAEG;QACH,sBAAgB,GAAW,IAAI,CAAC;QAEhC;;WAEG;QACH,wBAAkB,GAAW,IAAI,CAAC;QAElC;;WAEG;QACH,0BAAoB,GAAW,IAAI,CAAC;;IAqBrC,CAAC;IAnBA;;;;;OAKG;IACH,wCAAc,GAAd,UAAe,MAAc,EAAE,IAAY;QAC1C,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAC9B,CAAC;IAED;;;;OAIG;IACH,gDAAsB,GAAtB,UAAuB,MAAc;QACpC,IAAI,CAAC,oBAAoB,GAAG,iBAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACzD,CAAC;IACF,sBAAC;AAAD,CAAC,AAnCD,CAA6C,4BAAkB,GAmC9D"}
|
|
@@ -28,6 +28,10 @@ var VoidTransaction = /** @class */ (function (_super) {
|
|
|
28
28
|
* Reason for void the order
|
|
29
29
|
*/
|
|
30
30
|
_this.void_reason = null;
|
|
31
|
+
/**
|
|
32
|
+
* Required signature for void authentication
|
|
33
|
+
*/
|
|
34
|
+
_this.void_signature = null;
|
|
31
35
|
return _this;
|
|
32
36
|
}
|
|
33
37
|
return VoidTransaction;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VoidTransaction.js","sourceRoot":"","sources":["../../src/requests/VoidTransaction.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,6DAAwD;AAExD;IAA6C,mCAAgB;IAA7D;QAAA,
|
|
1
|
+
{"version":3,"file":"VoidTransaction.js","sourceRoot":"","sources":["../../src/requests/VoidTransaction.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,6DAAwD;AAExD;IAA6C,mCAAgB;IAA7D;QAAA,qEAeC;QAdA;;WAEG;QACH,kBAAY,GAAW,IAAI,CAAC;QAE5B;;WAEG;QACH,iBAAW,GAAW,IAAI,CAAC;QAE3B;;WAEG;QACH,oBAAc,GAAW,IAAI,CAAC;;IAC/B,CAAC;IAAD,sBAAC;AAAD,CAAC,AAfD,CAA6C,0BAAgB,GAe5D"}
|
|
@@ -12,5 +12,12 @@ declare const _default: {
|
|
|
12
12
|
* @return
|
|
13
13
|
*/
|
|
14
14
|
statesList: (country_code: string) => any;
|
|
15
|
+
/**
|
|
16
|
+
* Get phone and zip formats list by country ISO code
|
|
17
|
+
*
|
|
18
|
+
* @param country_code
|
|
19
|
+
* @return
|
|
20
|
+
*/
|
|
21
|
+
formatsList: (country_code: string) => any;
|
|
15
22
|
};
|
|
16
23
|
export default _default;
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
var countriesRepository = require("../assets/countries.json");
|
|
4
4
|
var statesRepository = require("../assets/states.json");
|
|
5
|
+
var formatsRepository = require("../assets/formats.json");
|
|
5
6
|
exports.default = {
|
|
6
7
|
/**
|
|
7
8
|
* Return a list of countries
|
|
@@ -23,5 +24,17 @@ exports.default = {
|
|
|
23
24
|
}
|
|
24
25
|
return statesRepository[country_code] || {};
|
|
25
26
|
},
|
|
27
|
+
/**
|
|
28
|
+
* Get phone and zip formats list by country ISO code
|
|
29
|
+
*
|
|
30
|
+
* @param country_code
|
|
31
|
+
* @return
|
|
32
|
+
*/
|
|
33
|
+
formatsList: function (country_code) {
|
|
34
|
+
if (!Object.prototype.hasOwnProperty.call(formatsRepository || {}, country_code)) {
|
|
35
|
+
return {};
|
|
36
|
+
}
|
|
37
|
+
return formatsRepository[country_code] || {};
|
|
38
|
+
},
|
|
26
39
|
};
|
|
27
40
|
//# sourceMappingURL=Locations.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Locations.js","sourceRoot":"","sources":["../../src/resources/Locations.ts"],"names":[],"mappings":";;AAAA,8DAAgE;AAChE,wDAA0D;
|
|
1
|
+
{"version":3,"file":"Locations.js","sourceRoot":"","sources":["../../src/resources/Locations.ts"],"names":[],"mappings":";;AAAA,8DAAgE;AAChE,wDAA0D;AAC1D,0DAA4D;AAE5D,kBAAe;IACd;;;;OAIG;IACH,aAAa,EAAE;QACd,OAAO,mBAAmB,IAAI,EAAE,CAAC;IAClC,CAAC;IAED;;;;;OAKG;IACH,UAAU,EAAE,UAAC,YAAoB;QAChC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,IAAI,EAAE,EAAE,YAAY,CAAC,EAAE;YAChF,OAAO,EAAE,CAAC;SACV;QAED,OAAO,gBAAgB,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IAC7C,CAAC;IAED;;;;;OAKG;IACH,WAAW,EAAE,UAAC,YAAoB;QACjC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,iBAAiB,IAAI,EAAE,EAAE,YAAY,CAAC,EAAE;YACjF,OAAO,EAAE,CAAC;SACV;QAED,OAAO,iBAAiB,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IAC9C,CAAC;CACD,CAAA"}
|
|
@@ -29,7 +29,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
29
29
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
30
30
|
function step(op) {
|
|
31
31
|
if (f) throw new TypeError("Generator is already executing.");
|
|
32
|
-
while (_) try {
|
|
32
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
33
33
|
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;
|
|
34
34
|
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
35
35
|
switch (op[0]) {
|
|
@@ -29,7 +29,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
29
29
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
30
30
|
function step(op) {
|
|
31
31
|
if (f) throw new TypeError("Generator is already executing.");
|
|
32
|
-
while (_) try {
|
|
32
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
33
33
|
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;
|
|
34
34
|
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
35
35
|
switch (op[0]) {
|
package/lib/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const _default: "2.0.
|
|
1
|
+
declare const _default: "2.1.0-beta.0";
|
|
2
2
|
export default _default;
|
package/lib/version.js
CHANGED
package/lib/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":";;AAAA,kBAAe,
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":";;AAAA,kBAAe,cAAc,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pixelpay/sdk-core",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.1.0-beta.0",
|
|
4
4
|
"description": "PixelPay SDK toolkit",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"browser": "lib/browser/index.js",
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
"@babel/preset-env": "^7.19.4",
|
|
11
11
|
"@babel/preset-typescript": "^7.18.6",
|
|
12
12
|
"@types/jest": "^27.5.2",
|
|
13
|
+
"@types/node": "^18.11.18",
|
|
13
14
|
"babel-jest": "^27.5.1",
|
|
14
15
|
"browser-sync": "^2.27.10",
|
|
15
16
|
"browserify": "^17.0.0",
|
|
@@ -29,6 +30,8 @@
|
|
|
29
30
|
"license": "MTI",
|
|
30
31
|
"dependencies": {
|
|
31
32
|
"axios": "^0.21.4",
|
|
32
|
-
"crypto-js": "^4.1.1"
|
|
33
|
+
"crypto-js": "^4.1.1",
|
|
34
|
+
"tweetnacl": "^1.0.3",
|
|
35
|
+
"tweetnacl-util": "^0.15.1"
|
|
33
36
|
}
|
|
34
37
|
}
|
package/tests/Locations.test.ts
CHANGED
|
@@ -5,5 +5,10 @@ test('Location countires', () => {
|
|
|
5
5
|
});
|
|
6
6
|
|
|
7
7
|
test('Location states', () => {
|
|
8
|
-
expect(Locations.statesList("HN")["HN-CR"]).toBe("Cortes")
|
|
9
|
-
});
|
|
8
|
+
expect(Locations.statesList("HN")["HN-CR"]).toBe("Cortes")
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
test('Location formats', () => {
|
|
12
|
+
expect(Locations.formatsList("HN")["phone_code"]).toBe(504)
|
|
13
|
+
expect(Locations.formatsList("HN")["zip_format"]).toBe("")
|
|
14
|
+
});
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import SaleTransaction from "../src/requests/SaleTransaction";
|
|
2
|
+
import VoidTransaction from "../src/requests/VoidTransaction";
|
|
2
3
|
import Settings from "../src/models/Settings"
|
|
3
4
|
import Transaction from "../src/services/Transaction";
|
|
4
|
-
import FailureResponse from "../src/responses/FailureResponse";
|
|
5
|
+
import FailureResponse from "../src/responses/FailureResponse";
|
|
5
6
|
import Card from "../src/models/Card";
|
|
6
7
|
import Billing from "../src/models/Billing";
|
|
7
8
|
import Order from "../src/models/Order";
|
|
@@ -12,6 +13,7 @@ import ErrorResponse from "../src/responses/ErrorResponse";
|
|
|
12
13
|
import NotFoundResponse from "../src/responses/NotFoundResponse";
|
|
13
14
|
import PreconditionalResponse from "../src/responses/PreconditionalResponse";
|
|
14
15
|
import TimeoutResponse from "../src/responses/TimeoutResponse";
|
|
16
|
+
import Helpers from "../src/base/Helpers";
|
|
15
17
|
|
|
16
18
|
const TIMEOUT = 30000;
|
|
17
19
|
|
|
@@ -69,7 +71,7 @@ it('Test invalid credentials', () => {
|
|
|
69
71
|
expect.assertions(1);
|
|
70
72
|
let settings = new Settings();
|
|
71
73
|
let service = new Transaction(settings)
|
|
72
|
-
|
|
74
|
+
|
|
73
75
|
let sale = new SaleTransaction();
|
|
74
76
|
return service.doSale(sale).then( response => {
|
|
75
77
|
expect(response).toBeInstanceOf(FailureResponse);
|
|
@@ -77,7 +79,7 @@ it('Test invalid credentials', () => {
|
|
|
77
79
|
expect(FailureResponse).toBeInstanceOf(error);
|
|
78
80
|
expect('The merchant credentials are not definied (key/hash).').toBe(error.message)
|
|
79
81
|
});
|
|
80
|
-
}, TIMEOUT)
|
|
82
|
+
}, TIMEOUT)
|
|
81
83
|
|
|
82
84
|
it('Transaction sale by invalid card fields', () => {
|
|
83
85
|
expect.assertions(7);
|
|
@@ -88,7 +90,7 @@ it('Transaction sale by invalid card fields', () => {
|
|
|
88
90
|
let sale = new SaleTransaction();
|
|
89
91
|
sale.setBilling(getBilling());
|
|
90
92
|
sale.setOrder(getOrder());
|
|
91
|
-
|
|
93
|
+
|
|
92
94
|
return service.doSale(sale).then( response => {
|
|
93
95
|
expect(response).toBeInstanceOf(InputErrorResponse);
|
|
94
96
|
expect(false).toBe(response.success);
|
|
@@ -109,7 +111,7 @@ it('Transaction sale by invalid billing fields', () => {
|
|
|
109
111
|
let sale = new SaleTransaction();
|
|
110
112
|
sale.setCard(getCard());
|
|
111
113
|
sale.setOrder(getOrder());
|
|
112
|
-
|
|
114
|
+
|
|
113
115
|
return service.doSale(sale).then( response => {
|
|
114
116
|
expect(response).toBeInstanceOf(InputErrorResponse);
|
|
115
117
|
expect(false).toBe(response.success);
|
|
@@ -120,7 +122,7 @@ it('Transaction sale by invalid billing fields', () => {
|
|
|
120
122
|
expect(true).toBe(response.inputHasError('billing_phone'))
|
|
121
123
|
expect(true).toBe(response.inputHasError('billing_state'))
|
|
122
124
|
})
|
|
123
|
-
}, TIMEOUT)
|
|
125
|
+
}, TIMEOUT)
|
|
124
126
|
|
|
125
127
|
it('Transaction sale by invalid order fields', () => {
|
|
126
128
|
expect.assertions(8);
|
|
@@ -131,7 +133,7 @@ it('Transaction sale by invalid order fields', () => {
|
|
|
131
133
|
let sale = new SaleTransaction();
|
|
132
134
|
sale.setCard(getCard());
|
|
133
135
|
sale.setBilling(getBilling());
|
|
134
|
-
|
|
136
|
+
|
|
135
137
|
return service.doSale(sale).then( response => {
|
|
136
138
|
expect(response).toBeInstanceOf(InputErrorResponse);
|
|
137
139
|
expect(false).toBe(response.success);
|
|
@@ -142,7 +144,7 @@ it('Transaction sale by invalid order fields', () => {
|
|
|
142
144
|
expect(true).toBe(response.inputHasError('order_currency'));
|
|
143
145
|
expect(true).toBe(response.inputHasError('order_id'));
|
|
144
146
|
})
|
|
145
|
-
}, TIMEOUT)
|
|
147
|
+
}, TIMEOUT)
|
|
146
148
|
|
|
147
149
|
it('Test successful transaction', () => {
|
|
148
150
|
expect.assertions(1);
|
|
@@ -312,31 +314,19 @@ it('Transaction fail due not accepted payments for a country or region', () => {
|
|
|
312
314
|
})
|
|
313
315
|
}, TIMEOUT)
|
|
314
316
|
|
|
315
|
-
it('Transaction
|
|
316
|
-
|
|
317
|
-
let service: Transaction = getSaleService();
|
|
318
|
-
let sale: SaleTransaction = getSaleRequest(14);
|
|
317
|
+
it('Transaction with Installment', () => {
|
|
318
|
+
let sale: SaleTransaction = new SaleTransaction();
|
|
319
319
|
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
320
|
+
sale.setInstallment(12, 'extra');
|
|
321
|
+
|
|
322
|
+
expect(sale.installment_months).toBe('12');
|
|
323
|
+
expect(sale.installment_type).toBe('extra');
|
|
324
|
+
})
|
|
325
|
+
|
|
326
|
+
it('Void Transaction with signature', () => {
|
|
327
|
+
let voidTx: VoidTransaction = new VoidTransaction();
|
|
328
|
+
|
|
329
|
+
voidTx.void_signature = "d206a1e51ffd42f0a8c4146d4a06846f560df211e28ec011e92b8dd4648d454f64be3ca50f753fb624f8c4c3585b3ebb6b3a954869818728f23a78b474a5b1fc";
|
|
326
330
|
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
// let service: Transaction = getSaleService();
|
|
330
|
-
// let sale: SaleTransaction = new SaleTransaction();
|
|
331
|
-
// sale.setBilling(getBilling());
|
|
332
|
-
// sale.setOrder(getOrder());
|
|
333
|
-
// sale.setCard(getCard('4000 0000 0000 1000'));
|
|
334
|
-
|
|
335
|
-
// return service.doSale(sale).then( response => {
|
|
336
|
-
// expect(response).toBeInstanceOf(PreconditionalResponse);
|
|
337
|
-
// expect(response.message).toBe("El comercio no permite transacciones de este país o región.");
|
|
338
|
-
// expect(412).toBe(response.status);
|
|
339
|
-
// }).catch(error => {
|
|
340
|
-
// error
|
|
341
|
-
// })
|
|
342
|
-
// }, TIMEOUT)
|
|
331
|
+
expect(voidTx.void_signature).toBe(Helpers.hash('SHA-512', "sonia@pixel.hn|20230530|@s4ndb0x-abcd-1234-n1l4-p1x3l"));
|
|
332
|
+
})
|