globalpayments-api 3.3.2 → 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.
Files changed (157) hide show
  1. package/CHANGELOG.md +15 -1
  2. package/lib/src/Builders/AuthorizationBuilder.d.ts +16 -1
  3. package/lib/src/Builders/AuthorizationBuilder.js +28 -0
  4. package/lib/src/Builders/AuthorizationBuilder.js.map +1 -1
  5. package/lib/src/Builders/ManagementBuilder.d.ts +16 -2
  6. package/lib/src/Builders/ManagementBuilder.js +23 -2
  7. package/lib/src/Builders/ManagementBuilder.js.map +1 -1
  8. package/lib/src/Builders/ReportBuilder.d.ts +3 -1
  9. package/lib/src/Builders/ReportBuilder.js +6 -0
  10. package/lib/src/Builders/ReportBuilder.js.map +1 -1
  11. package/lib/src/Builders/RequestBuilder/GpApi/AccessTokenRequest.d.ts +2 -2
  12. package/lib/src/Builders/RequestBuilder/GpApi/AccessTokenRequest.js +3 -3
  13. package/lib/src/Builders/RequestBuilder/GpApi/AccessTokenRequest.js.map +1 -1
  14. package/lib/src/Builders/RequestBuilder/GpApi/GpApiAuthorizationRequestBuilder.d.ts +19 -2
  15. package/lib/src/Builders/RequestBuilder/GpApi/GpApiAuthorizationRequestBuilder.js +376 -3
  16. package/lib/src/Builders/RequestBuilder/GpApi/GpApiAuthorizationRequestBuilder.js.map +1 -1
  17. package/lib/src/Builders/RequestBuilder/GpApi/GpApiManagementRequestBuilder.d.ts +7 -0
  18. package/lib/src/Builders/RequestBuilder/GpApi/GpApiManagementRequestBuilder.js +71 -0
  19. package/lib/src/Builders/RequestBuilder/GpApi/GpApiManagementRequestBuilder.js.map +1 -0
  20. package/lib/src/Builders/RequestBuilder/GpApi/GpApiReportRequestBuilder.d.ts +10 -0
  21. package/lib/src/Builders/RequestBuilder/GpApi/GpApiReportRequestBuilder.js +89 -0
  22. package/lib/src/Builders/RequestBuilder/GpApi/GpApiReportRequestBuilder.js.map +1 -0
  23. package/lib/src/Builders/RequestBuilder/GpApi/GpApiSessionInfo.d.ts +1 -1
  24. package/lib/src/Builders/RequestBuilder/GpApi/GpApiSessionInfo.js +1 -1
  25. package/lib/src/Builders/RequestBuilder/GpApi/GpApiSessionInfo.js.map +1 -1
  26. package/lib/src/Builders/RequestBuilder/RequestBuilderFactory.d.ts +3 -2
  27. package/lib/src/Builders/RequestBuilder/RequestBuilderFactory.js +4 -0
  28. package/lib/src/Builders/RequestBuilder/RequestBuilderFactory.js.map +1 -1
  29. package/lib/src/Builders/TransactionReportBuilder.d.ts +5 -1
  30. package/lib/src/Builders/TransactionReportBuilder.js +22 -0
  31. package/lib/src/Builders/TransactionReportBuilder.js.map +1 -1
  32. package/lib/src/Entities/Address.d.ts +1 -0
  33. package/lib/src/Entities/Address.js +1 -0
  34. package/lib/src/Entities/Address.js.map +1 -1
  35. package/lib/src/Entities/Card.d.ts +36 -0
  36. package/lib/src/Entities/Card.js +41 -0
  37. package/lib/src/Entities/Card.js.map +1 -0
  38. package/lib/src/Entities/CardIssuerResponse.d.ts +22 -0
  39. package/lib/src/Entities/CardIssuerResponse.js +27 -0
  40. package/lib/src/Entities/CardIssuerResponse.js.map +1 -0
  41. package/lib/src/Entities/Customer.d.ts +10 -0
  42. package/lib/src/Entities/Customer.js +14 -0
  43. package/lib/src/Entities/Customer.js.map +1 -1
  44. package/lib/src/Entities/Enums.d.ts +131 -4
  45. package/lib/src/Entities/Enums.js +135 -2
  46. package/lib/src/Entities/Enums.js.map +1 -1
  47. package/lib/src/Entities/FraudRule.d.ts +8 -0
  48. package/lib/src/Entities/FraudRule.js +17 -0
  49. package/lib/src/Entities/FraudRule.js.map +1 -0
  50. package/lib/src/Entities/GpApi/DTO/Card.d.ts +16 -0
  51. package/lib/src/Entities/GpApi/DTO/Card.js +21 -0
  52. package/lib/src/Entities/GpApi/DTO/Card.js.map +1 -0
  53. package/lib/src/Entities/GpApi/DTO/PaymentMethod.d.ts +17 -0
  54. package/lib/src/Entities/GpApi/DTO/PaymentMethod.js +21 -0
  55. package/lib/src/Entities/GpApi/DTO/PaymentMethod.js.map +1 -0
  56. package/lib/src/Entities/GpApi/DTO/index.d.ts +2 -0
  57. package/lib/src/Entities/GpApi/DTO/index.js +19 -0
  58. package/lib/src/Entities/GpApi/DTO/index.js.map +1 -0
  59. package/lib/src/Entities/GpApi/PageResult.d.ts +8 -0
  60. package/lib/src/Entities/GpApi/PageResult.js +13 -0
  61. package/lib/src/Entities/GpApi/PageResult.js.map +1 -0
  62. package/lib/src/Entities/GpApi/index.d.ts +1 -0
  63. package/lib/src/Entities/GpApi/index.js +1 -0
  64. package/lib/src/Entities/GpApi/index.js.map +1 -1
  65. package/lib/src/Entities/IRequestBuilder.d.ts +3 -3
  66. package/lib/src/Entities/MaskedValueCollection.d.ts +3 -3
  67. package/lib/src/Entities/MaskedValueCollection.js +1 -1
  68. package/lib/src/Entities/MaskedValueCollection.js.map +1 -1
  69. package/lib/src/Entities/PayerDetails.d.ts +8 -0
  70. package/lib/src/Entities/PayerDetails.js +12 -0
  71. package/lib/src/Entities/PayerDetails.js.map +1 -0
  72. package/lib/src/Entities/PhoneNumber.d.ts +6 -0
  73. package/lib/src/Entities/PhoneNumber.js +15 -0
  74. package/lib/src/Entities/PhoneNumber.js.map +1 -0
  75. package/lib/src/Entities/RecurringEntity.js +2 -2
  76. package/lib/src/Entities/RecurringEntity.js.map +1 -1
  77. package/lib/src/Entities/Reporting/SearchCriteriaBuilder.d.ts +105 -0
  78. package/lib/src/Entities/Reporting/SearchCriteriaBuilder.js +122 -0
  79. package/lib/src/Entities/Reporting/SearchCriteriaBuilder.js.map +1 -0
  80. package/lib/src/Entities/Reporting/StoredPaymentMethodSummary.d.ts +11 -0
  81. package/lib/src/Entities/Reporting/StoredPaymentMethodSummary.js +16 -0
  82. package/lib/src/Entities/Reporting/StoredPaymentMethodSummary.js.map +1 -0
  83. package/lib/src/Entities/Reporting/index.d.ts +2 -0
  84. package/lib/src/Entities/Reporting/index.js +19 -0
  85. package/lib/src/Entities/Reporting/index.js.map +1 -0
  86. package/lib/src/Entities/Transaction.d.ts +7 -1
  87. package/lib/src/Entities/Transaction.js +7 -1
  88. package/lib/src/Entities/Transaction.js.map +1 -1
  89. package/lib/src/Entities/TransactionStatus.d.ts +13 -0
  90. package/lib/src/Entities/TransactionStatus.js +29 -0
  91. package/lib/src/Entities/TransactionStatus.js.map +1 -0
  92. package/lib/src/Entities/index.d.ts +7 -0
  93. package/lib/src/Entities/index.js +7 -0
  94. package/lib/src/Entities/index.js.map +1 -1
  95. package/lib/src/Gateways/Gateway.js +2 -5
  96. package/lib/src/Gateways/Gateway.js.map +1 -1
  97. package/lib/src/Gateways/GpApiConnector.js +11 -6
  98. package/lib/src/Gateways/GpApiConnector.js.map +1 -1
  99. package/lib/src/Gateways/PayPlanConnector.d.ts +1 -1
  100. package/lib/src/Gateways/PayPlanConnector.js +24 -11
  101. package/lib/src/Gateways/PayPlanConnector.js.map +1 -1
  102. package/lib/src/Gateways/PorticoConnector.js +2 -2
  103. package/lib/src/Gateways/PorticoConnector.js.map +1 -1
  104. package/lib/src/Gateways/RestGateway.d.ts +1 -1
  105. package/lib/src/Gateways/RestGateway.js +21 -3
  106. package/lib/src/Gateways/RestGateway.js.map +1 -1
  107. package/lib/src/Gateways/XmlGateway.js +6 -1
  108. package/lib/src/Gateways/XmlGateway.js.map +1 -1
  109. package/lib/src/Gateways/https-wrapper.js +6 -2
  110. package/lib/src/Gateways/https-wrapper.js.map +1 -1
  111. package/lib/src/Mapping/EnumMapping.d.ts +8 -0
  112. package/lib/src/Mapping/EnumMapping.js +84 -0
  113. package/lib/src/Mapping/EnumMapping.js.map +1 -0
  114. package/lib/src/Mapping/GpApiMapping.d.ts +8 -2
  115. package/lib/src/Mapping/GpApiMapping.js +178 -2
  116. package/lib/src/Mapping/GpApiMapping.js.map +1 -1
  117. package/lib/src/Mapping/index.d.ts +1 -0
  118. package/lib/src/Mapping/index.js +1 -0
  119. package/lib/src/Mapping/index.js.map +1 -1
  120. package/lib/src/PaymentMethods/AlternativePaymentMethod.d.ts +22 -0
  121. package/lib/src/PaymentMethods/AlternativePaymentMethod.js +47 -0
  122. package/lib/src/PaymentMethods/AlternativePaymentMethod.js.map +1 -0
  123. package/lib/src/PaymentMethods/Credit.d.ts +26 -2
  124. package/lib/src/PaymentMethods/Credit.js +58 -2
  125. package/lib/src/PaymentMethods/Credit.js.map +1 -1
  126. package/lib/src/PaymentMethods/Interfaces.d.ts +5 -1
  127. package/lib/src/PaymentMethods/PaymentMethod.d.ts +1 -1
  128. package/lib/src/PaymentMethods/PaymentMethod.js.map +1 -1
  129. package/lib/src/PaymentMethods/RecurringPaymentMethod.d.ts +3 -1
  130. package/lib/src/PaymentMethods/RecurringPaymentMethod.js +3 -0
  131. package/lib/src/PaymentMethods/RecurringPaymentMethod.js.map +1 -1
  132. package/lib/src/PaymentMethods/index.d.ts +2 -0
  133. package/lib/src/PaymentMethods/index.js +2 -0
  134. package/lib/src/PaymentMethods/index.js.map +1 -1
  135. package/lib/src/ServiceConfigs/Gateways/GpApiConfig.d.ts +2 -2
  136. package/lib/src/ServiceConfigs/Gateways/GpApiConfig.js +1 -1
  137. package/lib/src/ServiceConfigs/Gateways/GpApiConfig.js.map +1 -1
  138. package/lib/src/Services/ReportingService.d.ts +2 -0
  139. package/lib/src/Services/ReportingService.js +6 -0
  140. package/lib/src/Services/ReportingService.js.map +1 -1
  141. package/lib/src/Utils/Logging/ProtectSensitiveData.d.ts +1 -1
  142. package/lib/src/Utils/Logging/ProtectSensitiveData.js.map +1 -1
  143. package/lib/src/Utils/StringUtils.d.ts +9 -0
  144. package/lib/src/Utils/StringUtils.js +29 -0
  145. package/lib/src/Utils/StringUtils.js.map +1 -1
  146. package/lib/test/Data/BaseGpApiTestConfig.d.ts +2 -2
  147. package/lib/test/Data/BaseGpApiTestConfig.js +4 -0
  148. package/lib/test/Data/BaseGpApiTestConfig.js.map +1 -1
  149. package/lib/test/Integration/Gateways/GpApiConnector/AccessTokenTest.js +17 -10
  150. package/lib/test/Integration/Gateways/GpApiConnector/AccessTokenTest.js.map +1 -1
  151. package/lib/test/Integration/Gateways/GpApiConnector/CreditCardNotPresentTest.d.ts +1 -0
  152. package/lib/test/Integration/Gateways/GpApiConnector/CreditCardNotPresentTest.js +360 -0
  153. package/lib/test/Integration/Gateways/GpApiConnector/CreditCardNotPresentTest.js.map +1 -0
  154. package/lib/test/Integration/Gateways/GpApiConnector/ReportingStoredPaymentMethodsTest.d.ts +1 -0
  155. package/lib/test/Integration/Gateways/GpApiConnector/ReportingStoredPaymentMethodsTest.js +217 -0
  156. package/lib/test/Integration/Gateways/GpApiConnector/ReportingStoredPaymentMethodsTest.js.map +1 -0
  157. package/package.json +2 -2
