globalpayments-api 3.10.10 → 3.10.11
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 +228 -224
- package/LICENSE.md +257 -257
- package/README.md +148 -148
- package/lib/src/Builders/AuthorizationBuilder.js +11 -0
- package/lib/src/Builders/AuthorizationBuilder.js.map +1 -1
- package/lib/src/Builders/RequestBuilder/GpApi/GpApiAuthorizationRequestBuilder.js +9 -0
- package/lib/src/Builders/RequestBuilder/GpApi/GpApiAuthorizationRequestBuilder.js.map +1 -1
- package/lib/src/Builders/RequestBuilder/GpApi/GpApiManagementRequestBuilder.js +2 -1
- package/lib/src/Builders/RequestBuilder/GpApi/GpApiManagementRequestBuilder.js.map +1 -1
- package/lib/src/Entities/AlternativePaymentResponse.d.ts +1 -0
- package/lib/src/Entities/AlternativePaymentResponse.js +3 -0
- package/lib/src/Entities/AlternativePaymentResponse.js.map +1 -1
- package/lib/src/Entities/BankResponse.d.ts +7 -0
- package/lib/src/Entities/BankResponse.js +12 -0
- package/lib/src/Entities/BankResponse.js.map +1 -0
- package/lib/src/Entities/Enums.d.ts +25 -1
- package/lib/src/Entities/Enums.js +27 -1
- package/lib/src/Entities/Enums.js.map +1 -1
- package/lib/src/Entities/index.d.ts +1 -0
- package/lib/src/Entities/index.js +1 -0
- package/lib/src/Entities/index.js.map +1 -1
- package/lib/src/Gateways/GpApiConnector.js +70 -0
- package/lib/src/Gateways/GpApiConnector.js.map +1 -1
- package/lib/src/Mapping/GpApiMapping.d.ts +3 -0
- package/lib/src/Mapping/GpApiMapping.js +26 -2
- package/lib/src/Mapping/GpApiMapping.js.map +1 -1
- package/lib/src/PaymentMethods/AlternativePaymentMethod.d.ts +1 -0
- package/lib/src/PaymentMethods/AlternativePaymentMethod.js +1 -0
- package/lib/src/PaymentMethods/AlternativePaymentMethod.js.map +1 -1
- package/lib/src/ServiceConfigs/Gateways/GpApiConfig.d.ts +1 -0
- package/lib/src/ServiceConfigs/Gateways/GpApiConfig.js +1 -0
- package/lib/src/ServiceConfigs/Gateways/GpApiConfig.js.map +1 -1
- package/lib/test/Integration/Gateways/GpApiConnector/3DS2.test.js +15 -15
- package/lib/test/Integration/Gateways/GpApiConnector/3DSecure.test.js +5 -5
- package/lib/test/Integration/Gateways/GpApiConnector/PayUApm.test.d.ts +1 -0
- package/lib/test/Integration/Gateways/GpApiConnector/PayUApm.test.js +299 -0
- package/lib/test/Integration/Gateways/GpApiConnector/PayUApm.test.js.map +1 -0
- package/lib/test/Integration/Gateways/GpEcomConnector/Credit.test.js +4 -4
- package/lib/test/Integration/Gateways/PorticoConnector/Ecommerce.test.js +8 -8
- package/package.json +63 -63
|
@@ -867,11 +867,11 @@ test("challenge required v2 - initiate with mobile sdk", async () => {
|
|
|
867
867
|
mobileData.applicationReference = "f283b3ec-27da-42a1-acea-f3f70e75bbdc";
|
|
868
868
|
mobileData.sdkInterface = src_1.SdkInterface.Both;
|
|
869
869
|
mobileData.sdkUiTypes = [src_1.SdkUiType.Oob];
|
|
870
|
-
mobileData.ephemeralPublicKey = `{
|
|
871
|
-
"kty": "EC",
|
|
872
|
-
"crv": "P-256",
|
|
873
|
-
"x": "WWcpTjbOqiu_1aODllw5rYTq5oLXE_T0huCPjMIRbkI",
|
|
874
|
-
"y": "Wz_7anIeadV8SJZUfr4drwjzuWoUbOsHp5GdRZBAAiw"
|
|
870
|
+
mobileData.ephemeralPublicKey = `{
|
|
871
|
+
"kty": "EC",
|
|
872
|
+
"crv": "P-256",
|
|
873
|
+
"x": "WWcpTjbOqiu_1aODllw5rYTq5oLXE_T0huCPjMIRbkI",
|
|
874
|
+
"y": "Wz_7anIeadV8SJZUfr4drwjzuWoUbOsHp5GdRZBAAiw"
|
|
875
875
|
}`;
|
|
876
876
|
mobileData.maximumTimeout = 50;
|
|
877
877
|
mobileData.referenceNumber = "3DS_LOA_SDK_PPFU_020100_00007";
|
|
@@ -909,11 +909,11 @@ test("challenge required v2 - initiate with mobile data and browser data", async
|
|
|
909
909
|
mobileData.applicationReference = "f283b3ec-27da-42a1-acea-f3f70e75bbdc";
|
|
910
910
|
mobileData.sdkInterface = src_1.SdkInterface.Browser;
|
|
911
911
|
mobileData.sdkUiTypes = [src_1.SdkUiType.HtmlOther];
|
|
912
|
-
mobileData.ephemeralPublicKey = `{
|
|
913
|
-
"kty": "EC",
|
|
914
|
-
"crv": "P-256",
|
|
915
|
-
"x": "WWcpTjbOqiu_1aODllw5rYTq5oLXE_T0huCPjMIRbkI",
|
|
916
|
-
"y": "Wz_7anIeadV8SJZUfr4drwjzuWoUbOsHp5GdRZBAAiw"
|
|
912
|
+
mobileData.ephemeralPublicKey = `{
|
|
913
|
+
"kty": "EC",
|
|
914
|
+
"crv": "P-256",
|
|
915
|
+
"x": "WWcpTjbOqiu_1aODllw5rYTq5oLXE_T0huCPjMIRbkI",
|
|
916
|
+
"y": "Wz_7anIeadV8SJZUfr4drwjzuWoUbOsHp5GdRZBAAiw"
|
|
917
917
|
}`;
|
|
918
918
|
mobileData.maximumTimeout = 50;
|
|
919
919
|
mobileData.referenceNumber = "3DS_LOA_SDK_PPFU_020100_00007";
|
|
@@ -946,11 +946,11 @@ test("challenge required v2 - initiate with mobile data and source browser", asy
|
|
|
946
946
|
mobileData.applicationReference = "f283b3ec-27da-42a1-acea-f3f70e75bbdc";
|
|
947
947
|
mobileData.sdkInterface = src_1.SdkInterface.Browser;
|
|
948
948
|
mobileData.sdkUiTypes = [src_1.SdkUiType.HtmlOther];
|
|
949
|
-
mobileData.ephemeralPublicKey = `{
|
|
950
|
-
"kty": "EC",
|
|
951
|
-
"crv": "P-256",
|
|
952
|
-
"x": "WWcpTjbOqiu_1aODllw5rYTq5oLXE_T0huCPjMIRbkI",
|
|
953
|
-
"y": "Wz_7anIeadV8SJZUfr4drwjzuWoUbOsHp5GdRZBAAiw"
|
|
949
|
+
mobileData.ephemeralPublicKey = `{
|
|
950
|
+
"kty": "EC",
|
|
951
|
+
"crv": "P-256",
|
|
952
|
+
"x": "WWcpTjbOqiu_1aODllw5rYTq5oLXE_T0huCPjMIRbkI",
|
|
953
|
+
"y": "Wz_7anIeadV8SJZUfr4drwjzuWoUbOsHp5GdRZBAAiw"
|
|
954
954
|
}`;
|
|
955
955
|
mobileData.maximumTimeout = 50;
|
|
956
956
|
mobileData.referenceNumber = "3DS_LOA_SDK_PPFU_020100_00007";
|
|
@@ -527,11 +527,11 @@ test("frictionless full cycle - v2 - with mobile SDK", async () => {
|
|
|
527
527
|
mobileData.applicationReference = "f283b3ec-27da-42a1-acea-f3f70e75bbdc";
|
|
528
528
|
mobileData.sdkInterface = src_1.SdkInterface.Browser;
|
|
529
529
|
mobileData.sdkUiTypes = [src_1.SdkUiType.HtmlOther];
|
|
530
|
-
mobileData.ephemeralPublicKey = `{
|
|
531
|
-
"kty": "EC",
|
|
532
|
-
"crv": "P-256",
|
|
533
|
-
"x": "WWcpTjbOqiu_1aODllw5rYTq5oLXE_T0huCPjMIRbkI",
|
|
534
|
-
"y": "Wz_7anIeadV8SJZUfr4drwjzuWoUbOsHp5GdRZBAAiw"
|
|
530
|
+
mobileData.ephemeralPublicKey = `{
|
|
531
|
+
"kty": "EC",
|
|
532
|
+
"crv": "P-256",
|
|
533
|
+
"x": "WWcpTjbOqiu_1aODllw5rYTq5oLXE_T0huCPjMIRbkI",
|
|
534
|
+
"y": "Wz_7anIeadV8SJZUfr4drwjzuWoUbOsHp5GdRZBAAiw"
|
|
535
535
|
}`;
|
|
536
536
|
mobileData.maximumTimeout = 50;
|
|
537
537
|
mobileData.referenceNumber = "3DS_LOA_SDK_PPFU_020100_00007";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,299 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const src_1 = require("../../../../src");
|
|
4
|
+
const ServiceConfigs_1 = require("../../../../src/ServiceConfigs");
|
|
5
|
+
const AMOUNT = 16.5;
|
|
6
|
+
const CURRENCY = "PLN";
|
|
7
|
+
const RETURN_URL = "https://www.example.com/returnUrl";
|
|
8
|
+
const STATUS_UPDATE_URL = "https://www.example.com/statusUrl";
|
|
9
|
+
const DESCRIPTOR = "Test Transaction";
|
|
10
|
+
const ACCOUNT_NAME = "James Mason";
|
|
11
|
+
const CHARGE_DESCRIPTION = "New APM";
|
|
12
|
+
let savedTransactionId;
|
|
13
|
+
const setupPayUConfig = () => {
|
|
14
|
+
const APP_ID = "hlZAokTftDazLlWDPe8E6VAz5g9rSDPg";
|
|
15
|
+
const APP_KEY = "ThDO2fISzzWCgkCZ";
|
|
16
|
+
const gpApiConfig = new ServiceConfigs_1.GpApiConfig();
|
|
17
|
+
gpApiConfig.appId = APP_ID;
|
|
18
|
+
gpApiConfig.appKey = APP_KEY;
|
|
19
|
+
gpApiConfig.channel = src_1.Channel.CardNotPresent;
|
|
20
|
+
gpApiConfig.serviceUrl = "https://apis-qa.globalpay.com/ucp";
|
|
21
|
+
gpApiConfig.country = "PL";
|
|
22
|
+
gpApiConfig.requestLogger = new src_1.SampleRequestLogger(new src_1.Logger("logs"));
|
|
23
|
+
const accessTokenInfo = new src_1.AccessTokenInfo();
|
|
24
|
+
accessTokenInfo.transactionProcessingAccountName =
|
|
25
|
+
"GPECOM_PAYU_APM_Transaction_Processing";
|
|
26
|
+
gpApiConfig.accessTokenInfo = accessTokenInfo;
|
|
27
|
+
src_1.ServicesContainer.configureService(gpApiConfig, "payuConfig");
|
|
28
|
+
};
|
|
29
|
+
beforeAll(() => {
|
|
30
|
+
setupPayUConfig();
|
|
31
|
+
});
|
|
32
|
+
afterAll(() => {
|
|
33
|
+
src_1.ServicesContainer.removeConfiguration();
|
|
34
|
+
});
|
|
35
|
+
describe("GP API PayU APM Tests", () => {
|
|
36
|
+
/**
|
|
37
|
+
* testPayuApmForSale
|
|
38
|
+
* Validates a successful sale transaction using PayU APM with all required fields provided
|
|
39
|
+
*
|
|
40
|
+
*/
|
|
41
|
+
test("payu apm for sale", async () => {
|
|
42
|
+
const paymentMethodDetails = new src_1.AlternativePaymentMethod(src_1.AlternativePaymentType.OB);
|
|
43
|
+
paymentMethodDetails.returnUrl = RETURN_URL;
|
|
44
|
+
paymentMethodDetails.statusUpdateUrl = STATUS_UPDATE_URL;
|
|
45
|
+
paymentMethodDetails.descriptor = DESCRIPTOR;
|
|
46
|
+
paymentMethodDetails.country = "PL";
|
|
47
|
+
paymentMethodDetails.accountHolderName = ACCOUNT_NAME;
|
|
48
|
+
paymentMethodDetails.bank = src_1.BankList.MBANK;
|
|
49
|
+
const response = await paymentMethodDetails
|
|
50
|
+
.charge(AMOUNT)
|
|
51
|
+
.withCurrency(CURRENCY)
|
|
52
|
+
.withDescription(CHARGE_DESCRIPTION)
|
|
53
|
+
.execute("payuConfig");
|
|
54
|
+
expect(response).toBeTruthy();
|
|
55
|
+
expect(response.responseCode).toBe("SUCCESS");
|
|
56
|
+
expect(response.alternativePaymentResponse).toBeTruthy();
|
|
57
|
+
expect(response.alternativePaymentResponse?.redirectUrl).toBeTruthy();
|
|
58
|
+
expect(response.alternativePaymentResponse?.providerName?.toUpperCase()).toBe("BANK_PAYMENT");
|
|
59
|
+
// Save transaction ID for later tests
|
|
60
|
+
savedTransactionId = response.transactionId;
|
|
61
|
+
console.log("Transaction ID from sale:", savedTransactionId);
|
|
62
|
+
console.log("Redirect URL:", response.alternativePaymentResponse?.redirectUrl);
|
|
63
|
+
});
|
|
64
|
+
/**
|
|
65
|
+
* Sale for PayU APM with different bank
|
|
66
|
+
* Validates sale transaction using PayU APM with ING bank
|
|
67
|
+
*/
|
|
68
|
+
test("payu apm for sale with ing bank", async () => {
|
|
69
|
+
const paymentMethodDetails = new src_1.AlternativePaymentMethod(src_1.AlternativePaymentType.OB);
|
|
70
|
+
paymentMethodDetails.returnUrl = RETURN_URL;
|
|
71
|
+
paymentMethodDetails.statusUpdateUrl = STATUS_UPDATE_URL;
|
|
72
|
+
paymentMethodDetails.descriptor = DESCRIPTOR;
|
|
73
|
+
paymentMethodDetails.country = "PL";
|
|
74
|
+
paymentMethodDetails.accountHolderName = ACCOUNT_NAME;
|
|
75
|
+
paymentMethodDetails.bank = src_1.BankList.ING;
|
|
76
|
+
const response = await paymentMethodDetails
|
|
77
|
+
.charge(AMOUNT)
|
|
78
|
+
.withCurrency(CURRENCY)
|
|
79
|
+
.withDescription(CHARGE_DESCRIPTION)
|
|
80
|
+
.execute("payuConfig");
|
|
81
|
+
expect(response).toBeTruthy();
|
|
82
|
+
expect(response.responseCode).toBe("SUCCESS");
|
|
83
|
+
expect(response.alternativePaymentResponse).toBeTruthy();
|
|
84
|
+
expect(response.alternativePaymentResponse?.redirectUrl).toBeTruthy();
|
|
85
|
+
});
|
|
86
|
+
/**
|
|
87
|
+
* Sale for PayU APM without return url
|
|
88
|
+
* Verifies that a sale transaction using PayU APM throws an exception when the ReturnUrl is missing
|
|
89
|
+
*/
|
|
90
|
+
test("payu apm for sale without return url", async () => {
|
|
91
|
+
const paymentMethod = new src_1.AlternativePaymentMethod(src_1.AlternativePaymentType.OB);
|
|
92
|
+
paymentMethod.statusUpdateUrl = STATUS_UPDATE_URL;
|
|
93
|
+
paymentMethod.descriptor = DESCRIPTOR;
|
|
94
|
+
paymentMethod.country = "PL";
|
|
95
|
+
paymentMethod.accountHolderName = ACCOUNT_NAME;
|
|
96
|
+
paymentMethod.bank = src_1.BankList.MBANK;
|
|
97
|
+
try {
|
|
98
|
+
await paymentMethod
|
|
99
|
+
.charge(AMOUNT)
|
|
100
|
+
.withCurrency(CURRENCY)
|
|
101
|
+
.withDescription(CHARGE_DESCRIPTION)
|
|
102
|
+
.execute("payuConfig");
|
|
103
|
+
fail("Should have thrown an error");
|
|
104
|
+
}
|
|
105
|
+
catch (error) {
|
|
106
|
+
expect(error).toBeTruthy();
|
|
107
|
+
expect(error.message).toContain("returnUrl");
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
/**
|
|
111
|
+
* Sale for PayU APM without status url
|
|
112
|
+
* Verifies that a sale transaction using PayU APM throws an exception when the StatusUpdateUrl is missing
|
|
113
|
+
*/
|
|
114
|
+
test("payu apm for sale without status url", async () => {
|
|
115
|
+
const paymentMethod = new src_1.AlternativePaymentMethod(src_1.AlternativePaymentType.OB);
|
|
116
|
+
paymentMethod.returnUrl = RETURN_URL;
|
|
117
|
+
paymentMethod.descriptor = DESCRIPTOR;
|
|
118
|
+
paymentMethod.country = "PL";
|
|
119
|
+
paymentMethod.accountHolderName = ACCOUNT_NAME;
|
|
120
|
+
paymentMethod.bank = src_1.BankList.MBANK;
|
|
121
|
+
try {
|
|
122
|
+
await paymentMethod
|
|
123
|
+
.charge(AMOUNT)
|
|
124
|
+
.withCurrency(CURRENCY)
|
|
125
|
+
.withDescription(CHARGE_DESCRIPTION)
|
|
126
|
+
.execute("payuConfig");
|
|
127
|
+
fail("Should have thrown an error");
|
|
128
|
+
}
|
|
129
|
+
catch (error) {
|
|
130
|
+
expect(error).toBeTruthy();
|
|
131
|
+
expect(error.message).toContain("statusUpdateUrl");
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
/**
|
|
135
|
+
* Sale for PayU APM without bank code
|
|
136
|
+
* Verifies that a sale transaction using PayU APM throws an exception when the bank code is missing
|
|
137
|
+
*/
|
|
138
|
+
test("payu apm for sale without bank code", async () => {
|
|
139
|
+
const paymentMethod = new src_1.AlternativePaymentMethod(src_1.AlternativePaymentType.OB);
|
|
140
|
+
paymentMethod.returnUrl = RETURN_URL;
|
|
141
|
+
paymentMethod.statusUpdateUrl = STATUS_UPDATE_URL;
|
|
142
|
+
paymentMethod.descriptor = DESCRIPTOR;
|
|
143
|
+
paymentMethod.country = "PL";
|
|
144
|
+
paymentMethod.accountHolderName = ACCOUNT_NAME;
|
|
145
|
+
// bank is not set
|
|
146
|
+
try {
|
|
147
|
+
await paymentMethod
|
|
148
|
+
.charge(AMOUNT)
|
|
149
|
+
.withCurrency(CURRENCY)
|
|
150
|
+
.withDescription(CHARGE_DESCRIPTION)
|
|
151
|
+
.execute("payuConfig");
|
|
152
|
+
fail("Should have thrown an error");
|
|
153
|
+
}
|
|
154
|
+
catch (error) {
|
|
155
|
+
expect(error).toBeTruthy();
|
|
156
|
+
expect(error.message).toContain("bank");
|
|
157
|
+
}
|
|
158
|
+
});
|
|
159
|
+
/**
|
|
160
|
+
* Test all available PayU banks
|
|
161
|
+
* Validates that all banks in BankList enum can be used with PayU
|
|
162
|
+
*/
|
|
163
|
+
test("payu apm with all available banks", async () => {
|
|
164
|
+
const banks = [
|
|
165
|
+
src_1.BankList.PKOBANKPOLSKISA,
|
|
166
|
+
src_1.BankList.SANTANDER,
|
|
167
|
+
src_1.BankList.ING,
|
|
168
|
+
src_1.BankList.BANKPEKAOSA,
|
|
169
|
+
src_1.BankList.MBANK,
|
|
170
|
+
src_1.BankList.ALIOR,
|
|
171
|
+
src_1.BankList.BNPPARIBAS,
|
|
172
|
+
src_1.BankList.MILLENIUM,
|
|
173
|
+
src_1.BankList.CREDITAGRICOLE,
|
|
174
|
+
src_1.BankList.CITI,
|
|
175
|
+
src_1.BankList.INTELIGO,
|
|
176
|
+
src_1.BankList.BANKISPOLDZIELCZE,
|
|
177
|
+
src_1.BankList.BOSBANK,
|
|
178
|
+
src_1.BankList.NESTBANK,
|
|
179
|
+
src_1.BankList.VELOBANK,
|
|
180
|
+
src_1.BankList.BANKNOWYSA,
|
|
181
|
+
src_1.BankList.PLUSBANK,
|
|
182
|
+
src_1.BankList.BANKPOCZTOWY,
|
|
183
|
+
];
|
|
184
|
+
// Test with first bank only to avoid too many API calls
|
|
185
|
+
const paymentMethodDetails = new src_1.AlternativePaymentMethod(src_1.AlternativePaymentType.OB);
|
|
186
|
+
paymentMethodDetails.returnUrl = RETURN_URL;
|
|
187
|
+
paymentMethodDetails.statusUpdateUrl = STATUS_UPDATE_URL;
|
|
188
|
+
paymentMethodDetails.descriptor = DESCRIPTOR;
|
|
189
|
+
paymentMethodDetails.country = "PL";
|
|
190
|
+
paymentMethodDetails.accountHolderName = ACCOUNT_NAME;
|
|
191
|
+
paymentMethodDetails.bank = banks[0];
|
|
192
|
+
const response = await paymentMethodDetails
|
|
193
|
+
.charge(AMOUNT)
|
|
194
|
+
.withCurrency(CURRENCY)
|
|
195
|
+
.withDescription(CHARGE_DESCRIPTION)
|
|
196
|
+
.execute("payuConfig");
|
|
197
|
+
expect(response).toBeTruthy();
|
|
198
|
+
expect(response.responseCode).toBe("SUCCESS");
|
|
199
|
+
// Verify all banks are available
|
|
200
|
+
expect(banks.length).toBe(18);
|
|
201
|
+
});
|
|
202
|
+
/**
|
|
203
|
+
* Refund for PayU APM
|
|
204
|
+
* Validates a successful refund transaction using mock data
|
|
205
|
+
* Note: Mock data is returned by GpApiConnector to bypass CAPTURED status requirement
|
|
206
|
+
*/
|
|
207
|
+
test.only("payu apm refund", async () => {
|
|
208
|
+
const transactionId = "TRN_UzoOkHbMdtPgzcXOpOYw1QKURIDWOc_36707247266e";
|
|
209
|
+
const transaction = src_1.Transaction.fromId(transactionId, src_1.PaymentMethodType.APM);
|
|
210
|
+
transaction.alternativePaymentResponse = {
|
|
211
|
+
providerName: "payu",
|
|
212
|
+
redirectUrl: RETURN_URL,
|
|
213
|
+
};
|
|
214
|
+
const refundResponse = await transaction
|
|
215
|
+
.refund(AMOUNT)
|
|
216
|
+
.withCurrency(CURRENCY)
|
|
217
|
+
.execute("payuConfig");
|
|
218
|
+
expect(refundResponse).toBeTruthy();
|
|
219
|
+
expect(refundResponse.responseCode).toBe("SUCCESS");
|
|
220
|
+
expect(refundResponse.responseMessage).toBeTruthy();
|
|
221
|
+
});
|
|
222
|
+
/**
|
|
223
|
+
* Get PayU transaction by ID
|
|
224
|
+
* Validates retrieving a PayU transaction by its transaction ID
|
|
225
|
+
*/
|
|
226
|
+
test("get payu transaction by id", async () => {
|
|
227
|
+
const transactionId = "TRN_CDCycWtDFhAatA74DsDHmSh7DU8y2r_7c53e5f68000";
|
|
228
|
+
const transaction = await src_1.ReportingService.transactionDetail(transactionId).execute("payuConfig");
|
|
229
|
+
expect(transaction).toBeTruthy();
|
|
230
|
+
expect(transaction.transactionId).toBe(transactionId);
|
|
231
|
+
expect(transaction.alternativePaymentResponse).toBeTruthy();
|
|
232
|
+
});
|
|
233
|
+
/**
|
|
234
|
+
* PayU sale with invalid currency
|
|
235
|
+
* Verifies that PayU APM throws an error when using non-PLN currency
|
|
236
|
+
*/
|
|
237
|
+
test("payu apm with invalid currency", async () => {
|
|
238
|
+
const paymentMethodDetails = new src_1.AlternativePaymentMethod(src_1.AlternativePaymentType.OB);
|
|
239
|
+
paymentMethodDetails.returnUrl = RETURN_URL;
|
|
240
|
+
paymentMethodDetails.statusUpdateUrl = STATUS_UPDATE_URL;
|
|
241
|
+
paymentMethodDetails.descriptor = DESCRIPTOR;
|
|
242
|
+
paymentMethodDetails.country = "PL";
|
|
243
|
+
paymentMethodDetails.accountHolderName = ACCOUNT_NAME;
|
|
244
|
+
paymentMethodDetails.bank = src_1.BankList.SANTANDER;
|
|
245
|
+
try {
|
|
246
|
+
await paymentMethodDetails
|
|
247
|
+
.charge(AMOUNT)
|
|
248
|
+
.withCurrency("USD") // Invalid currency for PayU Poland
|
|
249
|
+
.withDescription(CHARGE_DESCRIPTION)
|
|
250
|
+
.execute("payuConfig");
|
|
251
|
+
fail("Should have thrown an error");
|
|
252
|
+
}
|
|
253
|
+
catch (error) {
|
|
254
|
+
expect(error).toBeTruthy();
|
|
255
|
+
// Error message will depend on API response
|
|
256
|
+
}
|
|
257
|
+
});
|
|
258
|
+
/**
|
|
259
|
+
* PayU sale with minimum amount
|
|
260
|
+
* Validates PayU transaction with minimum allowed amount
|
|
261
|
+
*/
|
|
262
|
+
test("payu apm with minimum amount", async () => {
|
|
263
|
+
const paymentMethodDetails = new src_1.AlternativePaymentMethod(src_1.AlternativePaymentType.OB);
|
|
264
|
+
paymentMethodDetails.returnUrl = RETURN_URL;
|
|
265
|
+
paymentMethodDetails.statusUpdateUrl = STATUS_UPDATE_URL;
|
|
266
|
+
paymentMethodDetails.descriptor = DESCRIPTOR;
|
|
267
|
+
paymentMethodDetails.country = "PL";
|
|
268
|
+
paymentMethodDetails.accountHolderName = ACCOUNT_NAME;
|
|
269
|
+
paymentMethodDetails.bank = src_1.BankList.SANTANDER;
|
|
270
|
+
const response = await paymentMethodDetails
|
|
271
|
+
.charge(1) // Minimum amount
|
|
272
|
+
.withCurrency(CURRENCY)
|
|
273
|
+
.withDescription(CHARGE_DESCRIPTION)
|
|
274
|
+
.execute("payuConfig");
|
|
275
|
+
expect(response).toBeTruthy();
|
|
276
|
+
expect(response.responseCode).toBe("SUCCESS");
|
|
277
|
+
});
|
|
278
|
+
/**
|
|
279
|
+
* PayU sale with large amount
|
|
280
|
+
* Validates PayU transaction with a larger amount
|
|
281
|
+
*/
|
|
282
|
+
test("payu apm with large amount", async () => {
|
|
283
|
+
const paymentMethodDetails = new src_1.AlternativePaymentMethod(src_1.AlternativePaymentType.OB);
|
|
284
|
+
paymentMethodDetails.returnUrl = RETURN_URL;
|
|
285
|
+
paymentMethodDetails.statusUpdateUrl = STATUS_UPDATE_URL;
|
|
286
|
+
paymentMethodDetails.descriptor = DESCRIPTOR;
|
|
287
|
+
paymentMethodDetails.country = "PL";
|
|
288
|
+
paymentMethodDetails.accountHolderName = ACCOUNT_NAME;
|
|
289
|
+
paymentMethodDetails.bank = src_1.BankList.SANTANDER;
|
|
290
|
+
const response = await paymentMethodDetails
|
|
291
|
+
.charge(1000) // Large amount
|
|
292
|
+
.withCurrency(CURRENCY)
|
|
293
|
+
.withDescription(CHARGE_DESCRIPTION)
|
|
294
|
+
.execute("payuConfig");
|
|
295
|
+
expect(response).toBeTruthy();
|
|
296
|
+
expect(response.responseCode).toBe("SUCCESS");
|
|
297
|
+
});
|
|
298
|
+
});
|
|
299
|
+
//# sourceMappingURL=PayUApm.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PayUApm.test.js","sourceRoot":"","sources":["../../../../../test/Integration/Gateways/GpApiConnector/PayUApm.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -117,10 +117,10 @@ test.skip("credit auth mobile - apple pay", async () => {
|
|
|
117
117
|
test.skip("credit auth mobile - google pay", async () => {
|
|
118
118
|
const encryptedCard = new src_1.CreditCardData();
|
|
119
119
|
// tslint:disable-next-line:max-line-length
|
|
120
|
-
encryptedCard.token = `{
|
|
121
|
-
"signature": "MEQCIAv8iIZmQK95xMrruLLLvJ2/uGuq54SSq190WS62M4a4AiAQhRwPHt3HXaOtCUYphfZLhIRznbF3TWxXLfPCGoutTQ==",
|
|
122
|
-
"protocolVersion": "ECv1",
|
|
123
|
-
"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"}"
|
|
120
|
+
encryptedCard.token = `{
|
|
121
|
+
"signature": "MEQCIAv8iIZmQK95xMrruLLLvJ2/uGuq54SSq190WS62M4a4AiAQhRwPHt3HXaOtCUYphfZLhIRznbF3TWxXLfPCGoutTQ==",
|
|
122
|
+
"protocolVersion": "ECv1",
|
|
123
|
+
"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"}"
|
|
124
124
|
}`;
|
|
125
125
|
encryptedCard.mobileType = "pay-with-google";
|
|
126
126
|
const missingAmountError = expect(() => encryptedCard
|
|
@@ -78,14 +78,14 @@ test("ecom with secure ecommerce", async () => {
|
|
|
78
78
|
test.skip("ecom with walletdata", async () => {
|
|
79
79
|
card.mobileType = src_1.MobilePaymentMethodType.GOOGLEPAY;
|
|
80
80
|
card.paymentSource = src_1.PaymentDataSourceType.GOOGLEPAYWEB;
|
|
81
|
-
card.token = `{
|
|
82
|
-
"signature": "MEQCICd1jRuaiWW5z9olPR+xBi6Z7CmW019Ys+EOKO2RIgy9AiA2d/hWKuRYtayJl//Cc1r2wifxv69lRrRHTTPbelKhzA==",
|
|
83
|
-
"protocolVersion": "ECv1",
|
|
84
|
-
"signedMessage": {
|
|
85
|
-
"encryptedMessage": "wuSFSWEDYmECYdL57Glj1jtQ4hVN69cp82vsXyWN7Nw05ocSTqh6dYBb1FRboq1IjYhPf4MPOliBSJHugiHbeYilrT8HeXD+cU+rF9nNtucMFjMIFltik9aOSnpM0E8t9AJ60CFBwLebhHXvA53TlrziBTCQbhoVk2IAMO/tJKl1mI5rR+7sUI+BlIXFBcUba6T8eLz4z7wYwPxuBptP20u5C5QqMV5kY4aF6mCKwbLT5AzDLBiKA+eW9VtlP9icuxigYMOTP6wsrdiW7FMtHc0o3/MnBpZwWRpcponfnoNQnQMjOSiROZVHcHUK0i/lFUJg9p1Xi20qSyXIjq2WjCF7hSoDw1KzRnYO7uyx1yHN9vmLo+NqVfipRSpT7AtBt9CR8yHQftNQlady+VKSIhmigPTXVIapIf7CA27hiRysVGpWbrMZrJJYilFXh6eFPbk2",
|
|
86
|
-
"ephemeralPublicKey": "BFe4YpEa1hfmaYlcWR4eyVxZmanOCzDak9yy90PCIAfIMeeRCT9zX5KAnj2k/vWa+oZIv1McjgBIKAp/BoWKNkM=",
|
|
87
|
-
"tag": "IpXW8ECpNCLzN36M3S7nbQ1YnXxDeMx1RLwElW0xCg0="
|
|
88
|
-
}
|
|
81
|
+
card.token = `{
|
|
82
|
+
"signature": "MEQCICd1jRuaiWW5z9olPR+xBi6Z7CmW019Ys+EOKO2RIgy9AiA2d/hWKuRYtayJl//Cc1r2wifxv69lRrRHTTPbelKhzA==",
|
|
83
|
+
"protocolVersion": "ECv1",
|
|
84
|
+
"signedMessage": {
|
|
85
|
+
"encryptedMessage": "wuSFSWEDYmECYdL57Glj1jtQ4hVN69cp82vsXyWN7Nw05ocSTqh6dYBb1FRboq1IjYhPf4MPOliBSJHugiHbeYilrT8HeXD+cU+rF9nNtucMFjMIFltik9aOSnpM0E8t9AJ60CFBwLebhHXvA53TlrziBTCQbhoVk2IAMO/tJKl1mI5rR+7sUI+BlIXFBcUba6T8eLz4z7wYwPxuBptP20u5C5QqMV5kY4aF6mCKwbLT5AzDLBiKA+eW9VtlP9icuxigYMOTP6wsrdiW7FMtHc0o3/MnBpZwWRpcponfnoNQnQMjOSiROZVHcHUK0i/lFUJg9p1Xi20qSyXIjq2WjCF7hSoDw1KzRnYO7uyx1yHN9vmLo+NqVfipRSpT7AtBt9CR8yHQftNQlady+VKSIhmigPTXVIapIf7CA27hiRysVGpWbrMZrJJYilFXh6eFPbk2",
|
|
86
|
+
"ephemeralPublicKey": "BFe4YpEa1hfmaYlcWR4eyVxZmanOCzDak9yy90PCIAfIMeeRCT9zX5KAnj2k/vWa+oZIv1McjgBIKAp/BoWKNkM=",
|
|
87
|
+
"tag": "IpXW8ECpNCLzN36M3S7nbQ1YnXxDeMx1RLwElW0xCg0="
|
|
88
|
+
}
|
|
89
89
|
}`;
|
|
90
90
|
const response = await card
|
|
91
91
|
.charge(10)
|
package/package.json
CHANGED
|
@@ -1,63 +1,63 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "globalpayments-api",
|
|
3
|
-
"version" : "3.10.
|
|
4
|
-
"description": "Global Payments SDK for NodeJS for Global Payments eCommerce gateways",
|
|
5
|
-
"author": "Global Payments",
|
|
6
|
-
"license": "GPL-2.0",
|
|
7
|
-
"engines": {
|
|
8
|
-
"node": ">=16.20.2"
|
|
9
|
-
},
|
|
10
|
-
"repository": {
|
|
11
|
-
"type": "git",
|
|
12
|
-
"url": "https://github.com/globalpayments/node-sdk.git"
|
|
13
|
-
},
|
|
14
|
-
"main": "./lib/src/index.js",
|
|
15
|
-
"typings": "./lib/src/index",
|
|
16
|
-
"scripts": {
|
|
17
|
-
"build": "tsc",
|
|
18
|
-
"test:jest": "jest",
|
|
19
|
-
"test:serial": "jest --runInBand test/Integration/Gateways/GpApiConnector/
|
|
20
|
-
"build:netsuite": "webpack --env.GP_NETSUITE_BUILD --config config/webpack.netsuite.js && node bin/netsuite-post.js",
|
|
21
|
-
"build:clean": "rimraf lib",
|
|
22
|
-
"docs": "typedoc --mode file --name \"GlobalPayments.Api\" --project tsconfig.json --out docs src",
|
|
23
|
-
"format": "prettier --write --config .prettierrc 'src/**/*.ts' 'test/**/*.ts' '*.md'",
|
|
24
|
-
"prebuild": "npm-run-all test:lint",
|
|
25
|
-
"prepublish": "npm-run-all build",
|
|
26
|
-
"prepublishOnly": "npm-run-all build",
|
|
27
|
-
"pretest": "npm-run-all build:clean test:lint build",
|
|
28
|
-
"test:lint": "eslint \"src/**/*.ts*\" \"test/**/*.ts\" --fix"
|
|
29
|
-
},
|
|
30
|
-
"dependencies": {
|
|
31
|
-
"@azz/elementtree": "^0.1.6",
|
|
32
|
-
"es6-promise": "^4.2.8",
|
|
33
|
-
"eslint-config-prettier": "^9.0.0",
|
|
34
|
-
"sha1": "^1.1.1",
|
|
35
|
-
"typedarray": "^0.0.6",
|
|
36
|
-
"url": "^0.11.0"
|
|
37
|
-
},
|
|
38
|
-
"devDependencies": {
|
|
39
|
-
"@hitc/netsuite-types": "^2017.2.32",
|
|
40
|
-
"@types/jest": "^29.5.12",
|
|
41
|
-
"@types/node": "20.6.0",
|
|
42
|
-
"@typescript-eslint/eslint-plugin": "^6.7.3",
|
|
43
|
-
"@typescript-eslint/parser": "^6.7.3",
|
|
44
|
-
"eslint": "^8.50.0",
|
|
45
|
-
"eslint-plugin-prettier": "^5.0.0",
|
|
46
|
-
"jest": "^29.7.0",
|
|
47
|
-
"npm-run-all": "^4.1.5",
|
|
48
|
-
"prettier": "3.0.3",
|
|
49
|
-
"rimraf": "^2.6.3",
|
|
50
|
-
"ts-jest": "^29.1.5",
|
|
51
|
-
"tslint": "^6.1.3",
|
|
52
|
-
"typedoc": "0.25.1",
|
|
53
|
-
"typescript": "5.2.2",
|
|
54
|
-
"webpack": "^5.94.0"
|
|
55
|
-
},
|
|
56
|
-
"files": [
|
|
57
|
-
"lib/src/**",
|
|
58
|
-
"lib/test/**",
|
|
59
|
-
"appsec.properties",
|
|
60
|
-
"CHANGELOG.md"
|
|
61
|
-
],
|
|
62
|
-
"packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e"
|
|
63
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "globalpayments-api",
|
|
3
|
+
"version" : "3.10.11",
|
|
4
|
+
"description": "Global Payments SDK for NodeJS for Global Payments eCommerce gateways",
|
|
5
|
+
"author": "Global Payments",
|
|
6
|
+
"license": "GPL-2.0",
|
|
7
|
+
"engines": {
|
|
8
|
+
"node": ">=16.20.2"
|
|
9
|
+
},
|
|
10
|
+
"repository": {
|
|
11
|
+
"type": "git",
|
|
12
|
+
"url": "https://github.com/globalpayments/node-sdk.git"
|
|
13
|
+
},
|
|
14
|
+
"main": "./lib/src/index.js",
|
|
15
|
+
"typings": "./lib/src/index",
|
|
16
|
+
"scripts": {
|
|
17
|
+
"build": "tsc",
|
|
18
|
+
"test:jest": "jest",
|
|
19
|
+
"test:serial": "jest --runInBand test/Integration/Gateways/GpApiConnector/PayUApm.test.ts",
|
|
20
|
+
"build:netsuite": "webpack --env.GP_NETSUITE_BUILD --config config/webpack.netsuite.js && node bin/netsuite-post.js",
|
|
21
|
+
"build:clean": "rimraf lib",
|
|
22
|
+
"docs": "typedoc --mode file --name \"GlobalPayments.Api\" --project tsconfig.json --out docs src",
|
|
23
|
+
"format": "prettier --write --config .prettierrc 'src/**/*.ts' 'test/**/*.ts' '*.md'",
|
|
24
|
+
"prebuild": "npm-run-all test:lint",
|
|
25
|
+
"prepublish": "npm-run-all build",
|
|
26
|
+
"prepublishOnly": "npm-run-all build",
|
|
27
|
+
"pretest": "npm-run-all build:clean test:lint build",
|
|
28
|
+
"test:lint": "eslint \"src/**/*.ts*\" \"test/**/*.ts\" --fix"
|
|
29
|
+
},
|
|
30
|
+
"dependencies": {
|
|
31
|
+
"@azz/elementtree": "^0.1.6",
|
|
32
|
+
"es6-promise": "^4.2.8",
|
|
33
|
+
"eslint-config-prettier": "^9.0.0",
|
|
34
|
+
"sha1": "^1.1.1",
|
|
35
|
+
"typedarray": "^0.0.6",
|
|
36
|
+
"url": "^0.11.0"
|
|
37
|
+
},
|
|
38
|
+
"devDependencies": {
|
|
39
|
+
"@hitc/netsuite-types": "^2017.2.32",
|
|
40
|
+
"@types/jest": "^29.5.12",
|
|
41
|
+
"@types/node": "20.6.0",
|
|
42
|
+
"@typescript-eslint/eslint-plugin": "^6.7.3",
|
|
43
|
+
"@typescript-eslint/parser": "^6.7.3",
|
|
44
|
+
"eslint": "^8.50.0",
|
|
45
|
+
"eslint-plugin-prettier": "^5.0.0",
|
|
46
|
+
"jest": "^29.7.0",
|
|
47
|
+
"npm-run-all": "^4.1.5",
|
|
48
|
+
"prettier": "3.0.3",
|
|
49
|
+
"rimraf": "^2.6.3",
|
|
50
|
+
"ts-jest": "^29.1.5",
|
|
51
|
+
"tslint": "^6.1.3",
|
|
52
|
+
"typedoc": "0.25.1",
|
|
53
|
+
"typescript": "5.2.2",
|
|
54
|
+
"webpack": "^5.94.0"
|
|
55
|
+
},
|
|
56
|
+
"files": [
|
|
57
|
+
"lib/src/**",
|
|
58
|
+
"lib/test/**",
|
|
59
|
+
"appsec.properties",
|
|
60
|
+
"CHANGELOG.md"
|
|
61
|
+
],
|
|
62
|
+
"packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e"
|
|
63
|
+
}
|