@pixelpay/sdk-core 2.0.5 → 2.0.6
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 +6 -0
- package/CONTRIBUTING.md +8 -0
- package/README.md +0 -7
- package/lib/assets/formats.json +982 -0
- package/lib/base/Helpers.d.ts +3 -3
- package/lib/base/Helpers.js +4 -4
- package/lib/base/Helpers.js.map +1 -1
- package/lib/browser/index.js +3 -3
- package/lib/index.d.ts +1 -0
- 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/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/package.json +2 -1
- package/tests/Locations.test.ts +7 -2
- package/tests/Transaction.test.ts +24 -34
package/lib/index.d.ts
CHANGED
|
@@ -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"}
|
package/lib/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const _default: "2.0.
|
|
1
|
+
declare const _default: "2.0.6";
|
|
2
2
|
export default _default;
|
package/lib/version.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pixelpay/sdk-core",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.6",
|
|
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",
|
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
|
+
})
|