@@ -3,4 +3,13 @@ export declare class StringUtils {
3
3
  static uuid(): string;
4
4
  static btoa(t: string): string;
5
5
  static atob(t: string): string;
6
+ /**
7
+ * Strip all non-numeric characters
8
+ *
9
+ * @param value - The input string
10
+ * @returns The string with non-numeric characters removed
11
+ */
12
+ static validateToNumber(value: string): string;
13
+ static toAmount(str: string | null | undefined): string;
14
+ static toNumeric(value: string | null): string;
6
15
  }
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.StringUtils = void 0;
4
+ const src_1 = require("../../src");
4
5
  class StringUtils {
5
6
  static leftPad(source, length, padString) {
6
7
  if (!source) {
@@ -46,6 +47,34 @@ class StringUtils {
46
47
  }
47
48
  return new Buffer(t, "base64").toString("ascii");
48
49
  }
50
+ /**
51
+ * Strip all non-numeric characters
52
+ *
53
+ * @param value - The input string
54
+ * @returns The string with non-numeric characters removed
55
+ */
56
+ static validateToNumber(value) {
57
+ return value.replace(/[^0-9]/g, "");
58
+ }
59
+ static toAmount(str) {
60
+ if (!str) {
61
+ return "0";
62
+ }
63
+ return (parseFloat(str) / 100).toString();
64
+ }
65
+ static toNumeric(value) {
66
+ if (value === null) {
67
+ return "";
68
+ }
69
+ if (String(value) === "0") {
70
+ return "000";
71
+ }
72
+ if (isNaN(parseFloat(value)) && !isFinite(parseFloat(value))) {
73
+ throw new src_1.ArgumentError("A non well formed numeric value encountered!");
74
+ }
75
+ const f = parseFloat(value.toString()) * 100;
76
+ return parseFloat(f.toFixed(2)).toString();
77
+ }
49
78
  }
50
79
  exports.StringUtils = StringUtils;
51
80
  //# sourceMappingURL=StringUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StringUtils.js","sourceRoot":"","sources":["../../../src/Utils/StringUtils.ts"],"names":[],"mappings":";;;AAAA,MAAa,WAAW;IACf,MAAM,CAAC,OAAO,CACnB,MAAc,EACd,MAAc,EACd,SAAiB;QAEjB,IAAI,CAAC,MAAM,EAAE;YACX,OAAO,MAAM,CAAC;SACf;QACD,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACrC,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;IAC/D,CAAC;IAEM,MAAM,CAAC,IAAI;QAChB,6DAA6D;QAC7D,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,IAAI,EAAE,CAAC;QACP,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE;YAC7B,QAAQ,EAAE,EAAE;gBACV,KAAK,CAAC,CAAC;gBACP,KAAK,EAAE;oBACL,IAAI,IAAI,GAAG,CAAC;oBACZ,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;oBAChD,MAAM;gBACR,KAAK,EAAE;oBACL,IAAI,IAAI,GAAG,CAAC;oBACZ,IAAI,IAAI,GAAG,CAAC;oBACZ,MAAM;gBACR,KAAK,EAAE;oBACL,IAAI,IAAI,GAAG,CAAC;oBACZ,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;oBAC/C,MAAM;gBACR;oBACE,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;aACnD;SACF;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,MAAM,CAAC,IAAI,CAAC,CAAS;QAC1B,IAAI,MAAM,CAAC,IAAI,EAAE;YACf,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;SACnD;QAED,OAAO,IAAI,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACnD,CAAC;IAEM,MAAM,CAAC,IAAI,CAAC,CAAS;QAC1B,IAAI,MAAM,CAAC,IAAI,EAAE;YACf,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;SACnD;QAED,OAAO,IAAI,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACnD,CAAC;CACF;AAtDD,kCAsDC"}
1
+ {"version":3,"file":"StringUtils.js","sourceRoot":"","sources":["../../../src/Utils/StringUtils.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { GpApiConfig } from "../../src";
1
+ import { Channel, GpApiConfig } from "../../src";
2
2
  export declare class BaseGpApiTestConfig {
3
3
  static PARTNER_SOLUTION_APP_ID: string;
4
4
  static PARTNER_SOLUTION_APP_KEY: string;
@@ -9,6 +9,6 @@ export declare class BaseGpApiTestConfig {
9
9
  private static dynamicHeaderEnabled;
10
10
  private static permissionsEnabled;
11
11
  private static logEnabled;
12
- static gpApiSetupConfig(channel: string): GpApiConfig;
12
+ static gpApiSetupConfig(channel: Channel): GpApiConfig;
13
13
  static resetGpApiConfig(): void;
14
14
  }
@@ -19,6 +19,10 @@ class BaseGpApiTestConfig {
19
19
  config.environment = src_1.Environment.Test;
20
20
  config.channel = channel;
21
21
  config.country = "US";
22
+ config.accessTokenInfo = new src_1.AccessTokenInfo();
23
+ config.accessTokenInfo.transactionProcessingAccountName =
24
+ "transaction_processing";
25
+ config.accessTokenInfo.riskAssessmentAccountName = "EOS_RiskAssessment";
22
26
  config.challengeNotificationUrl = "https://ensi808o85za.x.pipedream.net/";
23
27
  config.methodNotificationUrl = "https://ensi808o85za.x.pipedream.net/";
24
28
  config.merchantContactUrl = "https://ensi808o85za.x.pipedream.net/";
@@ -1 +1 @@
1
- {"version":3,"file":"BaseGpApiTestConfig.js","sourceRoot":"","sources":["../../../test/Data/BaseGpApiTestConfig.ts"],"names":[],"mappings":";;;AAAA,mCAMmB;AAEnB,MAAa,mBAAmB;IACvB,MAAM,CAAC,uBAAuB,GACnC,kCAAkC,CAAC;IAC9B,MAAM,CAAC,wBAAwB,GAAW,kBAAkB,CAAC;IAE7D,MAAM,CAAC,KAAK,GAAW,kCAAkC,CAAC;IAC1D,MAAM,CAAC,MAAM,GAAW,kBAAkB,CAAC;IAE3C,MAAM,CAAC,qBAAqB,GACjC,kCAAkC,CAAC;IAC9B,MAAM,CAAC,sBAAsB,GAAW,kBAAkB,CAAC;IAE1D,MAAM,CAAC,oBAAoB,GAAY,KAAK,CAAC;IAC7C,MAAM,CAAC,kBAAkB,GAAY,KAAK,CAAC;IAE3C,MAAM,CAAC,UAAU,GAAY,IAAI,CAAC;IAEnC,MAAM,CAAC,gBAAgB,CAAC,OAAe;QAC5C,MAAM,MAAM,GAAG,IAAI,iBAAW,EAAE,CAAC;QACjC,MAAM,CAAC,KAAK,GAAG,mBAAmB,CAAC,KAAK,CAAC;QACzC,MAAM,CAAC,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC;QAC3C,MAAM,CAAC,WAAW,GAAG,iBAAW,CAAC,IAAI,CAAC;QACtC,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;QACzB,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;QAEtB,MAAM,CAAC,wBAAwB,GAAG,uCAAuC,CAAC;QAC1E,MAAM,CAAC,qBAAqB,GAAG,uCAAuC,CAAC;QACvE,MAAM,CAAC,kBAAkB,GAAG,uCAAuC,CAAC;QAEpE,IAAI,mBAAmB,CAAC,oBAAoB,EAAE;YAC5C,MAAM,CAAC,cAAc,GAAG;gBACtB,eAAe,EAAE,0BAA0B;gBAC3C,gBAAgB,EAAE,wBAAwB;aAC3C,CAAC;SACH;QAED,IAAI,mBAAmB,CAAC,kBAAkB,EAAE;YAC1C,MAAM,CAAC,WAAW,GAAG,CAAC,oBAAoB,CAAC,CAAC;SAC7C;QAED,IAAI,mBAAmB,CAAC,UAAU,EAAE;YAClC,MAAM,CAAC,aAAa,GAAG,IAAI,yBAAmB,CAAC,IAAI,YAAM,CAAC,MAAM,CAAC,CAAC,CAAC;SACpE;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,gBAAgB;QACrB,uBAAiB,CAAC,mBAAmB,EAAE,CAAC;QACxC,mBAAmB,CAAC,KAAK,GAAG,mBAAmB,CAAC,KAAK,CAAC;QACtD,mBAAmB,CAAC,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC;IAC1D,CAAC;;AAnDH,kDAoDC"}
1
+ {"version":3,"file":"BaseGpApiTestConfig.js","sourceRoot":"","sources":["../../../test/Data/BaseGpApiTestConfig.ts"],"names":[],"mappings":";;;AAAA,mCAQmB;AAEnB,MAAa,mBAAmB;IACvB,MAAM,CAAC,uBAAuB,GACnC,kCAAkC,CAAC;IAC9B,MAAM,CAAC,wBAAwB,GAAW,kBAAkB,CAAC;IAE7D,MAAM,CAAC,KAAK,GAAW,kCAAkC,CAAC;IAC1D,MAAM,CAAC,MAAM,GAAW,kBAAkB,CAAC;IAE3C,MAAM,CAAC,qBAAqB,GACjC,kCAAkC,CAAC;IAC9B,MAAM,CAAC,sBAAsB,GAAW,kBAAkB,CAAC;IAE1D,MAAM,CAAC,oBAAoB,GAAY,KAAK,CAAC;IAC7C,MAAM,CAAC,kBAAkB,GAAY,KAAK,CAAC;IAE3C,MAAM,CAAC,UAAU,GAAY,IAAI,CAAC;IAEnC,MAAM,CAAC,gBAAgB,CAAC,OAAgB;QAC7C,MAAM,MAAM,GAAG,IAAI,iBAAW,EAAE,CAAC;QACjC,MAAM,CAAC,KAAK,GAAG,mBAAmB,CAAC,KAAK,CAAC;QACzC,MAAM,CAAC,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC;QAC3C,MAAM,CAAC,WAAW,GAAG,iBAAW,CAAC,IAAI,CAAC;QACtC,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;QACzB,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;QACtB,MAAM,CAAC,eAAe,GAAG,IAAI,qBAAe,EAAE,CAAC;QAC/C,MAAM,CAAC,eAAe,CAAC,gCAAgC;YACrD,wBAAwB,CAAC;QAC3B,MAAM,CAAC,eAAe,CAAC,yBAAyB,GAAG,oBAAoB,CAAC;QAExE,MAAM,CAAC,wBAAwB,GAAG,uCAAuC,CAAC;QAC1E,MAAM,CAAC,qBAAqB,GAAG,uCAAuC,CAAC;QACvE,MAAM,CAAC,kBAAkB,GAAG,uCAAuC,CAAC;QAEpE,IAAI,mBAAmB,CAAC,oBAAoB,EAAE;YAC5C,MAAM,CAAC,cAAc,GAAG;gBACtB,eAAe,EAAE,0BAA0B;gBAC3C,gBAAgB,EAAE,wBAAwB;aAC3C,CAAC;SACH;QAED,IAAI,mBAAmB,CAAC,kBAAkB,EAAE;YAC1C,MAAM,CAAC,WAAW,GAAG,CAAC,oBAAoB,CAAC,CAAC;SAC7C;QAED,IAAI,mBAAmB,CAAC,UAAU,EAAE;YAClC,MAAM,CAAC,aAAa,GAAG,IAAI,yBAAmB,CAAC,IAAI,YAAM,CAAC,MAAM,CAAC,CAAC,CAAC;SACpE;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,gBAAgB;QACrB,uBAAiB,CAAC,mBAAmB,EAAE,CAAC;QACxC,mBAAmB,CAAC,KAAK,GAAG,mBAAmB,CAAC,KAAK,CAAC;QACtD,mBAAmB,CAAC,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC;IAC1D,CAAC;;AAvDH,kDAwDC"}
@@ -6,15 +6,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const ava_1 = __importDefault(require("ava"));
7
7
  const src_1 = require("../../../../src");
8
8
  const BaseGpApiTestConfig_1 = require("../../../../test/Data/BaseGpApiTestConfig");
9
- let config;
10
- ava_1.default.before(() => {
11
- config = BaseGpApiTestConfig_1.BaseGpApiTestConfig.gpApiSetupConfig(src_1.Channel.CardNotPresent);
12
- });
13
9
  (0, ava_1.default)("generate access token", async (t) => {
10
+ const config = BaseGpApiTestConfig_1.BaseGpApiTestConfig.gpApiSetupConfig(src_1.Channel.CardNotPresent);
14
11
  const accessTokenInfo = await src_1.GpApiService.generateTransactionKey(config);
15
12
  assertAccessTokenResponse(t, accessTokenInfo);
16
13
  });
17
14
  (0, ava_1.default)("generate access token with permissions", async (t) => {
15
+ const config = BaseGpApiTestConfig_1.BaseGpApiTestConfig.gpApiSetupConfig(src_1.Channel.CardNotPresent);
18
16
  config.permissions = [
19
17
  "PMT_POST_Create",
20
18
  "TRN_POST_Authorize",
@@ -26,39 +24,45 @@ ava_1.default.before(() => {
26
24
  assertAccessTokenResponse(t, accessTokenInfo);
27
25
  });
28
26
  (0, ava_1.default)("generate access token with limited permissions", async (t) => {
27
+ const config = BaseGpApiTestConfig_1.BaseGpApiTestConfig.gpApiSetupConfig(src_1.Channel.CardNotPresent);
29
28
  config.permissions = ["PMT_POST_Create", "TRN_POST_Authorize"];
30
29
  const accessTokenInfo = await src_1.GpApiService.generateTransactionKey(config);
31
30
  t.truthy(accessTokenInfo);
32
31
  t.truthy(accessTokenInfo.accessToken);
33
32
  t.is(accessTokenInfo.tokenizationAccountName, "tokenization");
34
- t.is(accessTokenInfo.transactionProcessingAccountName, "dcc_rate");
35
- t.truthy(accessTokenInfo.dataAccountName);
36
- t.truthy(accessTokenInfo.disputeManagementAccountName);
33
+ t.is(accessTokenInfo.transactionProcessingAccountName, "transaction_processing");
34
+ t.is(accessTokenInfo.dataAccountName, "");
35
+ t.is(accessTokenInfo.disputeManagementAccountName, "");
37
36
  });
38
37
  (0, ava_1.default)("generate access token with wrong permissions", async (t) => {
38
+ const config = BaseGpApiTestConfig_1.BaseGpApiTestConfig.gpApiSetupConfig(src_1.Channel.CardNotPresent);
39
39
  config.permissions = ["test_1", "test_2"];
40
40
  const error = await t.throwsAsync(() => src_1.GpApiService.generateTransactionKey(config), { instanceOf: src_1.GatewayError });
41
41
  t.truthy(error);
42
42
  t.is(error?.responseCode, "40119");
43
- t.is(error?.message, "Status Code: INVALID_REQUEST_DATA - Invalid permissions test_1,test_2 provided in the input field - permissions");
43
+ t.is(error?.message.includes("Invalid permissions"), true);
44
44
  });
45
45
  (0, ava_1.default)("generate access token with specific secondsToExpire", async (t) => {
46
+ const config = BaseGpApiTestConfig_1.BaseGpApiTestConfig.gpApiSetupConfig(src_1.Channel.CardNotPresent);
46
47
  config.secondsToExpire = 200;
47
48
  const accessTokenInfo = await src_1.GpApiService.generateTransactionKey(config);
48
49
  assertAccessTokenResponse(t, accessTokenInfo);
49
50
  });
50
51
  (0, ava_1.default)("generate access token with specific intervalToExpire", async (t) => {
52
+ const config = BaseGpApiTestConfig_1.BaseGpApiTestConfig.gpApiSetupConfig(src_1.Channel.CardNotPresent);
51
53
  config.intervalToExpire = src_1.IntervalToExpire.ONE_HOUR;
52
54
  const accessTokenInfo = await src_1.GpApiService.generateTransactionKey(config);
53
55
  assertAccessTokenResponse(t, accessTokenInfo);
54
56
  });
55
57
  (0, ava_1.default)("generate access token with specific expiredDate", async (t) => {
58
+ const config = BaseGpApiTestConfig_1.BaseGpApiTestConfig.gpApiSetupConfig(src_1.Channel.CardNotPresent);
56
59
  config.secondsToExpire = 200;
57
60
  config.intervalToExpire = src_1.IntervalToExpire.WEEK;
58
61
  const accessTokenInfo = await src_1.GpApiService.generateTransactionKey(config);
59
62
  assertAccessTokenResponse(t, accessTokenInfo);
60
63
  });
61
64
  (0, ava_1.default)("generate access token with wrong appId", async (t) => {
65
+ const config = BaseGpApiTestConfig_1.BaseGpApiTestConfig.gpApiSetupConfig(src_1.Channel.CardNotPresent);
62
66
  config.appId += "a";
63
67
  const error = await t.throwsAsync(() => src_1.GpApiService.generateTransactionKey(config), { instanceOf: src_1.GatewayError });
64
68
  t.truthy(error);
@@ -66,13 +70,15 @@ ava_1.default.before(() => {
66
70
  t.is(error?.message, "Status Code: ACTION_NOT_AUTHORIZED - App credentials not recognized");
67
71
  });
68
72
  (0, ava_1.default)("generate access token with wrong appKey", async (t) => {
73
+ const config = BaseGpApiTestConfig_1.BaseGpApiTestConfig.gpApiSetupConfig(src_1.Channel.CardNotPresent);
69
74
  config.appKey += "a";
70
75
  const error = await t.throwsAsync(() => src_1.GpApiService.generateTransactionKey(config), { instanceOf: src_1.GatewayError });
71
76
  t.truthy(error);
72
77
  t.is(error?.responseCode, "40004");
73
- t.is(error?.message, "Status Code: ACTION_NOT_AUTHORIZED - App credentials not recognized");
78
+ t.is(error?.message, "Status Code: ACTION_NOT_AUTHORIZED - Credentials not recognized to create access token.");
74
79
  });
75
80
  (0, ava_1.default)("generate access token with maximum secondsToExpire", async (t) => {
81
+ const config = BaseGpApiTestConfig_1.BaseGpApiTestConfig.gpApiSetupConfig(src_1.Channel.CardNotPresent);
76
82
  config.secondsToExpire = 604801;
77
83
  const error = await t.throwsAsync(() => src_1.GpApiService.generateTransactionKey(config), { instanceOf: src_1.GatewayError });
78
84
  t.truthy(error);
@@ -80,6 +86,7 @@ ava_1.default.before(() => {
80
86
  t.is(error?.message, "Status Code: INVALID_REQUEST_DATA - seconds_to_expire contains unexpected data");
81
87
  });
82
88
  (0, ava_1.default)("generate access token with invalid secondsToExpire", async (t) => {
89
+ const config = BaseGpApiTestConfig_1.BaseGpApiTestConfig.gpApiSetupConfig(src_1.Channel.CardNotPresent);
83
90
  config.secondsToExpire = 10;
84
91
  const error = await t.throwsAsync(() => src_1.GpApiService.generateTransactionKey(config), { instanceOf: src_1.GatewayError });
85
92
  t.truthy(error);
@@ -92,7 +99,7 @@ const assertAccessTokenResponse = (t, accessTokenInfo) => {
92
99
  t.is(accessTokenInfo.dataAccountName, "settlement_reporting");
93
100
  t.is(accessTokenInfo.disputeManagementAccountName, "dispute_management");
94
101
  t.is(accessTokenInfo.tokenizationAccountName, "tokenization");
95
- t.is(accessTokenInfo.transactionProcessingAccountName, "dcc_rate");
102
+ t.is(accessTokenInfo.transactionProcessingAccountName, "transaction_processing");
96
103
  t.truthy(accessTokenInfo.transactionProcessingAccountID);
97
104
  t.truthy(accessTokenInfo.tokenizationAccountID);
98
105
  t.truthy(accessTokenInfo.riskAssessmentAccountID);
@@ -1 +1 @@
1
- {"version":3,"file":"AccessTokenTest.js","sourceRoot":"","sources":["../../../../../test/Integration/Gateways/GpApiConnector/AccessTokenTest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AccessTokenTest.js","sourceRoot":"","sources":["../../../../../test/Integration/Gateways/GpApiConnector/AccessTokenTest.ts"],"names":[],"mappings":"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"}
@@ -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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"}