@pixelpay/sdk-core 1.0.0-beta.0 → 2.0.0-beta.2

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 (152) hide show
  1. package/.vscode/launch.json +25 -0
  2. package/babel.config.js +6 -0
  3. package/index.html +454 -0
  4. package/jest.config.js +5 -0
  5. package/lib/base/Helpers.d.ts +17 -0
  6. package/lib/base/Helpers.js +43 -4
  7. package/lib/base/Helpers.js.map +1 -1
  8. package/lib/base/RequestBehaviour.d.ts +1 -1
  9. package/lib/base/RequestBehaviour.js +16 -0
  10. package/lib/base/RequestBehaviour.js.map +1 -1
  11. package/lib/base/Response.d.ts +1 -1
  12. package/lib/base/Response.js +20 -0
  13. package/lib/base/Response.js.map +1 -1
  14. package/lib/base/ServiceBehaviour.d.ts +16 -42
  15. package/lib/base/ServiceBehaviour.js +64 -73
  16. package/lib/base/ServiceBehaviour.js.map +1 -1
  17. package/lib/browser/index.js +18 -0
  18. package/lib/entities/CardResult.d.ts +74 -0
  19. package/lib/entities/CardResult.js +90 -0
  20. package/lib/entities/CardResult.js.map +1 -0
  21. package/lib/entities/TransactionResult.d.ts +97 -0
  22. package/lib/entities/TransactionResult.js +120 -0
  23. package/lib/entities/TransactionResult.js.map +1 -0
  24. package/lib/index.d.ts +41 -27
  25. package/lib/index.js +40 -28
  26. package/lib/index.js.map +1 -1
  27. package/lib/libraries/CardinalManager.d.ts +47 -0
  28. package/lib/libraries/CardinalManager.js +254 -0
  29. package/lib/libraries/CardinalManager.js.map +1 -0
  30. package/lib/libraries/PayloadManager.d.ts +26 -0
  31. package/lib/libraries/PayloadManager.js +106 -0
  32. package/lib/libraries/PayloadManager.js.map +1 -0
  33. package/lib/libraries/PixelPayLoading.d.ts +7 -0
  34. package/lib/libraries/PixelPayLoading.js +44 -0
  35. package/lib/libraries/PixelPayLoading.js.map +1 -0
  36. package/lib/libraries/PixelPayModal.d.ts +12 -0
  37. package/lib/libraries/PixelPayModal.js +72 -0
  38. package/lib/libraries/PixelPayModal.js.map +1 -0
  39. package/lib/models/Billing.js +24 -0
  40. package/lib/models/Billing.js.map +1 -1
  41. package/lib/models/Card.js +23 -0
  42. package/lib/models/Card.js.map +1 -1
  43. package/lib/models/Item.js +24 -0
  44. package/lib/models/Item.js.map +1 -1
  45. package/lib/models/Order.js +47 -0
  46. package/lib/models/Order.js.map +1 -1
  47. package/lib/models/Settings.d.ts +65 -0
  48. package/lib/models/Settings.js +90 -0
  49. package/lib/models/Settings.js.map +1 -0
  50. package/lib/requests/AuthTransaction.d.ts +3 -0
  51. package/lib/{mappings/VoidTransaction.js → requests/AuthTransaction.js} +7 -7
  52. package/lib/requests/AuthTransaction.js.map +1 -0
  53. package/lib/{mappings → requests}/CaptureTransaction.d.ts +2 -2
  54. package/lib/{mappings → requests}/CaptureTransaction.js +12 -3
  55. package/lib/requests/CaptureTransaction.js.map +1 -0
  56. package/lib/{mappings → requests}/CardTokenization.d.ts +0 -4
  57. package/lib/{mappings → requests}/CardTokenization.js +51 -2
  58. package/lib/requests/CardTokenization.js.map +1 -0
  59. package/lib/requests/LookupContinueTransaction.d.ts +11 -0
  60. package/lib/{mappings/CustomerTokenization.js → requests/LookupContinueTransaction.js} +18 -9
  61. package/lib/requests/LookupContinueTransaction.js.map +1 -0
  62. package/lib/requests/LookupTransaction.d.ts +68 -0
  63. package/lib/requests/LookupTransaction.js +107 -0
  64. package/lib/requests/LookupTransaction.js.map +1 -0
  65. package/lib/{mappings/AuthTransaction.d.ts → requests/PaymentTransaction.d.ts} +20 -5
  66. package/lib/requests/PaymentTransaction.js +190 -0
  67. package/lib/requests/PaymentTransaction.js.map +1 -0
  68. package/lib/requests/SaleTransaction.d.ts +3 -0
  69. package/lib/{mappings → requests}/SaleTransaction.js +2 -2
  70. package/lib/requests/SaleTransaction.js.map +1 -0
  71. package/lib/requests/StatusTransaction.d.ts +7 -0
  72. package/lib/{mappings → requests}/StatusTransaction.js +8 -3
  73. package/lib/requests/StatusTransaction.js.map +1 -0
  74. package/lib/{mappings → requests}/VoidTransaction.d.ts +2 -2
  75. package/lib/{base/PaymentTransaction.js → requests/VoidTransaction.js} +17 -8
  76. package/lib/requests/VoidTransaction.js.map +1 -0
  77. package/lib/resources/Environment.d.ts +6 -0
  78. package/lib/resources/Environment.js +13 -0
  79. package/lib/resources/Environment.js.map +1 -0
  80. package/lib/resources/Locations.d.ts +16 -0
  81. package/lib/resources/Locations.js +27 -0
  82. package/lib/resources/Locations.js.map +1 -0
  83. package/lib/{resources → responses}/ErrorResponse.d.ts +0 -0
  84. package/lib/{resources → responses}/ErrorResponse.js +0 -0
  85. package/lib/{resources → responses}/ErrorResponse.js.map +1 -1
  86. package/lib/{resources → responses}/FailureResponse.d.ts +0 -0
  87. package/lib/{resources → responses}/FailureResponse.js +0 -0
  88. package/lib/{resources → responses}/FailureResponse.js.map +1 -1
  89. package/lib/{resources → responses}/InputErrorResponse.d.ts +0 -0
  90. package/lib/{resources → responses}/InputErrorResponse.js +0 -0
  91. package/lib/{resources → responses}/InputErrorResponse.js.map +1 -1
  92. package/lib/{resources → responses}/NetworkFailureResponse.d.ts +0 -0
  93. package/lib/{resources → responses}/NetworkFailureResponse.js +0 -0
  94. package/lib/{resources → responses}/NetworkFailureResponse.js.map +1 -1
  95. package/lib/{resources → responses}/NoAccessResponse.d.ts +0 -0
  96. package/lib/{resources → responses}/NoAccessResponse.js +0 -0
  97. package/lib/{resources → responses}/NoAccessResponse.js.map +1 -1
  98. package/lib/{resources → responses}/NotFoundResponse.d.ts +0 -0
  99. package/lib/{resources → responses}/NotFoundResponse.js +0 -0
  100. package/lib/{resources → responses}/NotFoundResponse.js.map +1 -1
  101. package/lib/{resources → responses}/PayloadResponse.d.ts +0 -0
  102. package/lib/{resources → responses}/PayloadResponse.js +0 -0
  103. package/lib/{resources → responses}/PayloadResponse.js.map +1 -1
  104. package/lib/{resources → responses}/PaymentDeclinedResponse.d.ts +0 -0
  105. package/lib/{resources → responses}/PaymentDeclinedResponse.js +0 -0
  106. package/lib/{resources → responses}/PaymentDeclinedResponse.js.map +1 -1
  107. package/lib/{resources → responses}/PreconditionalResponse.d.ts +0 -0
  108. package/lib/{resources → responses}/PreconditionalResponse.js +0 -0
  109. package/lib/{resources → responses}/PreconditionalResponse.js.map +1 -1
  110. package/lib/{resources → responses}/SuccessResponse.d.ts +0 -0
  111. package/lib/{resources → responses}/SuccessResponse.js +0 -0
  112. package/lib/{resources → responses}/SuccessResponse.js.map +1 -1
  113. package/lib/responses/TimeoutResponse.d.ts +3 -0
  114. package/lib/responses/TimeoutResponse.js +27 -0
  115. package/lib/responses/TimeoutResponse.js.map +1 -0
  116. package/lib/services/CardinalAuthentication.d.ts +19 -0
  117. package/lib/services/CardinalAuthentication.js +56 -0
  118. package/lib/services/CardinalAuthentication.js.map +1 -0
  119. package/lib/services/Tokenization.d.ts +5 -14
  120. package/lib/services/Tokenization.js +87 -20
  121. package/lib/services/Tokenization.js.map +1 -1
  122. package/lib/services/Transaction.d.ts +54 -5
  123. package/lib/services/Transaction.js +193 -25
  124. package/lib/services/Transaction.js.map +1 -1
  125. package/lib/version.d.ts +1 -1
  126. package/lib/version.js +1 -1
  127. package/lib/web.d.ts +28 -0
  128. package/package.json +16 -5
  129. package/{test.js → test-node.js} +0 -0
  130. package/tests/Locations.test.ts +9 -0
  131. package/tests/Models/Card.test.ts +33 -0
  132. package/tests/Models/Order.test.ts +64 -0
  133. package/tests/Models/Settings.test.ts +65 -0
  134. package/tests/Tokenization.test.ts +229 -0
  135. package/tests/Transaction.test.ts +342 -0
  136. package/webpack.mix.js +12 -0
  137. package/lib/base/PaymentTransaction.d.ts +0 -3
  138. package/lib/base/PaymentTransaction.js.map +0 -1
  139. package/lib/mappings/AuthTransaction.js +0 -78
  140. package/lib/mappings/AuthTransaction.js.map +0 -1
  141. package/lib/mappings/CaptureTransaction.js.map +0 -1
  142. package/lib/mappings/CardTokenization.js.map +0 -1
  143. package/lib/mappings/CustomerTokenization.d.ts +0 -7
  144. package/lib/mappings/CustomerTokenization.js.map +0 -1
  145. package/lib/mappings/SaleTransaction.d.ts +0 -3
  146. package/lib/mappings/SaleTransaction.js.map +0 -1
  147. package/lib/mappings/StatusTransaction.d.ts +0 -7
  148. package/lib/mappings/StatusTransaction.js.map +0 -1
  149. package/lib/mappings/VoidTransaction.js.map +0 -1
  150. package/lib/models/CardToken.d.ts +0 -14
  151. package/lib/models/CardToken.js +0 -9
  152. package/lib/models/CardToken.js.map +0 -1
