@unchainedshop/plugins 2.8.16 → 2.8.17

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 (94) hide show
  1. package/lib/payment/saferpay/adapter.d.ts +3 -0
  2. package/lib/payment/saferpay/adapter.js +181 -0
  3. package/lib/payment/saferpay/adapter.js.map +1 -0
  4. package/lib/payment/saferpay/api/api/SaferpayClient.d.ts +17 -0
  5. package/lib/payment/saferpay/api/api/SaferpayClient.js +44 -0
  6. package/lib/payment/saferpay/api/api/SaferpayClient.js.map +1 -0
  7. package/lib/payment/{worldline-saferpay/worldline-saferpay-client → saferpay/api}/api/SaferpayConnection.js +2 -4
  8. package/lib/payment/saferpay/api/api/SaferpayConnection.js.map +1 -0
  9. package/lib/payment/saferpay/api/index.js.map +1 -0
  10. package/lib/payment/saferpay/api/models/PaymentMethods.js.map +1 -0
  11. package/lib/payment/saferpay/api/models/PaymentPageAssert.js.map +1 -0
  12. package/lib/payment/{worldline-saferpay/worldline-saferpay-client → saferpay/api}/models/PaymentPageInitialize.d.ts +9 -6
  13. package/lib/payment/saferpay/api/models/PaymentPageInitialize.js.map +1 -0
  14. package/lib/payment/saferpay/api/models/Request.js.map +1 -0
  15. package/lib/payment/{worldline-saferpay/worldline-saferpay-client → saferpay/api}/models/Response.d.ts +1 -1
  16. package/lib/payment/saferpay/api/models/Response.js.map +1 -0
  17. package/lib/payment/saferpay/api/models/Transaction.js.map +1 -0
  18. package/lib/payment/saferpay/api/models/TransactionCancel.js.map +1 -0
  19. package/lib/payment/saferpay/api/models/TransactionCapture.d.ts +18 -0
  20. package/lib/payment/saferpay/api/models/TransactionCapture.js +2 -0
  21. package/lib/payment/saferpay/api/models/TransactionCapture.js.map +1 -0
  22. package/lib/payment/saferpay/buildSignature.d.ts +1 -0
  23. package/lib/payment/saferpay/buildSignature.js +9 -0
  24. package/lib/payment/saferpay/buildSignature.js.map +1 -0
  25. package/lib/payment/saferpay/db/SaferpayTransactionsCollection.d.ts +7 -0
  26. package/lib/payment/saferpay/db/SaferpayTransactionsCollection.js +5 -0
  27. package/lib/payment/saferpay/db/SaferpayTransactionsCollection.js.map +1 -0
  28. package/lib/payment/saferpay/getReturnPath.d.ts +3 -0
  29. package/lib/payment/saferpay/getReturnPath.js +4 -0
  30. package/lib/payment/saferpay/getReturnPath.js.map +1 -0
  31. package/lib/payment/saferpay/index.d.ts +3 -0
  32. package/lib/payment/saferpay/index.js +4 -0
  33. package/lib/payment/saferpay/index.js.map +1 -0
  34. package/lib/payment/saferpay/middleware.d.ts +1 -0
  35. package/lib/payment/saferpay/middleware.js +57 -0
  36. package/lib/payment/saferpay/middleware.js.map +1 -0
  37. package/lib/payment/saferpay/module/configureSaferpayTransactionsModule.d.ts +9 -0
  38. package/lib/payment/saferpay/module/configureSaferpayTransactionsModule.js +24 -0
  39. package/lib/payment/saferpay/module/configureSaferpayTransactionsModule.js.map +1 -0
  40. package/lib/plugins-index.d.ts +0 -1
  41. package/lib/plugins-index.js +6 -2
  42. package/lib/plugins-index.js.map +1 -1
  43. package/package.json +18 -18
  44. package/src/payment/saferpay/adapter.ts +255 -0
  45. package/src/payment/saferpay/api/api/SaferpayClient.ts +79 -0
  46. package/src/payment/{worldline-saferpay/worldline-saferpay-client → saferpay/api}/api/SaferpayConnection.ts +2 -4
  47. package/src/payment/{worldline-saferpay/worldline-saferpay-client → saferpay/api}/models/PaymentPageInitialize.ts +9 -6
  48. package/src/payment/{worldline-saferpay/worldline-saferpay-client → saferpay/api}/models/Response.ts +1 -1
  49. package/src/payment/saferpay/api/models/TransactionCapture.ts +20 -0
  50. package/src/payment/saferpay/buildSignature.ts +9 -0
  51. package/src/payment/saferpay/db/SaferpayTransactionsCollection.ts +13 -0
  52. package/src/payment/saferpay/getReturnPath.ts +10 -0
  53. package/src/payment/saferpay/index.ts +3 -0
  54. package/src/payment/saferpay/middleware.ts +74 -0
  55. package/src/payment/saferpay/module/configureSaferpayTransactionsModule.ts +33 -0
  56. package/src/plugins-index.ts +7 -2
  57. package/lib/payment/worldline-saferpay/index.d.ts +0 -1
  58. package/lib/payment/worldline-saferpay/index.js +0 -112
  59. package/lib/payment/worldline-saferpay/index.js.map +0 -1
  60. package/lib/payment/worldline-saferpay/worldline-saferpay-client/api/SaferpayClient.d.ts +0 -14
  61. package/lib/payment/worldline-saferpay/worldline-saferpay-client/api/SaferpayClient.js +0 -29
  62. package/lib/payment/worldline-saferpay/worldline-saferpay-client/api/SaferpayClient.js.map +0 -1
  63. package/lib/payment/worldline-saferpay/worldline-saferpay-client/api/SaferpayConnection.js.map +0 -1
  64. package/lib/payment/worldline-saferpay/worldline-saferpay-client/index.js.map +0 -1
  65. package/lib/payment/worldline-saferpay/worldline-saferpay-client/models/PaymentMethods.js.map +0 -1
  66. package/lib/payment/worldline-saferpay/worldline-saferpay-client/models/PaymentPageAssert.js.map +0 -1
  67. package/lib/payment/worldline-saferpay/worldline-saferpay-client/models/PaymentPageInitialize.js.map +0 -1
  68. package/lib/payment/worldline-saferpay/worldline-saferpay-client/models/Request.js.map +0 -1
  69. package/lib/payment/worldline-saferpay/worldline-saferpay-client/models/Response.js.map +0 -1
  70. package/lib/payment/worldline-saferpay/worldline-saferpay-client/models/Transaction.js.map +0 -1
  71. package/lib/payment/worldline-saferpay/worldline-saferpay-client/models/TransactionCancel.js.map +0 -1
  72. package/src/payment/worldline-saferpay/index.ts +0 -139
  73. package/src/payment/worldline-saferpay/worldline-saferpay-client/api/SaferpayClient.ts +0 -54
  74. /package/lib/payment/{worldline-saferpay/worldline-saferpay-client → saferpay/api}/api/SaferpayConnection.d.ts +0 -0
  75. /package/lib/payment/{worldline-saferpay/worldline-saferpay-client → saferpay/api}/index.d.ts +0 -0
  76. /package/lib/payment/{worldline-saferpay/worldline-saferpay-client → saferpay/api}/index.js +0 -0
  77. /package/lib/payment/{worldline-saferpay/worldline-saferpay-client → saferpay/api}/models/PaymentMethods.d.ts +0 -0
  78. /package/lib/payment/{worldline-saferpay/worldline-saferpay-client → saferpay/api}/models/PaymentMethods.js +0 -0
  79. /package/lib/payment/{worldline-saferpay/worldline-saferpay-client → saferpay/api}/models/PaymentPageAssert.d.ts +0 -0
  80. /package/lib/payment/{worldline-saferpay/worldline-saferpay-client → saferpay/api}/models/PaymentPageAssert.js +0 -0
  81. /package/lib/payment/{worldline-saferpay/worldline-saferpay-client → saferpay/api}/models/PaymentPageInitialize.js +0 -0
  82. /package/lib/payment/{worldline-saferpay/worldline-saferpay-client → saferpay/api}/models/Request.d.ts +0 -0
  83. /package/lib/payment/{worldline-saferpay/worldline-saferpay-client → saferpay/api}/models/Request.js +0 -0
  84. /package/lib/payment/{worldline-saferpay/worldline-saferpay-client → saferpay/api}/models/Response.js +0 -0
  85. /package/lib/payment/{worldline-saferpay/worldline-saferpay-client → saferpay/api}/models/Transaction.d.ts +0 -0
  86. /package/lib/payment/{worldline-saferpay/worldline-saferpay-client → saferpay/api}/models/Transaction.js +0 -0
  87. /package/lib/payment/{worldline-saferpay/worldline-saferpay-client → saferpay/api}/models/TransactionCancel.d.ts +0 -0
  88. /package/lib/payment/{worldline-saferpay/worldline-saferpay-client → saferpay/api}/models/TransactionCancel.js +0 -0
  89. /package/src/payment/{worldline-saferpay/worldline-saferpay-client → saferpay/api}/index.ts +0 -0
  90. /package/src/payment/{worldline-saferpay/worldline-saferpay-client → saferpay/api}/models/PaymentMethods.ts +0 -0
  91. /package/src/payment/{worldline-saferpay/worldline-saferpay-client → saferpay/api}/models/PaymentPageAssert.ts +0 -0
  92. /package/src/payment/{worldline-saferpay/worldline-saferpay-client → saferpay/api}/models/Request.ts +0 -0
  93. /package/src/payment/{worldline-saferpay/worldline-saferpay-client → saferpay/api}/models/Transaction.ts +0 -0
  94. /package/src/payment/{worldline-saferpay/worldline-saferpay-client → saferpay/api}/models/TransactionCancel.ts +0 -0
