globalpayments-api 3.3.3 → 3.4.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/.eslintignore +8 -8
- package/.eslintrc.cjs +39 -39
- package/.prettierrc +14 -15
- package/CHANGELOG.md +82 -75
- package/lib/src/Builders/AuthorizationBuilder.d.ts +16 -1
- package/lib/src/Builders/AuthorizationBuilder.js +28 -0
- package/lib/src/Builders/AuthorizationBuilder.js.map +1 -1
- package/lib/src/Builders/ManagementBuilder.d.ts +16 -2
- package/lib/src/Builders/ManagementBuilder.js +23 -2
- package/lib/src/Builders/ManagementBuilder.js.map +1 -1
- package/lib/src/Builders/ReportBuilder.d.ts +3 -1
- package/lib/src/Builders/ReportBuilder.js +6 -0
- package/lib/src/Builders/ReportBuilder.js.map +1 -1
- package/lib/src/Builders/RequestBuilder/GpApi/AccessTokenRequest.d.ts +2 -2
- package/lib/src/Builders/RequestBuilder/GpApi/AccessTokenRequest.js +3 -3
- package/lib/src/Builders/RequestBuilder/GpApi/AccessTokenRequest.js.map +1 -1
- package/lib/src/Builders/RequestBuilder/GpApi/GpApiAuthorizationRequestBuilder.d.ts +19 -2
- package/lib/src/Builders/RequestBuilder/GpApi/GpApiAuthorizationRequestBuilder.js +376 -3
- package/lib/src/Builders/RequestBuilder/GpApi/GpApiAuthorizationRequestBuilder.js.map +1 -1
- package/lib/src/Builders/RequestBuilder/GpApi/GpApiManagementRequestBuilder.d.ts +7 -0
- package/lib/src/Builders/RequestBuilder/GpApi/GpApiManagementRequestBuilder.js +71 -0
- package/lib/src/Builders/RequestBuilder/GpApi/GpApiManagementRequestBuilder.js.map +1 -0
- package/lib/src/Builders/RequestBuilder/GpApi/GpApiReportRequestBuilder.d.ts +10 -0
- package/lib/src/Builders/RequestBuilder/GpApi/GpApiReportRequestBuilder.js +89 -0
- package/lib/src/Builders/RequestBuilder/GpApi/GpApiReportRequestBuilder.js.map +1 -0
- package/lib/src/Builders/RequestBuilder/GpApi/GpApiSessionInfo.d.ts +1 -1
- package/lib/src/Builders/RequestBuilder/GpApi/GpApiSessionInfo.js +1 -1
- package/lib/src/Builders/RequestBuilder/GpApi/GpApiSessionInfo.js.map +1 -1
- package/lib/src/Builders/RequestBuilder/RequestBuilderFactory.d.ts +3 -2
- package/lib/src/Builders/RequestBuilder/RequestBuilderFactory.js +4 -0
- package/lib/src/Builders/RequestBuilder/RequestBuilderFactory.js.map +1 -1
- package/lib/src/Builders/TransactionReportBuilder.d.ts +5 -1
- package/lib/src/Builders/TransactionReportBuilder.js +22 -0
- package/lib/src/Builders/TransactionReportBuilder.js.map +1 -1
- package/lib/src/Entities/Address.d.ts +1 -0
- package/lib/src/Entities/Address.js +1 -0
- package/lib/src/Entities/Address.js.map +1 -1
- package/lib/src/Entities/Card.d.ts +36 -0
- package/lib/src/Entities/Card.js +41 -0
- package/lib/src/Entities/Card.js.map +1 -0
- package/lib/src/Entities/CardIssuerResponse.d.ts +22 -0
- package/lib/src/Entities/CardIssuerResponse.js +27 -0
- package/lib/src/Entities/CardIssuerResponse.js.map +1 -0
- package/lib/src/Entities/Customer.d.ts +5 -0
- package/lib/src/Entities/Customer.js +5 -0
- package/lib/src/Entities/Customer.js.map +1 -1
- package/lib/src/Entities/Enums.d.ts +131 -4
- package/lib/src/Entities/Enums.js +135 -2
- package/lib/src/Entities/Enums.js.map +1 -1
- package/lib/src/Entities/FraudRule.d.ts +8 -0
- package/lib/src/Entities/FraudRule.js +17 -0
- package/lib/src/Entities/FraudRule.js.map +1 -0
- package/lib/src/Entities/GpApi/DTO/Card.d.ts +16 -0
- package/lib/src/Entities/GpApi/DTO/Card.js +21 -0
- package/lib/src/Entities/GpApi/DTO/Card.js.map +1 -0
- package/lib/src/Entities/GpApi/DTO/PaymentMethod.d.ts +17 -0
- package/lib/src/Entities/GpApi/DTO/PaymentMethod.js +21 -0
- package/lib/src/Entities/GpApi/DTO/PaymentMethod.js.map +1 -0
- package/lib/src/Entities/GpApi/DTO/index.d.ts +2 -0
- package/lib/src/Entities/GpApi/DTO/index.js +19 -0
- package/lib/src/Entities/GpApi/DTO/index.js.map +1 -0
- package/lib/src/Entities/GpApi/PageResult.d.ts +8 -0
- package/lib/src/Entities/GpApi/PageResult.js +13 -0
- package/lib/src/Entities/GpApi/PageResult.js.map +1 -0
- package/lib/src/Entities/GpApi/index.d.ts +1 -0
- package/lib/src/Entities/GpApi/index.js +1 -0
- package/lib/src/Entities/GpApi/index.js.map +1 -1
- package/lib/src/Entities/IRequestBuilder.d.ts +3 -3
- package/lib/src/Entities/MaskedValueCollection.d.ts +3 -3
- package/lib/src/Entities/MaskedValueCollection.js +1 -1
- package/lib/src/Entities/MaskedValueCollection.js.map +1 -1
- package/lib/src/Entities/PayerDetails.d.ts +8 -0
- package/lib/src/Entities/PayerDetails.js +12 -0
- package/lib/src/Entities/PayerDetails.js.map +1 -0
- package/lib/src/Entities/PhoneNumber.d.ts +6 -0
- package/lib/src/Entities/PhoneNumber.js +15 -0
- package/lib/src/Entities/PhoneNumber.js.map +1 -0
- package/lib/src/Entities/Reporting/SearchCriteriaBuilder.d.ts +105 -0
- package/lib/src/Entities/Reporting/SearchCriteriaBuilder.js +122 -0
- package/lib/src/Entities/Reporting/SearchCriteriaBuilder.js.map +1 -0
- package/lib/src/Entities/Reporting/StoredPaymentMethodSummary.d.ts +11 -0
- package/lib/src/Entities/Reporting/StoredPaymentMethodSummary.js +16 -0
- package/lib/src/Entities/Reporting/StoredPaymentMethodSummary.js.map +1 -0
- package/lib/src/Entities/Reporting/index.d.ts +2 -0
- package/lib/src/Entities/Reporting/index.js +19 -0
- package/lib/src/Entities/Reporting/index.js.map +1 -0
- package/lib/src/Entities/Transaction.d.ts +7 -1
- package/lib/src/Entities/Transaction.js +7 -1
- package/lib/src/Entities/Transaction.js.map +1 -1
- package/lib/src/Entities/TransactionStatus.d.ts +13 -0
- package/lib/src/Entities/TransactionStatus.js +29 -0
- package/lib/src/Entities/TransactionStatus.js.map +1 -0
- package/lib/src/Entities/index.d.ts +7 -0
- package/lib/src/Entities/index.js +7 -0
- package/lib/src/Entities/index.js.map +1 -1
- package/lib/src/Gateways/Gateway.js +2 -5
- package/lib/src/Gateways/Gateway.js.map +1 -1
- package/lib/src/Gateways/GpApiConnector.js +11 -6
- package/lib/src/Gateways/GpApiConnector.js.map +1 -1
- package/lib/src/Gateways/PayPlanConnector.d.ts +1 -1
- package/lib/src/Gateways/RestGateway.d.ts +1 -1
- package/lib/src/Gateways/RestGateway.js +21 -3
- package/lib/src/Gateways/RestGateway.js.map +1 -1
- package/lib/src/Gateways/XmlGateway.js +6 -1
- package/lib/src/Gateways/XmlGateway.js.map +1 -1
- package/lib/src/Mapping/EnumMapping.d.ts +8 -0
- package/lib/src/Mapping/EnumMapping.js +84 -0
- package/lib/src/Mapping/EnumMapping.js.map +1 -0
- package/lib/src/Mapping/GpApiMapping.d.ts +8 -2
- package/lib/src/Mapping/GpApiMapping.js +178 -2
- package/lib/src/Mapping/GpApiMapping.js.map +1 -1
- package/lib/src/Mapping/index.d.ts +1 -0
- package/lib/src/Mapping/index.js +1 -0
- package/lib/src/Mapping/index.js.map +1 -1
- package/lib/src/PaymentMethods/AlternativePaymentMethod.d.ts +22 -0
- package/lib/src/PaymentMethods/AlternativePaymentMethod.js +47 -0
- package/lib/src/PaymentMethods/AlternativePaymentMethod.js.map +1 -0
- package/lib/src/PaymentMethods/Credit.d.ts +26 -2
- package/lib/src/PaymentMethods/Credit.js +58 -2
- package/lib/src/PaymentMethods/Credit.js.map +1 -1
- package/lib/src/PaymentMethods/Interfaces.d.ts +5 -1
- package/lib/src/PaymentMethods/PaymentMethod.d.ts +1 -1
- package/lib/src/PaymentMethods/PaymentMethod.js.map +1 -1
- package/lib/src/PaymentMethods/index.d.ts +2 -0
- package/lib/src/PaymentMethods/index.js +2 -0
- package/lib/src/PaymentMethods/index.js.map +1 -1
- package/lib/src/ServiceConfigs/Gateways/GpApiConfig.d.ts +2 -2
- package/lib/src/ServiceConfigs/Gateways/GpApiConfig.js +1 -1
- package/lib/src/ServiceConfigs/Gateways/GpApiConfig.js.map +1 -1
- package/lib/src/Services/ReportingService.d.ts +2 -0
- package/lib/src/Services/ReportingService.js +6 -0
- package/lib/src/Services/ReportingService.js.map +1 -1
- package/lib/src/Utils/Logging/ProtectSensitiveData.d.ts +1 -1
- package/lib/src/Utils/Logging/ProtectSensitiveData.js.map +1 -1
- package/lib/src/Utils/StringUtils.d.ts +9 -0
- package/lib/src/Utils/StringUtils.js +29 -0
- package/lib/src/Utils/StringUtils.js.map +1 -1
- package/lib/test/Data/BaseGpApiTestConfig.d.ts +2 -2
- package/lib/test/Data/BaseGpApiTestConfig.js +4 -0
- package/lib/test/Data/BaseGpApiTestConfig.js.map +1 -1
- package/lib/test/Integration/Gateways/GpApiConnector/AccessTokenTest.js +17 -10
- package/lib/test/Integration/Gateways/GpApiConnector/AccessTokenTest.js.map +1 -1
- package/lib/test/Integration/Gateways/GpApiConnector/CreditCardNotPresentTest.d.ts +1 -0
- package/lib/test/Integration/Gateways/GpApiConnector/CreditCardNotPresentTest.js +360 -0
- package/lib/test/Integration/Gateways/GpApiConnector/CreditCardNotPresentTest.js.map +1 -0
- package/lib/test/Integration/Gateways/GpApiConnector/ReportingStoredPaymentMethodsTest.d.ts +1 -0
- package/lib/test/Integration/Gateways/GpApiConnector/ReportingStoredPaymentMethodsTest.js +217 -0
- package/lib/test/Integration/Gateways/GpApiConnector/ReportingStoredPaymentMethodsTest.js.map +1 -0
- package/lib/test/Integration/Gateways/GpEcomConnector/CreditTest.js +4 -4
- package/lib/test/Integration/Gateways/PorticoConnector/EcommerceTest.js +8 -8
- package/package.json +66 -66
- package/tsconfig.eslint.json +15 -15
- package/appsec.properties +0 -7
- package/logger.txt +0 -15
|
@@ -0,0 +1,360 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const ava_1 = __importDefault(require("ava"));
|
|
7
|
+
const src_1 = require("../../../../src");
|
|
8
|
+
const BaseGpApiTestConfig_1 = require("../../../../test/Data/BaseGpApiTestConfig");
|
|
9
|
+
const DTO_1 = require("../../../../src/Entities/GpApi/DTO");
|
|
10
|
+
const date = new Date();
|
|
11
|
+
const idempotencyKey = src_1.GenerationUtils.getGuuid();
|
|
12
|
+
const currency = "GBP";
|
|
13
|
+
const card = new src_1.CreditCardData();
|
|
14
|
+
card.number = "4263970000005262";
|
|
15
|
+
card.expMonth = (date.getMonth() + 1).toString().padStart(2, "0");
|
|
16
|
+
card.expYear = (date.getFullYear() + 1).toString();
|
|
17
|
+
card.cvn = "131";
|
|
18
|
+
card.cardHolderName = "James Mason";
|
|
19
|
+
ava_1.default.before(() => {
|
|
20
|
+
src_1.ServicesContainer.configureService(BaseGpApiTestConfig_1.BaseGpApiTestConfig.gpApiSetupConfig(src_1.Channel.CardNotPresent));
|
|
21
|
+
});
|
|
22
|
+
(0, ava_1.default)("card tokenization", async (t) => {
|
|
23
|
+
const response = await card.tokenize().execute();
|
|
24
|
+
t.truthy(response);
|
|
25
|
+
t.is("SUCCESS", response.responseCode);
|
|
26
|
+
t.is("ACTIVE", response.responseMessage);
|
|
27
|
+
});
|
|
28
|
+
(0, ava_1.default)("card tokenization then paying with token - Single to Multi-Use", async (t) => {
|
|
29
|
+
const config = BaseGpApiTestConfig_1.BaseGpApiTestConfig.gpApiSetupConfig(src_1.Channel.CardNotPresent);
|
|
30
|
+
config.permissions = ["PMT_POST_Create_Single"];
|
|
31
|
+
src_1.ServicesContainer.configureService(config, "singleUseToken");
|
|
32
|
+
const response = await card
|
|
33
|
+
.tokenize(true, src_1.PaymentMethodUsageMode.SINGLE)
|
|
34
|
+
.execute("singleUseToken");
|
|
35
|
+
const tokenId = response.token;
|
|
36
|
+
const tokenizedCard = new src_1.CreditCardData();
|
|
37
|
+
tokenizedCard.token = tokenId;
|
|
38
|
+
tokenizedCard.cardHolderName = "James Mason";
|
|
39
|
+
const chargeResponse = await tokenizedCard
|
|
40
|
+
.charge(10)
|
|
41
|
+
.withCurrency("USD")
|
|
42
|
+
.withRequestMultiUseToken(true)
|
|
43
|
+
.execute();
|
|
44
|
+
t.truthy(chargeResponse);
|
|
45
|
+
t.is(chargeResponse.responseCode, "SUCCESS");
|
|
46
|
+
t.is(chargeResponse.responseMessage, src_1.TransactionStatus.CAPTURED);
|
|
47
|
+
t.truthy(chargeResponse.token.startsWith(DTO_1.PaymentMethod.PAYMENT_METHOD_TOKEN_PREFIX));
|
|
48
|
+
tokenizedCard.token = chargeResponse.token;
|
|
49
|
+
const secondChargeResponse = await tokenizedCard
|
|
50
|
+
.charge(10)
|
|
51
|
+
.withCurrency("USD")
|
|
52
|
+
.execute();
|
|
53
|
+
t.truthy(secondChargeResponse);
|
|
54
|
+
t.is(secondChargeResponse.responseCode, "SUCCESS");
|
|
55
|
+
t.is(secondChargeResponse.responseMessage, src_1.TransactionStatus.CAPTURED);
|
|
56
|
+
});
|
|
57
|
+
(0, ava_1.default)("card tokenization with idempotency key", async (t) => {
|
|
58
|
+
const response = await card
|
|
59
|
+
.tokenize()
|
|
60
|
+
.withIdempotencyKey(idempotencyKey)
|
|
61
|
+
.execute();
|
|
62
|
+
t.truthy(response);
|
|
63
|
+
t.is(response.responseCode, "SUCCESS");
|
|
64
|
+
t.is(response.responseMessage, "ACTIVE");
|
|
65
|
+
let exceptionCaught = false;
|
|
66
|
+
try {
|
|
67
|
+
await card.tokenize().withIdempotencyKey(idempotencyKey).execute();
|
|
68
|
+
}
|
|
69
|
+
catch (e) {
|
|
70
|
+
exceptionCaught = true;
|
|
71
|
+
t.is(e.responseCode, "40039");
|
|
72
|
+
t.true(e.message.includes("Idempotency Key seen before"));
|
|
73
|
+
}
|
|
74
|
+
finally {
|
|
75
|
+
t.true(exceptionCaught);
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
(0, ava_1.default)("card tokenization then paying with token", async (t) => {
|
|
79
|
+
const response = await card.tokenize().execute();
|
|
80
|
+
const tokenId = response.token;
|
|
81
|
+
const tokenizedCard = new src_1.CreditCardData();
|
|
82
|
+
tokenizedCard.token = tokenId;
|
|
83
|
+
tokenizedCard.cardHolderName = "James Mason";
|
|
84
|
+
const chargeResponse = await tokenizedCard
|
|
85
|
+
.charge(69)
|
|
86
|
+
.withCurrency("EUR")
|
|
87
|
+
.withOrderId("124214-214221")
|
|
88
|
+
.execute();
|
|
89
|
+
t.truthy(chargeResponse);
|
|
90
|
+
t.is(chargeResponse.responseCode, "SUCCESS");
|
|
91
|
+
t.is(chargeResponse.responseMessage, src_1.TransactionStatus.CAPTURED);
|
|
92
|
+
});
|
|
93
|
+
(0, ava_1.default)("verify tokenized payment method", async (t) => {
|
|
94
|
+
const tokenizeResponse = await card.tokenize().execute();
|
|
95
|
+
t.truthy(tokenizeResponse);
|
|
96
|
+
t.is(tokenizeResponse.responseCode, "SUCCESS");
|
|
97
|
+
t.is(tokenizeResponse.responseMessage, "ACTIVE");
|
|
98
|
+
const tokenizedCard = new src_1.CreditCardData();
|
|
99
|
+
tokenizedCard.token = tokenizeResponse.token;
|
|
100
|
+
const response = await tokenizedCard
|
|
101
|
+
.verify()
|
|
102
|
+
.withCurrency(currency)
|
|
103
|
+
.execute();
|
|
104
|
+
t.truthy(response);
|
|
105
|
+
t.is(response.responseCode, "SUCCESS");
|
|
106
|
+
t.is(response.responseMessage, "VERIFIED");
|
|
107
|
+
});
|
|
108
|
+
(0, ava_1.default)("verify tokenized payment method with idempotency key", async (t) => {
|
|
109
|
+
const tokenizeResponse = await card.tokenize().execute();
|
|
110
|
+
t.truthy(tokenizeResponse);
|
|
111
|
+
t.is(tokenizeResponse.responseCode, "SUCCESS");
|
|
112
|
+
t.is(tokenizeResponse.responseMessage, "ACTIVE");
|
|
113
|
+
const tokenizedCard = new src_1.CreditCardData();
|
|
114
|
+
tokenizedCard.token = tokenizeResponse.token;
|
|
115
|
+
const response = await tokenizedCard
|
|
116
|
+
.verify()
|
|
117
|
+
.withCurrency(currency)
|
|
118
|
+
.withIdempotencyKey(idempotencyKey)
|
|
119
|
+
.execute();
|
|
120
|
+
t.truthy(response);
|
|
121
|
+
t.is(response.responseCode, "SUCCESS");
|
|
122
|
+
t.is(response.responseMessage, "VERIFIED");
|
|
123
|
+
const error = await t.throwsAsync(async () => {
|
|
124
|
+
await tokenizedCard.verify().withIdempotencyKey(idempotencyKey).execute();
|
|
125
|
+
}, {
|
|
126
|
+
instanceOf: src_1.GatewayError,
|
|
127
|
+
});
|
|
128
|
+
t.truthy(error);
|
|
129
|
+
t.is(error?.responseCode, "40039");
|
|
130
|
+
t.is(error?.message.includes(`Idempotency Key seen before`), true);
|
|
131
|
+
});
|
|
132
|
+
(0, ava_1.default)("verify tokenized payment method with wrong ID", async (t) => {
|
|
133
|
+
const tokenizedCard = new src_1.CreditCardData();
|
|
134
|
+
tokenizedCard.token = `PMT_${src_1.GenerationUtils.getGuuid()}`;
|
|
135
|
+
const error = await t.throwsAsync(async () => {
|
|
136
|
+
await tokenizedCard.verify().withCurrency(currency).execute();
|
|
137
|
+
}, {
|
|
138
|
+
instanceOf: src_1.GatewayError,
|
|
139
|
+
});
|
|
140
|
+
t.truthy(error);
|
|
141
|
+
t.is(error?.responseCode, "40116");
|
|
142
|
+
t.is(error?.message, `Status Code: RESOURCE_NOT_FOUND - payment_method ${tokenizedCard.token} not found at this location.`);
|
|
143
|
+
});
|
|
144
|
+
ava_1.default.skip("card tokenization then delete", async (t) => {
|
|
145
|
+
//Permission not enabled to execute action for this appId/appKey
|
|
146
|
+
const response = await card.tokenize().execute();
|
|
147
|
+
const tokenId = response.token;
|
|
148
|
+
const tokenizedCard = new src_1.CreditCardData();
|
|
149
|
+
tokenizedCard.token = tokenId;
|
|
150
|
+
const deleteTokenExpiryRes = await tokenizedCard.deleteToken();
|
|
151
|
+
t.truthy(deleteTokenExpiryRes);
|
|
152
|
+
const deleteTokenExpiryRes2 = await tokenizedCard.deleteToken();
|
|
153
|
+
t.falsy(deleteTokenExpiryRes2);
|
|
154
|
+
});
|
|
155
|
+
ava_1.default.skip("card tokenization then delete with idempotency key", async (t) => {
|
|
156
|
+
//Permission not enabled to execute action for this appId/appKey
|
|
157
|
+
const response = await card.tokenize().execute();
|
|
158
|
+
const tokenId = response.token;
|
|
159
|
+
const tokenizedCard = new src_1.CreditCardData();
|
|
160
|
+
tokenizedCard.token = tokenId;
|
|
161
|
+
const idempotencyKey = src_1.GenerationUtils.getGuuid();
|
|
162
|
+
const deleteTokenExpiryRes = await new src_1.ManagementBuilder(src_1.TransactionType.TokenDelete)
|
|
163
|
+
.withPaymentMethod(tokenizedCard)
|
|
164
|
+
.withIdempotencyKey(idempotencyKey)
|
|
165
|
+
.execute();
|
|
166
|
+
t.truthy(deleteTokenExpiryRes);
|
|
167
|
+
t.is(deleteTokenExpiryRes.responseCode, "SUCCESS");
|
|
168
|
+
t.is(deleteTokenExpiryRes.responseMessage, "DELETED");
|
|
169
|
+
const error = await t.throwsAsync(async () => {
|
|
170
|
+
await new src_1.ManagementBuilder(src_1.TransactionType.TokenDelete)
|
|
171
|
+
.withPaymentMethod(tokenizedCard)
|
|
172
|
+
.withIdempotencyKey(idempotencyKey)
|
|
173
|
+
.execute();
|
|
174
|
+
}, {
|
|
175
|
+
instanceOf: src_1.GatewayError,
|
|
176
|
+
});
|
|
177
|
+
t.truthy(error);
|
|
178
|
+
t.is(error?.responseCode, "40039");
|
|
179
|
+
if (error?.message) {
|
|
180
|
+
t.regex(error?.message, new RegExp("Idempotency Key seen before"));
|
|
181
|
+
}
|
|
182
|
+
});
|
|
183
|
+
ava_1.default.skip("card delete wrong id", async (t) => {
|
|
184
|
+
//Permission not enabled to execute action for this appId/appKey
|
|
185
|
+
const tokenizedCard = new src_1.CreditCardData();
|
|
186
|
+
tokenizedCard.token = `PMT_${src_1.GenerationUtils.getGuuid()}`;
|
|
187
|
+
const error = await t.throwsAsync(async () => {
|
|
188
|
+
await tokenizedCard.deleteToken();
|
|
189
|
+
}, {
|
|
190
|
+
instanceOf: src_1.GatewayError,
|
|
191
|
+
});
|
|
192
|
+
t.truthy(error);
|
|
193
|
+
t.is(error?.responseCode, "40116");
|
|
194
|
+
t.is(error?.message, `Status Code: RESOURCE_NOT_FOUND - payment_method ${tokenizedCard.token} not found at this location.`);
|
|
195
|
+
});
|
|
196
|
+
(0, ava_1.default)("card tokenization then update", async (t) => {
|
|
197
|
+
const response = await card.tokenize().execute();
|
|
198
|
+
const tokenId = response.token;
|
|
199
|
+
const tokenizedCard = new src_1.CreditCardData();
|
|
200
|
+
tokenizedCard.token = tokenId;
|
|
201
|
+
const date = new Date();
|
|
202
|
+
tokenizedCard.expMonth = (date.getMonth() + 2).toString().padStart(2, "0");
|
|
203
|
+
tokenizedCard.expYear = (date.getFullYear() + 2).toString();
|
|
204
|
+
const updateTokenExpiryRes = await tokenizedCard.updateTokenExpiry();
|
|
205
|
+
t.truthy(updateTokenExpiryRes);
|
|
206
|
+
});
|
|
207
|
+
(0, ava_1.default)("card update wrong ID", async (t) => {
|
|
208
|
+
const tokenizedCard = new src_1.CreditCardData();
|
|
209
|
+
tokenizedCard.token = "PMT_" + src_1.GenerationUtils.getGuuid();
|
|
210
|
+
const date = new Date();
|
|
211
|
+
tokenizedCard.expMonth = (date.getMonth() + 2).toString().padStart(2, "0");
|
|
212
|
+
tokenizedCard.expYear = (date.getFullYear() + 2).toString();
|
|
213
|
+
const error = await t.throwsAsync(async () => {
|
|
214
|
+
await tokenizedCard.updateTokenExpiry();
|
|
215
|
+
}, {
|
|
216
|
+
instanceOf: src_1.GatewayError,
|
|
217
|
+
});
|
|
218
|
+
t.truthy(error);
|
|
219
|
+
t.is(error?.message, `Status Code: RESOURCE_NOT_FOUND - payment_method ${tokenizedCard.token} not found at this location.`);
|
|
220
|
+
});
|
|
221
|
+
(0, ava_1.default)("card tokenization then update with idempotency key", async (t) => {
|
|
222
|
+
const response = await card.tokenize().execute();
|
|
223
|
+
const tokenId = response.token;
|
|
224
|
+
const tokenizedCard = new src_1.CreditCardData();
|
|
225
|
+
tokenizedCard.token = tokenId;
|
|
226
|
+
const date = new Date();
|
|
227
|
+
tokenizedCard.expMonth = (date.getMonth() + 2).toString().padStart(2, "0");
|
|
228
|
+
tokenizedCard.expYear = (date.getFullYear() + 2).toString();
|
|
229
|
+
const idempotencyKey = src_1.GenerationUtils.getGuuid();
|
|
230
|
+
const updateTokenExpiryRes = await new src_1.ManagementBuilder(src_1.TransactionType.TokenUpdate)
|
|
231
|
+
.withPaymentMethod(tokenizedCard)
|
|
232
|
+
.withIdempotencyKey(idempotencyKey)
|
|
233
|
+
.execute();
|
|
234
|
+
t.truthy(updateTokenExpiryRes);
|
|
235
|
+
t.is(updateTokenExpiryRes.responseCode, "SUCCESS");
|
|
236
|
+
t.is(updateTokenExpiryRes.responseMessage, "ACTIVE");
|
|
237
|
+
const error = await t.throwsAsync(async () => {
|
|
238
|
+
await new src_1.ManagementBuilder(src_1.TransactionType.TokenUpdate)
|
|
239
|
+
.withPaymentMethod(tokenizedCard)
|
|
240
|
+
.withIdempotencyKey(idempotencyKey)
|
|
241
|
+
.execute();
|
|
242
|
+
}, {
|
|
243
|
+
instanceOf: src_1.GatewayError,
|
|
244
|
+
});
|
|
245
|
+
t.truthy(error);
|
|
246
|
+
t.is(error?.responseCode, "40039");
|
|
247
|
+
if (error?.responseMessage) {
|
|
248
|
+
t.regex(error?.responseMessage, new RegExp("Idempotency Key seen before"));
|
|
249
|
+
}
|
|
250
|
+
const verifyResponse = await tokenizedCard
|
|
251
|
+
.verify()
|
|
252
|
+
.withCurrency(currency)
|
|
253
|
+
.withIdempotencyKey(idempotencyKey)
|
|
254
|
+
.execute();
|
|
255
|
+
t.truthy(verifyResponse);
|
|
256
|
+
t.is(verifyResponse.responseCode, "SUCCESS");
|
|
257
|
+
t.is(verifyResponse.responseMessage, "VERIFIED");
|
|
258
|
+
tokenizedCard.expYear = (date.getFullYear() + 3).toString();
|
|
259
|
+
const updateTokenExpiryRes2 = await tokenizedCard.updateTokenExpiry();
|
|
260
|
+
t.truthy(updateTokenExpiryRes2);
|
|
261
|
+
});
|
|
262
|
+
(0, ava_1.default)("card tokenization - Missing card number", async (t) => {
|
|
263
|
+
const card = new src_1.CreditCardData();
|
|
264
|
+
const error = await t.throwsAsync(async () => {
|
|
265
|
+
await card.tokenize().execute();
|
|
266
|
+
}, {
|
|
267
|
+
instanceOf: src_1.GatewayError,
|
|
268
|
+
});
|
|
269
|
+
t.truthy(error);
|
|
270
|
+
t.is(error?.message, "Status Code: MANDATORY_DATA_MISSING - Request expects the following fields : number");
|
|
271
|
+
});
|
|
272
|
+
(0, ava_1.default)("update payment token", async (t) => {
|
|
273
|
+
const startDate = new Date();
|
|
274
|
+
startDate.setDate(startDate.getDate() - 30);
|
|
275
|
+
startDate.setHours(0);
|
|
276
|
+
startDate.setMinutes(0);
|
|
277
|
+
startDate.setSeconds(0);
|
|
278
|
+
const response = await src_1.ReportingService.findStoredPaymentMethodsPaged(1, 1)
|
|
279
|
+
.orderBy(src_1.StoredPaymentMethodSortProperty.TimeCreated, src_1.SortDirection.Desc)
|
|
280
|
+
.where(src_1.SearchCriteria.StartDate, `${startDate.getFullYear()}-${(startDate.getMonth() + 1)
|
|
281
|
+
.toString()
|
|
282
|
+
.padStart(2, "0")}-${startDate.getDate().toString().padStart(2, "0")}`)
|
|
283
|
+
.execute();
|
|
284
|
+
t.is(response.result.length, 1);
|
|
285
|
+
const pmtToken = response.result[0];
|
|
286
|
+
t.truthy(pmtToken);
|
|
287
|
+
const tokenizedCard = new src_1.CreditCardData();
|
|
288
|
+
tokenizedCard.token = pmtToken.paymentMethodId;
|
|
289
|
+
const date = new Date();
|
|
290
|
+
tokenizedCard.cardHolderName = "James BondUp";
|
|
291
|
+
tokenizedCard.expMonth = (date.getMonth() + 2).toString().padStart(2, "0");
|
|
292
|
+
tokenizedCard.expYear = (date.getFullYear() + 4).toString();
|
|
293
|
+
tokenizedCard.number = "4263970000005262";
|
|
294
|
+
const responseUpdateToken = await tokenizedCard
|
|
295
|
+
.updateToken()
|
|
296
|
+
.withPaymentMethodUsageMode(src_1.PaymentMethodUsageMode.MULTIPLE)
|
|
297
|
+
.execute();
|
|
298
|
+
t.truthy(responseUpdateToken);
|
|
299
|
+
t.is(responseUpdateToken.responseCode, "SUCCESS");
|
|
300
|
+
t.is(responseUpdateToken.responseMessage, "ACTIVE");
|
|
301
|
+
t.is(responseUpdateToken.token, pmtToken.paymentMethodId);
|
|
302
|
+
t.is(responseUpdateToken.tokenUsageMode, src_1.PaymentMethodUsageMode.MULTIPLE);
|
|
303
|
+
});
|
|
304
|
+
(0, ava_1.default)("card tokenization then update then charge", async (t) => {
|
|
305
|
+
const config = BaseGpApiTestConfig_1.BaseGpApiTestConfig.gpApiSetupConfig(src_1.Channel.CardNotPresent);
|
|
306
|
+
config.permissions = ["PMT_POST_Create_Single"];
|
|
307
|
+
src_1.ServicesContainer.configureService(config, "singleUseToken");
|
|
308
|
+
const response = await card
|
|
309
|
+
.tokenize()
|
|
310
|
+
.withPaymentMethodUsageMode(src_1.PaymentMethodUsageMode.SINGLE)
|
|
311
|
+
.execute("singleUseToken");
|
|
312
|
+
const tokenId = response.token;
|
|
313
|
+
const tokenizedCard = new src_1.CreditCardData();
|
|
314
|
+
tokenizedCard.token = tokenId;
|
|
315
|
+
tokenizedCard.cardHolderName = "GpApi";
|
|
316
|
+
const responseUpdateToken = await tokenizedCard
|
|
317
|
+
.updateToken()
|
|
318
|
+
.withPaymentMethodUsageMode(src_1.PaymentMethodUsageMode.MULTIPLE)
|
|
319
|
+
.execute();
|
|
320
|
+
t.truthy(responseUpdateToken);
|
|
321
|
+
t.is(responseUpdateToken.responseCode, "SUCCESS");
|
|
322
|
+
t.is(responseUpdateToken.responseMessage, "ACTIVE");
|
|
323
|
+
t.is(responseUpdateToken.tokenUsageMode, src_1.PaymentMethodUsageMode.MULTIPLE);
|
|
324
|
+
const chargeResponse = await tokenizedCard
|
|
325
|
+
.charge(1)
|
|
326
|
+
.withCurrency(currency)
|
|
327
|
+
.execute();
|
|
328
|
+
t.truthy(chargeResponse);
|
|
329
|
+
t.is(chargeResponse.responseCode, "SUCCESS");
|
|
330
|
+
t.is(chargeResponse.responseMessage, src_1.TransactionStatus.CAPTURED);
|
|
331
|
+
});
|
|
332
|
+
(0, ava_1.default)("card tokenization then update to single usage", async (t) => {
|
|
333
|
+
const tokenizedCard = new src_1.CreditCardData();
|
|
334
|
+
tokenizedCard.token = `PMT_${src_1.GenerationUtils.getGuuid()}`;
|
|
335
|
+
const error = await t.throwsAsync(async () => {
|
|
336
|
+
await tokenizedCard
|
|
337
|
+
.updateToken()
|
|
338
|
+
.withPaymentMethodUsageMode(src_1.PaymentMethodUsageMode.SINGLE)
|
|
339
|
+
.execute();
|
|
340
|
+
}, {
|
|
341
|
+
instanceOf: src_1.GatewayError,
|
|
342
|
+
});
|
|
343
|
+
t.truthy(error);
|
|
344
|
+
t.is(error?.responseCode, "50020");
|
|
345
|
+
t.is(error?.message, "Status Code: INVALID_REQUEST_DATA - Tokentype can only be MULTI");
|
|
346
|
+
});
|
|
347
|
+
(0, ava_1.default)("card tokenization then update to without usage mode", async (t) => {
|
|
348
|
+
const tokenizedCard = new src_1.CreditCardData();
|
|
349
|
+
tokenizedCard.token = `PMT_${src_1.GenerationUtils.getGuuid()}`;
|
|
350
|
+
const error = await t.throwsAsync(async () => {
|
|
351
|
+
await tokenizedCard.updateToken().execute();
|
|
352
|
+
}, {
|
|
353
|
+
instanceOf: src_1.GatewayError,
|
|
354
|
+
});
|
|
355
|
+
t.truthy(error);
|
|
356
|
+
t.is(error?.responseCode, "50021");
|
|
357
|
+
t.is(error?.message, "Status Code: MANDATORY_DATA_MISSING - Mandatory Fields missing [card expdate] See Developers Guide");
|
|
358
|
+
});
|
|
359
|
+
ava_1.default.after(() => BaseGpApiTestConfig_1.BaseGpApiTestConfig.resetGpApiConfig());
|
|
360
|
+
//# sourceMappingURL=CreditCardNotPresentTest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CreditCardNotPresentTest.js","sourceRoot":"","sources":["../../../../../test/Integration/Gateways/GpApiConnector/CreditCardNotPresentTest.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const ava_1 = __importDefault(require("ava"));
|
|
7
|
+
const src_1 = require("../../../../src");
|
|
8
|
+
const BaseGpApiTestConfig_1 = require("../../../../test/Data/BaseGpApiTestConfig");
|
|
9
|
+
const date = new Date();
|
|
10
|
+
const card = new src_1.CreditCardData();
|
|
11
|
+
card.number = "4263970000005262";
|
|
12
|
+
card.expMonth = (date.getMonth() + 1).toString().padStart(2, "0");
|
|
13
|
+
card.expYear = (date.getFullYear() + 1).toString();
|
|
14
|
+
card.cvn = "131";
|
|
15
|
+
card.cardHolderName = "James Mason";
|
|
16
|
+
ava_1.default.before(() => {
|
|
17
|
+
src_1.ServicesContainer.configureService(BaseGpApiTestConfig_1.BaseGpApiTestConfig.gpApiSetupConfig(src_1.Channel.CardNotPresent));
|
|
18
|
+
});
|
|
19
|
+
ava_1.default.after(() => BaseGpApiTestConfig_1.BaseGpApiTestConfig.resetGpApiConfig());
|
|
20
|
+
(0, ava_1.default)("find stored payment method by start date and end date", async (t) => {
|
|
21
|
+
const startDate = new Date(), endDate = new Date();
|
|
22
|
+
startDate.setDate(startDate.getDate() - 30);
|
|
23
|
+
startDate.setHours(0);
|
|
24
|
+
startDate.setMinutes(0);
|
|
25
|
+
startDate.setSeconds(0);
|
|
26
|
+
endDate.setDate(endDate.getDate() - 3);
|
|
27
|
+
const response = await src_1.ReportingService.findStoredPaymentMethodsPaged(1, 10)
|
|
28
|
+
.orderBy(src_1.StoredPaymentMethodSortProperty.TimeCreated, src_1.SortDirection.Desc)
|
|
29
|
+
.where(src_1.SearchCriteria.StartDate, `${startDate.getFullYear()}-${(startDate.getMonth() + 1)
|
|
30
|
+
.toString()
|
|
31
|
+
.padStart(2, "0")}-${startDate.getDate().toString().padStart(2, "0")}`)
|
|
32
|
+
.andWith(src_1.SearchCriteria.EndDate, `${endDate.getFullYear()}-${(endDate.getMonth() + 1)
|
|
33
|
+
.toString()
|
|
34
|
+
.padStart(2, "0")}-${endDate.getDate().toString().padStart(2, "0")}`)
|
|
35
|
+
.execute();
|
|
36
|
+
t.is(response.result.length, 10);
|
|
37
|
+
const paymentMethodList = response.result;
|
|
38
|
+
t.truthy(paymentMethodList);
|
|
39
|
+
const paymentMethodListSorted = paymentMethodList.sort((a, b) => {
|
|
40
|
+
return (new Date(a.timeCreated).getTime() < new Date(b.timeCreated).getTime());
|
|
41
|
+
});
|
|
42
|
+
paymentMethodListSorted.forEach((element, index) => {
|
|
43
|
+
t.is(JSON.stringify(element), JSON.stringify(paymentMethodList[index]));
|
|
44
|
+
t.is(startDate.getTime() <= new Date(element.timeCreated).getTime(), true);
|
|
45
|
+
endDate.setDate(endDate.getDate() + 1);
|
|
46
|
+
t.is(endDate.getTime() >= new Date(element.timeCreated).getTime(), true);
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
(0, ava_1.default)("find stored payment method by last updated", async (t) => {
|
|
50
|
+
const startDate = new Date(), endDate = new Date();
|
|
51
|
+
startDate.setDate(startDate.getDate() - 30);
|
|
52
|
+
startDate.setHours(0);
|
|
53
|
+
startDate.setMinutes(0);
|
|
54
|
+
startDate.setSeconds(0);
|
|
55
|
+
endDate.setDate(endDate.getDate() - 3);
|
|
56
|
+
const response = await src_1.ReportingService.findStoredPaymentMethodsPaged(1, 10)
|
|
57
|
+
.orderBy(src_1.StoredPaymentMethodSortProperty.TimeCreated, src_1.SortDirection.Desc)
|
|
58
|
+
.where(src_1.SearchCriteria.FromTimeLastUpdated, `${startDate.getFullYear()}-${(startDate.getMonth() + 1)
|
|
59
|
+
.toString()
|
|
60
|
+
.padStart(2, "0")}-${startDate.getDate().toString().padStart(2, "0")}`)
|
|
61
|
+
.andWith(src_1.SearchCriteria.ToTimeLastUpdated, `${endDate.getFullYear()}-${(endDate.getMonth() + 1)
|
|
62
|
+
.toString()
|
|
63
|
+
.padStart(2, "0")}-${endDate.getDate().toString().padStart(2, "0")}`)
|
|
64
|
+
.execute();
|
|
65
|
+
t.truthy(response);
|
|
66
|
+
t.is(response.result.length, 10);
|
|
67
|
+
});
|
|
68
|
+
(0, ava_1.default)("find stored payment method by last updated current day", async (t) => {
|
|
69
|
+
const currentDate = new Date();
|
|
70
|
+
currentDate.setDate(currentDate.getDate() - 30);
|
|
71
|
+
currentDate.setHours(0);
|
|
72
|
+
currentDate.setMinutes(0);
|
|
73
|
+
currentDate.setSeconds(0);
|
|
74
|
+
const response = await src_1.ReportingService.findStoredPaymentMethodsPaged(1, 10)
|
|
75
|
+
.orderBy(src_1.StoredPaymentMethodSortProperty.TimeCreated, src_1.SortDirection.Desc)
|
|
76
|
+
.where(src_1.SearchCriteria.FromTimeLastUpdated, `${currentDate.getFullYear()}-${(currentDate.getMonth() + 1)
|
|
77
|
+
.toString()
|
|
78
|
+
.padStart(2, "0")}-${currentDate
|
|
79
|
+
.getDate()
|
|
80
|
+
.toString()
|
|
81
|
+
.padStart(2, "0")}`)
|
|
82
|
+
.andWith(src_1.SearchCriteria.ToTimeLastUpdated, `${currentDate.getFullYear()}-${(currentDate.getMonth() + 1)
|
|
83
|
+
.toString()
|
|
84
|
+
.padStart(2, "0")}-${currentDate
|
|
85
|
+
.getDate()
|
|
86
|
+
.toString()
|
|
87
|
+
.padStart(2, "0")}`)
|
|
88
|
+
.execute();
|
|
89
|
+
t.truthy(response);
|
|
90
|
+
t.is(response.result.length, 10);
|
|
91
|
+
});
|
|
92
|
+
(0, ava_1.default)("find stored payment method by id", async (t) => {
|
|
93
|
+
const tokenizedPayment = await card.tokenize().execute();
|
|
94
|
+
const response = await src_1.ReportingService.findStoredPaymentMethodsPaged(1, 10)
|
|
95
|
+
.orderBy(src_1.StoredPaymentMethodSortProperty.TimeCreated, src_1.SortDirection.Asc)
|
|
96
|
+
.where(src_1.SearchCriteria.StoredPaymentMethodId, tokenizedPayment.token)
|
|
97
|
+
.execute();
|
|
98
|
+
t.truthy(response);
|
|
99
|
+
t.is(response.result.length, 1);
|
|
100
|
+
t.is(response.result[0].paymentMethodId, tokenizedPayment.token);
|
|
101
|
+
});
|
|
102
|
+
(0, ava_1.default)("find stored payment method by random id", async (t) => {
|
|
103
|
+
const paymentMethodId = "PMT_" + src_1.GenerationUtils.getGuuid();
|
|
104
|
+
const response = await src_1.ReportingService.findStoredPaymentMethodsPaged(1, 10)
|
|
105
|
+
.orderBy(src_1.StoredPaymentMethodSortProperty.TimeCreated, src_1.SortDirection.Asc)
|
|
106
|
+
.where(src_1.SearchCriteria.StoredPaymentMethodId, paymentMethodId)
|
|
107
|
+
.execute();
|
|
108
|
+
t.truthy(response);
|
|
109
|
+
t.truthy(response.result);
|
|
110
|
+
t.is(response.result.length, 0);
|
|
111
|
+
});
|
|
112
|
+
(0, ava_1.default)("find stored payment method by status", async (t) => {
|
|
113
|
+
const statuses = ["ACTIVE", "DELETED"];
|
|
114
|
+
for (const status of statuses) {
|
|
115
|
+
const response = await src_1.ReportingService.findStoredPaymentMethodsPaged(1, 10)
|
|
116
|
+
.orderBy(src_1.StoredPaymentMethodSortProperty.TimeCreated, src_1.SortDirection.Asc)
|
|
117
|
+
.where(src_1.SearchCriteria.StoredPaymentMethodStatus, status)
|
|
118
|
+
.execute();
|
|
119
|
+
t.truthy(response);
|
|
120
|
+
t.truthy(response.result);
|
|
121
|
+
for (const result of response.result) {
|
|
122
|
+
t.is(result.status, status);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
(0, ava_1.default)("find stored payment method by reference", async (t) => {
|
|
127
|
+
const reference = "5e3d3885-ceb3-a5ea-015c-945eaa4df8c8";
|
|
128
|
+
const response = await src_1.ReportingService.findStoredPaymentMethodsPaged(1, 10)
|
|
129
|
+
.orderBy(src_1.StoredPaymentMethodSortProperty.TimeCreated, src_1.SortDirection.Asc)
|
|
130
|
+
.where(src_1.SearchCriteria.ReferenceNumber, reference)
|
|
131
|
+
.execute();
|
|
132
|
+
t.truthy(response);
|
|
133
|
+
t.truthy(response.result);
|
|
134
|
+
for (const result of response.result) {
|
|
135
|
+
t.is(result.reference, reference);
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
(0, ava_1.default)("find stored payment method by card info", async (t) => {
|
|
139
|
+
const card = new src_1.CreditCardData();
|
|
140
|
+
card.number = "4242424242424242";
|
|
141
|
+
card.expMonth = "12";
|
|
142
|
+
card.expYear = (new Date().getFullYear() + 1).toString();
|
|
143
|
+
const response = await src_1.ReportingService.findStoredPaymentMethodsPaged(1, 10)
|
|
144
|
+
.orderBy(src_1.StoredPaymentMethodSortProperty.TimeCreated, src_1.SortDirection.Asc)
|
|
145
|
+
.where(src_1.SearchCriteria.PaymentMethod, card)
|
|
146
|
+
.execute();
|
|
147
|
+
t.truthy(response);
|
|
148
|
+
t.truthy(response.result);
|
|
149
|
+
for (const result of response.result) {
|
|
150
|
+
t.is(result.cardExpMonth, card.expMonth);
|
|
151
|
+
t.is(result.cardExpYear, card.expYear.substring(card.expYear.length - 2, card.expYear.length));
|
|
152
|
+
t.is(result.cardNumberLastFour.substring(result.cardNumberLastFour.length - 4, result.cardNumberLastFour.length), card.number.substring(card.number.length - 4, card.number.length));
|
|
153
|
+
}
|
|
154
|
+
});
|
|
155
|
+
(0, ava_1.default)("find stored payment method by only card number info", async (t) => {
|
|
156
|
+
const card = new src_1.CreditCardData();
|
|
157
|
+
card.number = "4242424242424242";
|
|
158
|
+
card.expMonth = "12";
|
|
159
|
+
card.expYear = (new Date().getFullYear() + 1).toString();
|
|
160
|
+
const response = await src_1.ReportingService.findStoredPaymentMethodsPaged(1, 10)
|
|
161
|
+
.orderBy(src_1.StoredPaymentMethodSortProperty.TimeCreated, src_1.SortDirection.Asc)
|
|
162
|
+
.where(src_1.SearchCriteria.PaymentMethod, card)
|
|
163
|
+
.execute();
|
|
164
|
+
t.truthy(response);
|
|
165
|
+
t.truthy(response.result);
|
|
166
|
+
for (const result of response.result) {
|
|
167
|
+
t.is(result.cardExpMonth, card.expMonth);
|
|
168
|
+
t.is(result.cardExpYear, card.expYear.substring(card.expYear.length - 2, card.expYear.length));
|
|
169
|
+
t.is(result.cardNumberLastFour.substring(result.cardNumberLastFour.length - 4, result.cardNumberLastFour.length), card.number.substring(card.number.length - 4, card.number.length));
|
|
170
|
+
}
|
|
171
|
+
});
|
|
172
|
+
(0, ava_1.default)("find stored payment method without mandatory card number", async (t) => {
|
|
173
|
+
const card = new src_1.CreditCardData();
|
|
174
|
+
const error = await t.throwsAsync(async () => {
|
|
175
|
+
await src_1.ReportingService.findStoredPaymentMethodsPaged(1, 10)
|
|
176
|
+
.orderBy(src_1.StoredPaymentMethodSortProperty.TimeCreated, src_1.SortDirection.Asc)
|
|
177
|
+
.where(src_1.SearchCriteria.PaymentMethod, card)
|
|
178
|
+
.execute();
|
|
179
|
+
}, {
|
|
180
|
+
instanceOf: src_1.GatewayError,
|
|
181
|
+
});
|
|
182
|
+
t.truthy(error);
|
|
183
|
+
t.is(error?.responseCode, "40005");
|
|
184
|
+
t.is(error?.message, "Status Code: MANDATORY_DATA_MISSING - Request expects the following fields : number");
|
|
185
|
+
});
|
|
186
|
+
(0, ava_1.default)("find stored payment method detail", async (t) => {
|
|
187
|
+
const paymentMethodId = "PMT_deea3267-e182-4c03-b3db-c9469a32a6a8";
|
|
188
|
+
// eslint-disable-next-line prettier/prettier
|
|
189
|
+
const response = await src_1.ReportingService.storedPaymentMethodDetail(paymentMethodId).execute();
|
|
190
|
+
// eslint-enable-next-line prettier/prettier
|
|
191
|
+
t.truthy(response);
|
|
192
|
+
t.true(response instanceof src_1.StoredPaymentMethodSummary);
|
|
193
|
+
t.is(response.paymentMethodId, paymentMethodId);
|
|
194
|
+
});
|
|
195
|
+
(0, ava_1.default)("find stored payment method detail by random id", async (t) => {
|
|
196
|
+
const paymentMethodId = "PMT_" + src_1.GenerationUtils.getGuuid();
|
|
197
|
+
const error = await t.throwsAsync(async () => {
|
|
198
|
+
await src_1.ReportingService.storedPaymentMethodDetail(paymentMethodId).execute();
|
|
199
|
+
}, {
|
|
200
|
+
instanceOf: src_1.GatewayError,
|
|
201
|
+
});
|
|
202
|
+
t.truthy(error);
|
|
203
|
+
t.is(error?.responseCode, "40118");
|
|
204
|
+
t.is(error?.message, `Status Code: RESOURCE_NOT_FOUND - PAYMENT_METHODS ${paymentMethodId} not found at this /ucp/payment-methods/${paymentMethodId}`);
|
|
205
|
+
});
|
|
206
|
+
(0, ava_1.default)("find stored payment method detail by wrong format id", async (t) => {
|
|
207
|
+
const paymentMethodId = src_1.GenerationUtils.getGuuid();
|
|
208
|
+
const error = await t.throwsAsync(async () => {
|
|
209
|
+
await src_1.ReportingService.storedPaymentMethodDetail(paymentMethodId).execute();
|
|
210
|
+
}, {
|
|
211
|
+
instanceOf: src_1.GatewayError,
|
|
212
|
+
});
|
|
213
|
+
t.truthy(error);
|
|
214
|
+
t.is(error?.responseCode, "40213");
|
|
215
|
+
t.is(error?.message, `Status Code: INVALID_REQUEST_DATA - payment_method.id: ${paymentMethodId} contains unexpected data`);
|
|
216
|
+
});
|
|
217
|
+
//# sourceMappingURL=ReportingStoredPaymentMethodsTest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReportingStoredPaymentMethodsTest.js","sourceRoot":"","sources":["../../../../../test/Integration/Gateways/GpApiConnector/ReportingStoredPaymentMethodsTest.ts"],"names":[],"mappings":"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"}
|
|
@@ -124,10 +124,10 @@ ava_1.default.skip("credit auth mobile - google pay", async (t) => {
|
|
|
124
124
|
t.plan(6);
|
|
125
125
|
const encryptedCard = new src_1.CreditCardData();
|
|
126
126
|
// tslint:disable-next-line:max-line-length
|
|
127
|
-
encryptedCard.token = `{
|
|
128
|
-
"signature": "MEQCIAv8iIZmQK95xMrruLLLvJ2/uGuq54SSq190WS62M4a4AiAQhRwPHt3HXaOtCUYphfZLhIRznbF3TWxXLfPCGoutTQ==",
|
|
129
|
-
"protocolVersion": "ECv1",
|
|
130
|
-
"signedMessage": "{"encryptedMessage":"h1Zfi0b6wQoD3b1qOvfa6EjGa0Bv/Mtxmn/2rRmq/mjLPVuM3Ymu7Uk1IEoPQ/Hk3bafHMCoBrGMQ4YUzLRNMk+YideS4thnE898ZLmnlcPVxWzv+gDodx7spInIK3dTYhMDhdo/28dIqmovl6hPzjPWjAaOfKUs7FvCPjR+HQG7cZb6V41BOzuCCt9wSQGTY5AkIWcTxGVTbA4brd/88A+EZowF10PNl24dygX/ydTAhkBBlVzp33/Poj/Axo7GFtH+kFBgEkBd68LFDHnDd7+GK7HhLq2gv4zVVTUHBSXa3MZFKOWmrgtz3gSXYi3yi6mSGVQwULSp8n4cD3qKW9z38VfqPAR0ZrUsZHvExI/n24iXYs3k5LUspeGbldXAkGL10OJw3meKoHjw20d04fGnTl6DNv2b6/WMA3lUoV9SotEhU20bHKgwpy7VQP20AgKb","ephemeralPublicKey":"BKaqNecPUorCBVLMcKncrBg/eFnt44HsLjHoyzOKnl12DP5KR4SPBNdNDSOjn3Bt/RSN9Nb2e9AOed5Zj0JmGCI\\u003d","tag":"wAiHd29oNTj6BM6XYCx8Cop0ek7yJNZDxsW2d9bdJPA\\u003d"}"
|
|
127
|
+
encryptedCard.token = `{
|
|
128
|
+
"signature": "MEQCIAv8iIZmQK95xMrruLLLvJ2/uGuq54SSq190WS62M4a4AiAQhRwPHt3HXaOtCUYphfZLhIRznbF3TWxXLfPCGoutTQ==",
|
|
129
|
+
"protocolVersion": "ECv1",
|
|
130
|
+
"signedMessage": "{"encryptedMessage":"h1Zfi0b6wQoD3b1qOvfa6EjGa0Bv/Mtxmn/2rRmq/mjLPVuM3Ymu7Uk1IEoPQ/Hk3bafHMCoBrGMQ4YUzLRNMk+YideS4thnE898ZLmnlcPVxWzv+gDodx7spInIK3dTYhMDhdo/28dIqmovl6hPzjPWjAaOfKUs7FvCPjR+HQG7cZb6V41BOzuCCt9wSQGTY5AkIWcTxGVTbA4brd/88A+EZowF10PNl24dygX/ydTAhkBBlVzp33/Poj/Axo7GFtH+kFBgEkBd68LFDHnDd7+GK7HhLq2gv4zVVTUHBSXa3MZFKOWmrgtz3gSXYi3yi6mSGVQwULSp8n4cD3qKW9z38VfqPAR0ZrUsZHvExI/n24iXYs3k5LUspeGbldXAkGL10OJw3meKoHjw20d04fGnTl6DNv2b6/WMA3lUoV9SotEhU20bHKgwpy7VQP20AgKb","ephemeralPublicKey":"BKaqNecPUorCBVLMcKncrBg/eFnt44HsLjHoyzOKnl12DP5KR4SPBNdNDSOjn3Bt/RSN9Nb2e9AOed5Zj0JmGCI\\u003d","tag":"wAiHd29oNTj6BM6XYCx8Cop0ek7yJNZDxsW2d9bdJPA\\u003d"}"
|
|
131
131
|
}`;
|
|
132
132
|
encryptedCard.mobileType = "pay-with-google";
|
|
133
133
|
const missingAmountError = (await t.throws(() => encryptedCard
|