@@ -0,0 +1,25 @@
1
+ {
2
+ // Use IntelliSense to learn about possible attributes.
3
+ // Hover to view descriptions of existing attributes.
4
+ // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
5
+ "version": "0.2.0",
6
+ "configurations": [
7
+ {
8
+ "type": "node",
9
+ "name": "vscode-jest-tests",
10
+ "request": "launch",
11
+ "args": [
12
+ "--runInBand",
13
+ "--watchAll=false"
14
+ ],
15
+ "cwd": "${workspaceFolder}",
16
+ "console": "integratedTerminal",
17
+ "internalConsoleOptions": "neverOpen",
18
+ "disableOptimisticBPs": true,
19
+ "program": "${workspaceFolder}/node_modules/.bin/jest",
20
+ "windows": {
21
+ "program": "${workspaceFolder}/node_modules/jest/bin/jest"
22
+ }
23
+ }
24
+ ]
25
+ }
@@ -0,0 +1,6 @@
1
+ module.exports = {
2
+ presets: [
3
+ ['@babel/preset-env', { targets: { node: 'current' } }],
4
+ '@babel/preset-typescript',
5
+ ],
6
+ };
package/index.html ADDED
@@ -0,0 +1,454 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+
4
+ <head>
5
+ <meta charset="UTF-8">
6
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
7
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
8
+ <title>SDK Playground</title>
9
+
10
+ <!-- Google Fonts -->
11
+ <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300italic,700,700italic">
12
+
13
+ <!-- CSS Reset -->
14
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.css">
15
+
16
+ <!-- Milligram CSS -->
17
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/milligram/1.4.1/milligram.css">
18
+
19
+ <style>
20
+ .wrapper {
21
+ display: block;
22
+ overflow: hidden;
23
+ position: relative;
24
+ width: 100%
25
+ }
26
+
27
+ .wrapper .container {
28
+ max-width: 80rem
29
+ }
30
+
31
+ .wrapper>.container {
32
+ padding-bottom: 7.5rem;
33
+ padding-top: 7.5rem
34
+ }
35
+
36
+ #response {
37
+ background: black;
38
+ color: greenyellow;
39
+ height: 250px;
40
+ }
41
+
42
+ .w-100 {
43
+ width: 100%;
44
+ }
45
+ </style>
46
+ </head>
47
+
48
+ <body>
49
+ <main class="wrapper">
50
+ <div class="container">
51
+
52
+ <blockquote>
53
+ <h4><em>Transaction Service.</em></h4>
54
+ </blockquote>
55
+
56
+ <div class="row">
57
+ <div class="column">
58
+ <fieldset>
59
+ <legend>UUID</legend>
60
+ <input type="text" name="uuid" placeholder="P-0000000-e51b-463a-bb94-fa168bdffcb2" value="P-5211b19f-d390-49d5-87fe-3735d9538c8d">
61
+ </fieldset>
62
+ </div>
63
+ <div class="column">
64
+ <fieldset>
65
+ <legend>Platform User</legend>
66
+ <input type="text" name="user" placeholder="hash" value="">
67
+ </fieldset>
68
+ </div>
69
+ </div>
70
+ <div class="row">
71
+ <div class="column">
72
+ <button name="loading" class="w-100">Show Loading</button>
73
+ </div>
74
+ <div class="column">
75
+ <button name="status" class="w-100">Payment Status</button>
76
+ </div>
77
+ <div class="column">
78
+ <button name="capture" class="w-100">Run Capture</button>
79
+ </div>
80
+ <div class="column">
81
+ <button name="void" class="w-100">Run Void</button>
82
+ </div>
83
+ </div>
84
+ <fieldset>
85
+ <legend>Select card</legend>
86
+ <select name="cards" id="cards">
87
+ <option value="4111111111111111">(2.0) Generic transaction</option>
88
+ <option value="4000000000001000">(2.1) Successful Authentication</option>
89
+ <option value="4000000000001018">(2.2) Failed Authentication</option>
90
+ <option value="4000000000001026">(2.3) Attempts Stand-In Authentication</option>
91
+ <option value="4000000000001034">(2.4) Unavailable Authentication from the Issuer</option>
92
+ <option value="4000000000001042">(2.5) Rejected Authentication by the Issuer</option>
93
+ <option value="4000000000001059">(2.6) Authentication Not Available on Lookup</option>
94
+ <option value="4000000000001067">(2.7) Error on Lookup</option>
95
+ <option value="4000000000001075">(2.8) Timeout on cmpi_lookup Transaction</option>
96
+ <option value="4000000000001091">(2.9) Successful Step Up Authentication</option>
97
+ <option value="4000000000001109">(2.10) Failed Step Up Authentication</option>
98
+ <option value="4000000000001117">(2.11) Step Up Authentication is Unavailable</option>
99
+ <option value="4000000000001125">(2.12) Error on Authentication</option>
100
+ <option value="4000000000001083">(2.13) Bypassed Authentication</option>
101
+ <option value="4000010000000001">(2.14) Require MethodURL</option>
102
+ </select>
103
+ </fieldset>
104
+
105
+ <fieldset>
106
+ <legend>Amount</legend>
107
+ <input type="number" name="amount" value="1.00">
108
+ </fieldset>
109
+
110
+ <div class="row">
111
+ <div class="column">
112
+ <fieldset>
113
+ <legend>Card Number</legend>
114
+ <input type="text" name="card_number" value="4111 1111 1111 1111">
115
+ </fieldset>
116
+ </div>
117
+ <div class="column">
118
+ <fieldset>
119
+ <legend>Card Holder</legend>
120
+ <input type="text" name="card_holder" value="Test Card">
121
+ </fieldset>
122
+ </div>
123
+ </div>
124
+
125
+ <div class="row">
126
+ <div class="column">
127
+ <fieldset>
128
+ <legend>Expire Month</legend>
129
+ <input type="number" name="expire_month" value="12">
130
+ </fieldset>
131
+ </div>
132
+ <div class="column">
133
+ <fieldset>
134
+ <legend>Expire Year</legend>
135
+ <input type="number" name="expire_year" value="2024">
136
+ </fieldset>
137
+ </div>
138
+ <div class="column">
139
+ <fieldset>
140
+ <legend>CVC</legend>
141
+ <input type="number" name="card_cvv" value="999">
142
+ </fieldset>
143
+ </div>
144
+ </div>
145
+
146
+ <fieldset>
147
+ <legend>
148
+ <input type="checkbox" name="3ds"> Enable 3DS/EMV transaction
149
+ </legend>
150
+ </fieldset>
151
+
152
+ <div class="row">
153
+ <div class="column">
154
+ <button name="sale" class="w-100">Run Sale</button>
155
+ </div>
156
+ <div class="column">
157
+ <button name="auth" class="w-100">Run Auth</button>
158
+ </div>
159
+ </div>
160
+
161
+ <blockquote>
162
+ <h4><em>Tokenization Service.</em></h4>
163
+ </blockquote>
164
+
165
+ <fieldset>
166
+ <legend>Token</legend>
167
+ <input type="text" name="token" placeholder="T-xxxxxxxx-xxxxxx-xxxxxx-xxxxxxx">
168
+ </fieldset>
169
+
170
+ <div class="row">
171
+ <div class="column"><button name="vault" class="w-100">Run Vault</button></div>
172
+ <div class="column"><button name="show" class="w-100">Run Show</button></div>
173
+ <div class="column"><button name="update" class="w-100">Run Update</button></div>
174
+ <div class="column"><button name="delete" class="w-100">Run Delete</button></div>
175
+ </div>
176
+
177
+ <fieldset>
178
+ <legend>Response</legend>
179
+ <textarea name="response" id="response" readonly></textarea>
180
+ </fieldset>
181
+ </div>
182
+
183
+ </main>
184
+
185
+ <script src="./lib/browser/index.js"></script>
186
+
187
+ <script>
188
+
189
+ function getCard() {
190
+ var card = new Models.Card();
191
+ card.number = document.querySelector('input[name=card_number]').value;
192
+ card.cardholder = document.querySelector('input[name=card_holder]').value;
193
+ card.expire_month = document.querySelector('input[name=expire_month]').value;;
194
+ card.expire_year = document.querySelector('input[name=expire_year]').value;;
195
+ card.cvv2 = document.querySelector('input[name=card_cvv]').value;;
196
+
197
+ return card
198
+ }
199
+
200
+ function getBilling() {
201
+ var billing = new Models.Billing();
202
+ billing.address = 'Ave Circunvalacion';
203
+ billing.country = 'HN';
204
+ billing.state = 'HN-CR';
205
+ billing.city = 'San Pedro Sula';
206
+ billing.phone = '99999999';
207
+
208
+ return billing;
209
+ }
210
+
211
+ function getOrder() {
212
+ var order = new Models.Order();
213
+ order.id = document.querySelector('input[name="uuid"]').value || 'TEST-1234';
214
+ order.currency = 'HNL';
215
+ order.amount = parseFloat(document.querySelector('input[name=amount]').value);
216
+ order.customer_name = 'Jhon Doe';
217
+ order.customer_email = 'jhondoe@pixel.hn';
218
+
219
+ return order;
220
+ }
221
+
222
+ function showResponse(response) {
223
+ var json = JSON.parse(response);
224
+ json = JSON.stringify(json, undefined, 4);
225
+ document.querySelector('textarea[name="response"]').value = json
226
+ }
227
+
228
+ document.getElementById("cards").onchange = () => {
229
+ console.log("changed")
230
+ var card_selected = document.querySelector('select[name="cards"]').value;
231
+ document.querySelector('input[name=card_number]').value = card_selected;
232
+ }
233
+
234
+ document.querySelector('button[name=loading]').onclick = () => {
235
+ UI.PixelPayLoading.show();
236
+ }
237
+
238
+ document.querySelector('button[name=sale]').onclick = () => {
239
+ var settings = new Models.Settings();
240
+ settings.setupSandbox();
241
+
242
+ var service = new Services.Transaction(settings);
243
+
244
+ var card = getCard();
245
+ var billing = getBilling();
246
+ var order = getOrder();
247
+
248
+ var sale = new Requests.SaleTransaction();
249
+ sale.setCard(card);
250
+ sale.setBilling(billing);
251
+ sale.setOrder(order);
252
+
253
+ if (document.querySelector('input[name="3ds"]') && document.querySelector('input[name="3ds"]').checked) {
254
+ sale.authentication_request = true;
255
+ }
256
+
257
+ service.doSale(sale).then(response => {
258
+ showResponse(response.toJson())
259
+ alert(`${response.message} (${response.status})`);
260
+ }).catch(err => {
261
+ console.error(err);
262
+ alert(`${err.message} (ERR)`);
263
+ })
264
+ }
265
+
266
+ document.querySelector('button[name=auth]').onclick = () => {
267
+ var settings = new Models.Settings();
268
+ settings.setupEndpoint("https://pixel-pay.com")
269
+ settings.setupCredentials('2212294583', 'c7dd7a6cf3e47417edb3456c22218a5d');
270
+
271
+ var service = new Services.Transaction(settings);
272
+
273
+ var card = getCard();
274
+ var billing = getBilling();
275
+ var order = getOrder();
276
+
277
+ var auth = new Requests.AuthTransaction();
278
+ auth.setCard(card);
279
+ auth.setBilling(billing);
280
+ auth.setOrder(order);
281
+
282
+ if (document.querySelector('input[name="3ds"]') && document.querySelector('input[name="3ds"]').checked) {
283
+ auth.authentication_request = true;
284
+ }
285
+
286
+ service.doAuth(auth).then(response => {
287
+ showResponse(response.toJson())
288
+ alert(`${response.message} (${response.status})`);
289
+ }).catch(err => {
290
+ console.error(err);
291
+ alert(`${err.message} (ERR)`);
292
+ })
293
+ }
294
+
295
+ document.querySelector('button[name=capture]').onclick = () => {
296
+ var settings = new Models.Settings();
297
+ settings.setupEndpoint("https://pixel-pay.com")
298
+ settings.setupCredentials('2212294583', 'c7dd7a6cf3e47417edb3456c22218a5d');
299
+
300
+ var service = new Services.Transaction(settings);
301
+ var capture = new Requests.CaptureTransaction();
302
+ capture.payment_uuid = document.querySelector('input[name="uuid"]').value
303
+ capture.transaction_approved_amount = 1.00;
304
+
305
+ service.doCapture(capture).then(response => {
306
+ showResponse(response.toJson())
307
+ alert(`${response.message} (${response.status})`);
308
+ }).catch(err => {
309
+ console.error(err);
310
+ alert(`${err.message} (ERR)`);
311
+ })
312
+ }
313
+
314
+ document.querySelector('button[name=void]').onclick = () => {
315
+ var settings = new Models.Settings();
316
+ settings.setupEndpoint("https://pixel-pay.com")
317
+ settings.setupCredentials('2212294583', 'c7dd7a6cf3e47417edb3456c22218a5d');
318
+ user = document.querySelector('input[name="user"]').value
319
+ if (user) {
320
+ settings.setupPlatformUser(user);
321
+ }
322
+
323
+ var service = new Services.Transaction(settings);
324
+ var capture = new Requests.VoidTransaction();
325
+ capture.payment_uuid = document.querySelector('input[name="uuid"]').value
326
+ capture.void_reason = "Transaction Test";
327
+
328
+ service.doVoid(capture).then(response => {
329
+ showResponse(response.toJson())
330
+ alert(`${response.message} (${response.status})`);
331
+ }).catch(err => {
332
+ console.error(err);
333
+ alert(`${err.message} (ERR)`);
334
+ })
335
+ }
336
+
337
+ document.querySelector('button[name=status]').onclick = () => {
338
+ var settings = new Models.Settings();
339
+ settings.setupEndpoint('https://pixel-pay.com');
340
+ settings.setupCredentials('2212294583', 'c7dd7a6cf3e47417edb3456c22218a5d');
341
+
342
+ var service = new Services.Transaction(settings);
343
+
344
+ var statusTx = new Requests.StatusTransaction();
345
+ statusTx.payment_uuid = document.querySelector('input[name="uuid"]').value
346
+
347
+ service.getStatus(statusTx).then( response => {
348
+ console.log(response);
349
+ showResponse(response.toJson())
350
+ alert(`${response.message} (${response.status})`);
351
+ }).catch( err => {
352
+ console.error(err);
353
+ alert(`${err.message} (ERR)`);
354
+ });
355
+ }
356
+
357
+ document.querySelector('body').onclick = (e) => {
358
+ if (e.target == document.querySelector('.pixelpay-loading')) {
359
+ UI.PixelPayLoading.hide();
360
+ }
361
+ }
362
+
363
+ document.querySelector('button[name=vault]').onclick = () => {
364
+ var settings = new Models.Settings();
365
+ settings.setupSandbox();
366
+
367
+ var service = new Services.Tokenization(settings);
368
+ var cardRequest = new Requests.CardTokenization();
369
+ cardRequest.setCard(getCard());
370
+ cardRequest.setBilling(getBilling());
371
+
372
+ service.vaultCard(cardRequest).then( response => {
373
+ token = document.querySelector('input[name="token"]').value = response.getData("token");
374
+
375
+ showResponse(response.toJson())
376
+ alert(`${response.message} (${response.status})`);
377
+ }).catch( err => {
378
+ console.error(err);
379
+ alert(`${err.message} (ERR)`);
380
+ });
381
+ }
382
+
383
+ document.querySelector('button[name=show]').onclick = () => {
384
+ var settings = new Models.Settings();
385
+ settings.setupSandbox();
386
+
387
+ var service = new Services.Tokenization(settings);
388
+
389
+ token = document.querySelector('input[name="token"]').value;
390
+ if (token.includes(',')) {
391
+ var tokens = token.split(',');
392
+ service.showCards(tokens).then( response => {
393
+ showResponse(response.toJson())
394
+ alert(`${response.message} (${response.status})`);
395
+ }).catch( err => {
396
+ console.error(err);
397
+ alert(`${err.message} (ERR)`);
398
+ });
399
+ } else {
400
+ service.showCard(token).then( response => {
401
+ showResponse(response.toJson())
402
+ alert(`${response.message} (${response.status})`);
403
+ }).catch( err => {
404
+ console.error(err);
405
+ alert(`${err.message} (ERR)`);
406
+ });
407
+ }
408
+
409
+ }
410
+
411
+ document.querySelector('button[name=update]').onclick = () => {
412
+ var settings = new Models.Settings();
413
+ settings.setupSandbox();
414
+
415
+ var service = new Services.Tokenization(settings);
416
+ var cardRequest = new Requests.CardTokenization();
417
+ cardRequest.setCard(getCard());
418
+ cardRequest.setBilling(getBilling());
419
+
420
+ var input_uuid = document.querySelector('input[name="token"]');
421
+
422
+ service.updateCard(input_uuid.value, cardRequest).then( response => {
423
+ token = input_uuid.value = response.getData("token");
424
+
425
+ showResponse(response.toJson())
426
+ alert(`${response.message} (${response.status})`);
427
+ }).catch( err => {
428
+ console.error(err);
429
+ alert(`${err.message} (ERR)`);
430
+ })
431
+ }
432
+
433
+ document.querySelector('button[name=delete]').onclick = () => {
434
+ var settings = new Models.Settings();
435
+ settings.setupSandbox();
436
+
437
+ var service = new Services.Tokenization(settings);
438
+
439
+ token = document.querySelector('input[name="token"]').value;
440
+ console.log(token);
441
+ service.deleteCard(token).then( response => {
442
+ console.log(response);
443
+ showResponse(response.toJson())
444
+ alert(`${response.message} (${response.status})`);
445
+ }).catch( err => {
446
+ console.error(err);
447
+ alert(`${err.message} (ERR)`);
448
+ });
449
+ }
450
+
451
+ </script>
452
+ </body>
453
+
454
+ </html>
package/jest.config.js ADDED
@@ -0,0 +1,5 @@
1
+ module.exports = {
2
+ moduleNameMapper: {
3
+ "\\.(css|less|sass|scss)$": '<rootDir>/config/CSSStub.js',
4
+ }
5
+ };
@@ -21,6 +21,13 @@ declare const _default: {
21
21
  * @return
22
22
  */
23
23
  trimValue(value: string | null | undefined): string | null;
24
+ /**
25
+ * Clean an string of whitespaces.
26
+ *
27
+ * @param value
28
+ * @returns string | null
29
+ */
30
+ cleanString(value: string | null | undefined): string | null;
24
31
  /**
25
32
  * Parse or nullify amount data
26
33
  *
@@ -28,5 +35,15 @@ declare const _default: {
28
35
  * @return
29
36
  */
30
37
  parseAmount(amount: number | null | undefined): string | null;
38
+ /**
39
+ * Verify if environment is a Browser
40
+ */
41
+ checkIsBrowser(): boolean;
42
+ /**
43
+ * Append website script and load
44
+ *
45
+ * @param src
46
+ */
47
+ addScriptToWebsite(src: string): Promise<any>;
31
48
  };