@@ -1,112 +0,0 @@
1
- import { PaymentAdapter, PaymentDirector, PaymentError } from '@unchainedshop/core-payment';
2
- import { SaferpayClient } from './worldline-saferpay-client/index.js';
3
- const { WORLDLINE_BASE_URL = 'https://test.saferpay.com/api', WORLDLINE_CUSTOMER_ID, WORLDLINE_USER, WORLDLINE_PW, WORLDLINE_SUCCESS_URL, WORLDLINE_FAILED_URL, } = process.env;
4
- const WordlineSaferpay = {
5
- ...PaymentAdapter,
6
- key: 'shop.unchained.payment.worldline-saferpay',
7
- label: 'Worldline Saferpay',
8
- version: '1.0.0',
9
- typeSupported(type) {
10
- return type === 'GENERIC';
11
- },
12
- actions: (params) => {
13
- const { modules } = params.context;
14
- const saferpayClient = new SaferpayClient(WORLDLINE_BASE_URL, WORLDLINE_CUSTOMER_ID, WORLDLINE_USER, WORLDLINE_PW);
15
- const adapter = {
16
- ...PaymentAdapter.actions(params),
17
- getTerminalId() {
18
- return params.config.find((item) => item.key === 'terminalId')?.value;
19
- },
20
- // eslint-disable-next-line
21
- configurationError() {
22
- // eslint-disable-line
23
- if (!WORLDLINE_BASE_URL ||
24
- !WORLDLINE_CUSTOMER_ID ||
25
- !WORLDLINE_USER ||
26
- !WORLDLINE_PW ||
27
- !adapter.getTerminalId()) {
28
- return PaymentError.INCOMPLETE_CONFIGURATION;
29
- }
30
- return null;
31
- },
32
- isActive() {
33
- if (adapter.configurationError() === null)
34
- return true;
35
- return false;
36
- },
37
- isPayLaterAllowed() {
38
- return false;
39
- },
40
- sign: async (transactionContext = {}) => {
41
- const { orderPayment, order } = params.paymentContext;
42
- const pricing = modules.orders.pricingSheet(order);
43
- const totalAmount = pricing?.total({ useNetPrice: false }).amount;
44
- const paymentPageInitInput = {
45
- RequestHeader: saferpayClient.buildRequestHeader(orderPayment._id, 0),
46
- TerminalId: adapter.getTerminalId(),
47
- Payment: {
48
- Amount: {
49
- Value: totalAmount.toString(),
50
- CurrencyCode: order.currency,
51
- },
52
- OrderId: order._id,
53
- Description: transactionContext.description || 'Bestellung',
54
- },
55
- ReturnUrls: {
56
- Success: `${WORLDLINE_SUCCESS_URL}?order_id=${order._id}`,
57
- Fail: `${WORLDLINE_FAILED_URL}?order_id=${order._id}`,
58
- Abort: `${WORLDLINE_FAILED_URL}?order_id=${order._id}`,
59
- },
60
- };
61
- const paymentPageInit = await saferpayClient.paymentPageInitialize(paymentPageInitInput);
62
- return JSON.stringify({
63
- location: paymentPageInit.RedirectUrl,
64
- transactionId: paymentPageInit.Token,
65
- });
66
- },
67
- charge: async ({ transactionId }) => {
68
- const { orderPayment, order } = params.paymentContext;
69
- const pricing = modules.orders.pricingSheet(order);
70
- const totalAmount = pricing.total({ useNetPrice: false }).amount;
71
- const paymentPageAssert = await saferpayClient.paymentPageAssert({
72
- RequestHeader: saferpayClient.buildRequestHeader(orderPayment._id, 0),
73
- Token: transactionId,
74
- });
75
- const success = !paymentPageAssert.ErrorMessage &&
76
- paymentPageAssert.Transaction.Amount.Value === totalAmount.toString() &&
77
- paymentPageAssert.Transaction.Amount.CurrencyCode === order.currency &&
78
- (paymentPageAssert.Transaction.Status === 'AUTHORIZED' ||
79
- paymentPageAssert.Transaction.Status === 'CAPTURED');
80
- if (success) {
81
- return paymentPageAssert.Transaction;
82
- }
83
- return false;
84
- },
85
- cancel: async () => {
86
- const { orderPayment } = params.paymentContext;
87
- if (!orderPayment)
88
- return false;
89
- const token = orderPayment.context?.token;
90
- if (!token)
91
- return false;
92
- const paymentPageAssert = await saferpayClient.paymentPageAssert({
93
- RequestHeader: saferpayClient.buildRequestHeader(orderPayment._id, 0),
94
- Token: token,
95
- });
96
- const transactionId = paymentPageAssert.Transaction?.Id;
97
- if (paymentPageAssert.Transaction.Status !== 'AUTHORIZED' || !transactionId)
98
- return false;
99
- const transactionCancelRes = await saferpayClient.transactionCancel({
100
- RequestHeader: saferpayClient.buildRequestHeader(orderPayment._id, 0),
101
- TransactionReference: {
102
- TransactionId: transactionId,
103
- },
104
- });
105
- return transactionCancelRes.TransactionId === transactionId;
106
- },
107
- };
108
- return adapter;
109
- },
110
- };
111
- PaymentDirector.registerAdapter(WordlineSaferpay);
112
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/payment/worldline-saferpay/index.ts"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- import { TransactionCancelInput, TransactionCancelResponse } from '../models/TransactionCancel.js';
2
- import { PaymentPageAssertInput, PaymentPageAssertResponse } from '../models/PaymentPageAssert.js';
3
- import { PaymentPageInitializeInput, PaymentPageInitializeResponse } from '../models/PaymentPageInitialize.js';
4
- import { RequestHeader } from '../models/Request.js';
5
- export declare class SaferpayClient {
6
- private conn;
7
- private customerId;
8
- private specVersion;
9
- constructor(baseUrl: string, customerId: string, user: string, password: string, specVersion?: string);
10
- buildRequestHeader(requestId: string, retryIndicator: number): RequestHeader;
11
- paymentPageInitialize(input: PaymentPageInitializeInput): Promise<PaymentPageInitializeResponse>;
12
- paymentPageAssert(input: PaymentPageAssertInput): Promise<PaymentPageAssertResponse>;
13
- transactionCancel(input: TransactionCancelInput): Promise<TransactionCancelResponse>;
14
- }
@@ -1,29 +0,0 @@
1
- import { SaferpayConnection } from './SaferpayConnection.js';
2
- export class SaferpayClient {
3
- conn;
4
- customerId;
5
- specVersion;
6
- constructor(baseUrl, customerId, user, password, specVersion) {
7
- this.customerId = customerId;
8
- this.specVersion = specVersion || '1.27';
9
- this.conn = new SaferpayConnection(baseUrl, user, password);
10
- }
11
- buildRequestHeader(requestId, retryIndicator) {
12
- return {
13
- SpecVersion: this.specVersion,
14
- CustomerId: this.customerId,
15
- RequestId: requestId,
16
- RetryIndicator: retryIndicator,
17
- };
18
- }
19
- async paymentPageInitialize(input) {
20
- return this.conn.post('/Payment/v1/PaymentPage/Initialize', input);
21
- }
22
- async paymentPageAssert(input) {
23
- return this.conn.post('/Payment/v1/PaymentPage/Assert', input);
24
- }
25
- async transactionCancel(input) {
26
- return this.conn.post('/Payment/v1/Transaction/Cancel', input);
27
- }
28
- }
29
- //# sourceMappingURL=SaferpayClient.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SaferpayClient.js","sourceRoot":"","sources":["../../../../../src/payment/worldline-saferpay/worldline-saferpay-client/api/SaferpayClient.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,MAAM,OAAO,cAAc;IACjB,IAAI,CAAqB;IAEzB,UAAU,CAAS;IAEnB,WAAW,CAAS;IAE5B,YACE,OAAe,EACf,UAAkB,EAClB,IAAY,EACZ,QAAgB,EAChB,WAAoB;QAEpB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,WAAW,IAAI,MAAM,CAAC;QACzC,IAAI,CAAC,IAAI,GAAG,IAAI,kBAAkB,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC9D,CAAC;IAEM,kBAAkB,CAAC,SAAiB,EAAE,cAAsB;QACjE,OAAO;YACL,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,SAAS,EAAE,SAAS;YACpB,cAAc,EAAE,cAAc;SAC/B,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,qBAAqB,CAChC,KAAiC;QAEjC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,oCAAoC,EACpC,KAAK,CACoC,CAAC;IAC9C,CAAC;IAEM,KAAK,CAAC,iBAAiB,CAAC,KAA6B;QAC1D,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,gCAAgC,EAAE,KAAK,CAAuC,CAAC;IACvG,CAAC;IAEM,KAAK,CAAC,iBAAiB,CAAC,KAA6B;QAC1D,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,gCAAgC,EAAE,KAAK,CAAuC,CAAC;IACvG,CAAC;CACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"SaferpayConnection.js","sourceRoot":"","sources":["../../../../../src/payment/worldline-saferpay/worldline-saferpay-client/api/SaferpayConnection.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,MAAM,OAAO,kBAAkB;IACrB,OAAO,CAAS;IAEhB,IAAI,CAAS;IAEb,QAAQ,CAAS;IAEzB,YAAmB,OAAe,EAAE,IAAY,EAAE,QAAgB;QAChE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAEO,QAAQ,CAAC,GAAW;QAC1B,OAAO,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;IAC5B,CAAC;IAEO,UAAU;QAChB,OAAO;YACL,cAAc,EAAE,kBAAkB;YAClC,aAAa,EAAE,SAAS,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE,QAAQ,CAAC,CAAC,QAAQ,CACrF,QAAQ,CACT,EAAE;SACJ,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,GAAW,EAAE,IAAY;QACzC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YAC1C,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAC1B,2BAA2B;YAC3B,aAAa;YACb,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;SAC3B,CAAC,CAAC;QACH,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;IACpB,CAAC;CACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/payment/worldline-saferpay/worldline-saferpay-client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"PaymentMethods.js","sourceRoot":"","sources":["../../../../../src/payment/worldline-saferpay/worldline-saferpay-client/models/PaymentMethods.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"PaymentPageAssert.js","sourceRoot":"","sources":["../../../../../src/payment/worldline-saferpay/worldline-saferpay-client/models/PaymentPageAssert.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"PaymentPageInitialize.js","sourceRoot":"","sources":["../../../../../src/payment/worldline-saferpay/worldline-saferpay-client/models/PaymentPageInitialize.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Request.js","sourceRoot":"","sources":["../../../../../src/payment/worldline-saferpay/worldline-saferpay-client/models/Request.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Response.js","sourceRoot":"","sources":["../../../../../src/payment/worldline-saferpay/worldline-saferpay-client/models/Response.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Transaction.js","sourceRoot":"","sources":["../../../../../src/payment/worldline-saferpay/worldline-saferpay-client/models/Transaction.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"TransactionCancel.js","sourceRoot":"","sources":["../../../../../src/payment/worldline-saferpay/worldline-saferpay-client/models/TransactionCancel.ts"],"names":[],"mappings":""}
@@ -1,139 +0,0 @@
1
- import { IPaymentAdapter, PaymentChargeActionResult } from '@unchainedshop/types/payments.js';
2
- import { PaymentAdapter, PaymentDirector, PaymentError } from '@unchainedshop/core-payment';
3
- import { PaymentPageInitializeInput, SaferpayClient } from './worldline-saferpay-client/index.js';
4
-
5
- const {
6
- WORLDLINE_BASE_URL = 'https://test.saferpay.com/api',
7
- WORLDLINE_CUSTOMER_ID,
8
- WORLDLINE_USER,
9
- WORLDLINE_PW,
10
- WORLDLINE_SUCCESS_URL,
11
- WORLDLINE_FAILED_URL,
12
- } = process.env;
13
-
14
- const WordlineSaferpay: IPaymentAdapter = {
15
- ...PaymentAdapter,
16
-
17
- key: 'shop.unchained.payment.worldline-saferpay',
18
- label: 'Worldline Saferpay',
19
- version: '1.0.0',
20
-
21
- typeSupported(type) {
22
- return type === 'GENERIC';
23
- },
24
-
25
- actions: (params) => {
26
- const { modules } = params.context;
27
-
28
- const saferpayClient = new SaferpayClient(
29
- WORLDLINE_BASE_URL,
30
- WORLDLINE_CUSTOMER_ID,
31
- WORLDLINE_USER,
32
- WORLDLINE_PW,
33
- );
34
-
35
- const adapter = {
36
- ...PaymentAdapter.actions(params),
37
-
38
- getTerminalId() {
39
- return params.config.find((item) => item.key === 'terminalId')?.value;
40
- },
41
-
42
- // eslint-disable-next-line
43
- configurationError() {
44
- // eslint-disable-line
45
- if (
46
- !WORLDLINE_BASE_URL ||
47
- !WORLDLINE_CUSTOMER_ID ||
48
- !WORLDLINE_USER ||
49
- !WORLDLINE_PW ||
50
- !adapter.getTerminalId()
51
- ) {
52
- return PaymentError.INCOMPLETE_CONFIGURATION;
53
- }
54
- return null;
55
- },
56
-
57
- isActive() {
58
- if (adapter.configurationError() === null) return true;
59
- return false;
60
- },
61
-
62
- isPayLaterAllowed() {
63
- return false;
64
- },
65
-
66
- sign: async (transactionContext: any = {}) => {
67
- const { orderPayment, order } = params.paymentContext;
68
- const pricing = modules.orders.pricingSheet(order);
69
- const totalAmount = pricing?.total({ useNetPrice: false }).amount;
70
- const paymentPageInitInput: PaymentPageInitializeInput = {
71
- RequestHeader: saferpayClient.buildRequestHeader(orderPayment._id, 0),
72
- TerminalId: adapter.getTerminalId(),
73
- Payment: {
74
- Amount: {
75
- Value: totalAmount.toString(),
76
- CurrencyCode: order.currency,
77
- },
78
- OrderId: order._id,
79
- Description: transactionContext.description || 'Bestellung',
80
- },
81
- ReturnUrls: {
82
- Success: `${WORLDLINE_SUCCESS_URL}?order_id=${order._id}`,
83
- Fail: `${WORLDLINE_FAILED_URL}?order_id=${order._id}`,
84
- Abort: `${WORLDLINE_FAILED_URL}?order_id=${order._id}`,
85
- },
86
- };
87
- const paymentPageInit = await saferpayClient.paymentPageInitialize(paymentPageInitInput);
88
- return JSON.stringify({
89
- location: paymentPageInit.RedirectUrl,
90
- transactionId: paymentPageInit.Token,
91
- });
92
- },
93
-
94
- charge: async ({ transactionId }: { transactionId: string }) => {
95
- const { orderPayment, order } = params.paymentContext;
96
- const pricing = modules.orders.pricingSheet(order);
97
- const totalAmount = pricing.total({ useNetPrice: false }).amount;
98
- const paymentPageAssert = await saferpayClient.paymentPageAssert({
99
- RequestHeader: saferpayClient.buildRequestHeader(orderPayment._id, 0),
100
- Token: transactionId,
101
- });
102
- const success =
103
- !paymentPageAssert.ErrorMessage &&
104
- paymentPageAssert.Transaction.Amount.Value === totalAmount.toString() &&
105
- paymentPageAssert.Transaction.Amount.CurrencyCode === order.currency &&
106
- (paymentPageAssert.Transaction.Status === 'AUTHORIZED' ||
107
- paymentPageAssert.Transaction.Status === 'CAPTURED');
108
- if (success) {
109
- return paymentPageAssert.Transaction as PaymentChargeActionResult;
110
- }
111
- return false;
112
- },
113
-
114
- cancel: async () => {
115
- const { orderPayment } = params.paymentContext;
116
- if (!orderPayment) return false;
117
- const token = orderPayment.context?.token;
118
- if (!token) return false;
119
- const paymentPageAssert = await saferpayClient.paymentPageAssert({
120
- RequestHeader: saferpayClient.buildRequestHeader(orderPayment._id, 0),
121
- Token: token,
122
- });
123
- const transactionId = paymentPageAssert.Transaction?.Id;
124
- if (paymentPageAssert.Transaction.Status !== 'AUTHORIZED' || !transactionId) return false;
125
- const transactionCancelRes = await saferpayClient.transactionCancel({
126
- RequestHeader: saferpayClient.buildRequestHeader(orderPayment._id, 0),
127
- TransactionReference: {
128
- TransactionId: transactionId,
129
- },
130
- });
131
- return transactionCancelRes.TransactionId === transactionId;
132
- },
133
- };
134
-
135
- return adapter;
136
- },
137
- };
138
-
139
- PaymentDirector.registerAdapter(WordlineSaferpay);
@@ -1,54 +0,0 @@
1
- import { TransactionCancelInput, TransactionCancelResponse } from '../models/TransactionCancel.js';
2
- import { PaymentPageAssertInput, PaymentPageAssertResponse } from '../models/PaymentPageAssert.js';
3
- import {
4
- PaymentPageInitializeInput,
5
- PaymentPageInitializeResponse,
6
- } from '../models/PaymentPageInitialize.js';
7
- import { RequestHeader } from '../models/Request.js';
8
- import { SaferpayConnection } from './SaferpayConnection.js';
9
-
10
- export class SaferpayClient {
11
- private conn: SaferpayConnection;
12
-
13
- private customerId: string;
14
-
15
- private specVersion: string;
16
-
17
- public constructor(
18
- baseUrl: string,
19
- customerId: string,
20
- user: string,
21
- password: string,
22
- specVersion?: string,
23
- ) {
24
- this.customerId = customerId;
25
- this.specVersion = specVersion || '1.27';
26
- this.conn = new SaferpayConnection(baseUrl, user, password);
27
- }
28
-
29
- public buildRequestHeader(requestId: string, retryIndicator: number): RequestHeader {
30
- return {
31
- SpecVersion: this.specVersion,
32
- CustomerId: this.customerId,
33
- RequestId: requestId,
34
- RetryIndicator: retryIndicator,
35
- };
36
- }
37
-
38
- public async paymentPageInitialize(
39
- input: PaymentPageInitializeInput,
40
- ): Promise<PaymentPageInitializeResponse> {
41
- return this.conn.post(
42
- '/Payment/v1/PaymentPage/Initialize',
43
- input,
44
- ) as Promise<PaymentPageInitializeResponse>;
45
- }
46
-
47
- public async paymentPageAssert(input: PaymentPageAssertInput): Promise<PaymentPageAssertResponse> {
48
- return this.conn.post('/Payment/v1/PaymentPage/Assert', input) as Promise<PaymentPageAssertResponse>;
49
- }
50
-
51
- public async transactionCancel(input: TransactionCancelInput): Promise<TransactionCancelResponse> {
52
- return this.conn.post('/Payment/v1/Transaction/Cancel', input) as Promise<TransactionCancelResponse>;
53
- }
54
- }