32
49
  export default _default;
@@ -11,8 +11,7 @@ var __assign = (this && this.__assign) || function () {
11
11
  return __assign.apply(this, arguments);
12
12
  };
13
13
  Object.defineProperty(exports, "__esModule", { value: true });
14
- var md5_1 = require("crypto-js/md5");
15
- var sha512_1 = require("crypto-js/sha512");
14
+ var crypto_js_1 = require("crypto-js");
16
15
  exports.default = {
17
16
  /**
18
17
  * Serialize object to JSON string without empties
@@ -39,9 +38,9 @@ exports.default = {
39
38
  hash: function (algorith, value) {
40
39
  switch (algorith) {
41
40
  case "MD5":
42
- return (0, md5_1.default)(value);
41
+ return (0, crypto_js_1.MD5)(value).toString();
43
42
  case "SHA-512":
44
- return (0, sha512_1.default)(value);
43
+ return (0, crypto_js_1.SHA512)(value).toString();
45
44
  default:
46
45
  return "";
47
46
  }
@@ -58,6 +57,18 @@ exports.default = {
58
57
  }
59
58
  return null;
60
59
  },
60
+ /**
61
+ * Clean an string of whitespaces.
62
+ *
63
+ * @param value
64
+ * @returns string | null
65
+ */
66
+ cleanString: function (value) {
67
+ if (value) {
68
+ return value.replace(/\s/g, '');
69
+ }
70
+ return null;
71
+ },
61
72
  /**
62
73
  * Parse or nullify amount data
63
74
  *
@@ -70,5 +81,33 @@ exports.default = {
70
81
  }
71
82
  return null;
72
83
  },
84
+ /**
85
+ * Verify if environment is a Browser
86
+ */
87
+ checkIsBrowser: function () {
88
+ return typeof window !== "undefined" && typeof window.document !== "undefined";
89
+ },
90
+ /**
91
+ * Append website script and load
92
+ *
93
+ * @param src
94
+ */
95
+ addScriptToWebsite: function (src) {
96
+ return new Promise(function (resolve, reject) {
97
+ var id = (0, crypto_js_1.MD5)(src).toString();
98
+ var script = document.createElement("script");
99
+ if (!document.querySelector("script[id=\"".concat(id, "\"]"))) {
100
+ script.id = id;
101
+ script.src = src;
102
+ script.type = "text/javascript";
103
+ script.onload = resolve;
104
+ script.onerror = reject;
105
+ document.body.appendChild(script);
106
+ }
107
+ else {
108
+ resolve(true);
109
+ }
110
+ });
111
+ },
73
112
  };
74
113
  //# sourceMappingURL=Helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Helpers.js","sourceRoot":"","sources":["../../src/base/Helpers.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,qCAAgC;AAChC,2CAAsC;AAEtC,kBAAe;IACd;;;;;OAKG;IACH,YAAY,EAAZ,UAAa,KAAU;QACtB,IAAM,QAAQ,gBAAO,KAAK,CAAC,CAAC;QAE5B,KAAK,IAAI,QAAQ,IAAI,QAAQ,EAAE;YAC9B,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,IAAI,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,SAAS,EAAE;gBACpE,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC;aAC1B;SACD;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;IAED;;;;;;OAMG;IACH,IAAI,EAAJ,UAAK,QAAgB,EAAE,KAAa;QACnC,QAAQ,QAAQ,EAAE;YACjB,KAAK,KAAK;gBACT,OAAO,IAAA,aAAG,EAAC,KAAK,CAAC,CAAC;YAEnB,KAAK,SAAS;gBACb,OAAO,IAAA,gBAAM,EAAC,KAAK,CAAC,CAAC;YAEtB;gBACC,OAAO,EAAE,CAAC;SACX;IACF,CAAC;IAED;;;;;OAKG;IACH,SAAS,EAAT,UAAU,KAAgC;QACzC,IAAI,KAAK,EAAE;YACV,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;SACpB;QAED,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;;;OAKG;IACH,WAAW,EAAX,UAAY,MAAiC;QAC5C,IAAI,OAAO,MAAM,IAAI,QAAQ,IAAI,MAAM,GAAG,CAAC,EAAG;YAC7C,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC;SACtB;QAED,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAA"}
1
+ {"version":3,"file":"Helpers.js","sourceRoot":"","sources":["../../src/base/Helpers.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,uCAAwC;AAExC,kBAAe;IACd;;;;;OAKG;IACH,YAAY,EAAZ,UAAa,KAAU;QACtB,IAAM,QAAQ,gBAAQ,KAAK,CAAE,CAAC;QAE9B,KAAK,IAAI,QAAQ,IAAI,QAAQ,EAAE;YAC9B,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,IAAI,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,SAAS,EAAE;gBACpE,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC;aAC1B;SACD;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;IAED;;;;;;OAMG;IACH,IAAI,EAAJ,UAAK,QAAgB,EAAE,KAAa;QACnC,QAAQ,QAAQ,EAAE;YACjB,KAAK,KAAK;gBACT,OAAO,IAAA,eAAG,EAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;YAE9B,KAAK,SAAS;gBACb,OAAO,IAAA,kBAAM,EAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;YAEjC;gBACC,OAAO,EAAE,CAAC;SACX;IACF,CAAC;IAED;;;;;OAKG;IACH,SAAS,EAAT,UAAU,KAAgC;QACzC,IAAI,KAAK,EAAE;YACV,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;SACpB;QAED,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;;;OAKG;IACH,WAAW,EAAX,UAAY,KAAgC;QAC3C,IAAI,KAAK,EAAE;YACV,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;SAChC;QAED,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;;;OAKG;IACH,WAAW,EAAX,UAAY,MAAiC;QAC5C,IAAI,OAAO,MAAM,IAAI,QAAQ,IAAI,MAAM,GAAG,CAAC,EAAE;YAC5C,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC;SACtB;QAED,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;OAEG;IACH,cAAc,EAAd;QACC,OAAO,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,WAAW,CAAC;IAChF,CAAC;IAED;;;;OAIG;IACH,kBAAkB,EAAlB,UAAmB,GAAW;QAC7B,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;YAClC,IAAM,EAAE,GAAG,IAAA,eAAG,EAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC/B,IAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAEhD,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,sBAAc,EAAE,QAAI,CAAC,EAAE;gBAClD,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;gBACf,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;gBACjB,MAAM,CAAC,IAAI,GAAG,iBAAiB,CAAC;gBAChC,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC;gBACxB,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC;gBAExB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;aAClC;iBAAM;gBACN,OAAO,CAAC,IAAI,CAAC,CAAC;aACd;QACF,CAAC,CAAC,CAAC;IACJ,CAAC;CACD,CAAA"}
@@ -1,6 +1,6 @@
1
1
  export default class RequestBehaviour {
2
2
  /**
3
- * Enviroment identifier (live|test|sandbox)
3
+ * Environment identifier (live|test|sandbox)
4
4
  */
5
5
  env: string;
6
6
  /**
@@ -7,6 +7,22 @@ var RequestBehaviour = /** @class */ (function () {
7
7
  * Initialize request
8
8
  */
9
9
  function RequestBehaviour() {
10
+ /**
11
+ * Environment identifier (live|test|sandbox)
12
+ */
13
+ this.env = null;
14
+ /**
15
+ * Transaction response messages language
16
+ */
17
+ this.lang = null;
18
+ /**
19
+ * SDK indentifier type
20
+ */
21
+ this.from = null;
22
+ /**
23
+ * SDK version
24
+ */
25
+ this.sdk_version = null;
10
26
  this.lang = Intl.DateTimeFormat().resolvedOptions().locale;
11
27
  this.from = "sdk-javascript";
12
28
  this.sdk_version = version_1.default;
@@ -1 +1 @@
1
- {"version":3,"file":"RequestBehaviour.js","sourceRoot":"","sources":["../../src/base/RequestBehaviour.ts"],"names":[],"mappings":";;AAAA,qCAAgC;AAChC,sCAAiC;AAEjC;IAqBC;;OAEG;IACH;QACC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,eAAe,EAAE,CAAC,MAAM,CAAC;QAC3D,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,iBAAO,CAAC;QAE3B,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE;YAC3C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SACjB;IACF,CAAC;IAED;;;;OAIG;IACH,iCAAM,GAAN;QACC,OAAO,iBAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IACF,uBAAC;AAAD,CAAC,AA1CD,IA0CC"}
1
+ {"version":3,"file":"RequestBehaviour.js","sourceRoot":"","sources":["../../src/base/RequestBehaviour.ts"],"names":[],"mappings":";;AAAA,qCAAgC;AAChC,sCAAiC;AAEjC;IAqBC;;OAEG;IACH;QAvBA;;WAEG;QACH,QAAG,GAAW,IAAI,CAAC;QAEnB;;WAEG;QACH,SAAI,GAAW,IAAI,CAAC;QAEpB;;WAEG;QACH,SAAI,GAAW,IAAI,CAAC;QAEpB;;WAEG;QACH,gBAAW,GAAW,IAAI,CAAC;QAM1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,eAAe,EAAE,CAAC,MAAM,CAAC;QAC3D,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,iBAAO,CAAC;QAE3B,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE;YAC3C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SACjB;IACF,CAAC;IAED;;;;OAIG;IACH,iCAAM,GAAN;QACC,OAAO,iBAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IACF,uBAAC;AAAD,CAAC,AA1CD,IA0CC"}
@@ -26,7 +26,7 @@ export default class Response {
26
26
  /**
27
27
  * Response input validation felds errors
28
28
  */
29
- errors: any;
29
+ errors: object;
30
30
  /**
31
31
  * Define HTTP status code response
32
32
  *
@@ -3,6 +3,26 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var Helpers_1 = require("./Helpers");
4
4
  var Response = /** @class */ (function () {
5
5
  function Response() {
6
+ /**
7
+ * Response 'action to' format
8
+ */
9
+ this.action = null;
10
+ /**
11
+ * Response status success
12
+ */
13
+ this.success = false;
14
+ /**
15
+ * Response friendly message
16
+ */
17
+ this.message = null;
18
+ /**
19
+ * Response data payload
20
+ */
21
+ this.data = undefined;
22
+ /**
23
+ * Response input validation felds errors
24
+ */
25
+ this.errors = undefined;
6
26
  }
7
27
  /**
8
28
  * Define HTTP status code response