awesome-node-checkout 1.2.0 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +24 -0
- package/README.md +30 -14
- package/dist/adapters/express/index.d.ts +7 -3
- package/dist/adapters/express/index.d.ts.map +1 -1
- package/dist/adapters/express/index.js +31 -16
- package/dist/adapters/express/index.js.map +1 -1
- package/dist/checkout-configurator.d.ts +4 -0
- package/dist/checkout-configurator.d.ts.map +1 -1
- package/dist/checkout-configurator.js +25 -1
- package/dist/checkout-configurator.js.map +1 -1
- package/dist/interfaces/payment-provider.interface.d.ts +1 -0
- package/dist/interfaces/payment-provider.interface.d.ts.map +1 -1
- package/dist/models/payment-result.model.d.ts +3 -0
- package/dist/models/payment-result.model.d.ts.map +1 -1
- package/dist/providers/nexi/nexi.provider.d.ts +5 -0
- package/dist/providers/nexi/nexi.provider.d.ts.map +1 -1
- package/dist/providers/nexi/nexi.provider.js +32 -13
- package/dist/providers/nexi/nexi.provider.js.map +1 -1
- package/dist/providers/paypal/paypal.provider.d.ts.map +1 -1
- package/dist/providers/paypal/paypal.provider.js +17 -10
- package/dist/providers/paypal/paypal.provider.js.map +1 -1
- package/dist/providers/satispay/satispay.provider.d.ts +25 -1
- package/dist/providers/satispay/satispay.provider.d.ts.map +1 -1
- package/dist/providers/satispay/satispay.provider.js +105 -39
- package/dist/providers/satispay/satispay.provider.js.map +1 -1
- package/dist/utils/parsing.util.d.ts +17 -0
- package/dist/utils/parsing.util.d.ts.map +1 -0
- package/dist/utils/parsing.util.js +60 -0
- package/dist/utils/parsing.util.js.map +1 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,30 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [1.2.1] - 2026-09-28
|
|
9
|
+
|
|
10
|
+
### Security
|
|
11
|
+
- **Satispay**: Disallowed request body acting as headers during webhook signature verification. Resolves #16.
|
|
12
|
+
- **Satispay**: Enforced timestamp freshness window (`signatureMaxAgeMs`, default 5 minutes) on webhook signatures to prevent replay attacks. Resolves #16.
|
|
13
|
+
- **Satispay**: Strictly bound `Digest` header validation to the raw request body (`context.rawBody` or stringified body) verifying `SHA-256=<base64>`. Resolves #16.
|
|
14
|
+
- **Satispay**: Enforced `(request-target)` to be derived solely from trusted `context.method` and `context.path`. Resolves #16.
|
|
15
|
+
- **Satispay**: URL-encoded `payment_id` across API endpoints and strictly validated payment ID format (`/^[A-Za-z0-9_-]{1,64}$/`) rejecting directory traversal patterns. Resolves #16.
|
|
16
|
+
- **Nexi**: Enforced strict 40-character hexadecimal format validation on outcome MAC strings to prevent `RangeError` during timing-safe comparisons. Resolves #17.
|
|
17
|
+
- **Express Adapter**: Prevented sensitive internal provider payload data from being echoed in HTTP webhook JSON responses (strips `raw`). Resolves #17.
|
|
18
|
+
|
|
19
|
+
### Fixed
|
|
20
|
+
- **PayPal**: Payment `success` is now strictly derived from capture status (`capture.status === 'COMPLETED'`) in `executePayment` and `getPaymentDetails`. Payments with non-completed or missing captures evaluate to `success: false`. Resolves #17.
|
|
21
|
+
- **Nexi**: Removed `report[0]` fallback in `getPaymentDetails` when the requested transaction order ID is not present in the BackOffice report, returning `{ success: false, error: 'Report not found' }`. Resolves #17.
|
|
22
|
+
- **Nexi**: Mapped ISO-4217 numeric currency codes (e.g. `'978'` -> `'EUR'`, `'840'` -> `'USD'`) to uppercase alpha-3 codes, returning `undefined` for unrecognized numeric codes. Resolves #17.
|
|
23
|
+
- **Core**: Empty or whitespace-only amount strings are parsed to `undefined` rather than coercing to `0`. Resolves #17.
|
|
24
|
+
- **Core**: Bounded `paymentOrders` map capacity to 10,000 entries with FIFO eviction to prevent memory leaks in long-running processes. Resolves #17.
|
|
25
|
+
- **Express Adapter**: Handled `res.headersSent` when `buildPaymentRequest` sends a response directly via `ctx.res` and returns `null`, preventing `ERR_HTTP_HEADERS_SENT` / double response errors. Resolves #17.
|
|
26
|
+
- **Documentation**: Corrected `publicPaths` examples, clarified Satispay callback URL configuration, raw body middleware, and GET callback authentication. Resolves #17.
|
|
27
|
+
|
|
28
|
+
### Added
|
|
29
|
+
- **Core**: Added optional `orderId` to `PaymentResult` and `WebhookResult`. Resolves #17.
|
|
30
|
+
- **Core**: Added `rawBody` support to `context` parameter in `IPaymentProvider.handleWebhook`. Resolves #16.
|
|
31
|
+
|
|
8
32
|
## [1.2.0] - 2026-09-27
|
|
9
33
|
|
|
10
34
|
### Security
|
package/README.md
CHANGED
|
@@ -41,7 +41,8 @@ checkout
|
|
|
41
41
|
keyId: process.env.SATISPAY_KEY_ID!,
|
|
42
42
|
privateKey: fs.readFileSync('private.pem', 'utf8'),
|
|
43
43
|
environment: 'sandbox',
|
|
44
|
-
serverUrl: 'https://myapp.com',
|
|
44
|
+
serverUrl: 'https://myapp.com', // Base URL for callbacks: serverUrl + callbackPath
|
|
45
|
+
callbackPath: '/checkout/satispay/webhook', // Optional: defaults to /checkout/satispay/webhook
|
|
45
46
|
}));
|
|
46
47
|
|
|
47
48
|
// Use directly — no HTTP framework needed
|
|
@@ -66,7 +67,12 @@ import express from 'express';
|
|
|
66
67
|
import { createCheckoutRouter } from 'awesome-node-checkout/express';
|
|
67
68
|
|
|
68
69
|
const app = express();
|
|
69
|
-
|
|
70
|
+
// Capture rawBody for webhook signature & digest verification (e.g. Satispay)
|
|
71
|
+
app.use(express.json({
|
|
72
|
+
verify: (req, _res, buf) => {
|
|
73
|
+
(req as any).rawBody = buf;
|
|
74
|
+
},
|
|
75
|
+
}));
|
|
70
76
|
// If using Nexi server notifications (urlpost), urlencoded parser is required:
|
|
71
77
|
app.use(express.urlencoded({ extended: false }));
|
|
72
78
|
|
|
@@ -106,10 +112,10 @@ app.use(
|
|
|
106
112
|
// Verify payment belongs to current session or user
|
|
107
113
|
},
|
|
108
114
|
},
|
|
109
|
-
// Public paths matching segments safely without substring bypasses
|
|
115
|
+
// Public paths matching segments safely without substring bypasses (accepts strings or segment arrays)
|
|
110
116
|
publicPaths: [
|
|
111
|
-
|
|
112
|
-
|
|
117
|
+
':provider/webhook',
|
|
118
|
+
':provider/redirect',
|
|
113
119
|
],
|
|
114
120
|
}),
|
|
115
121
|
);
|
|
@@ -129,12 +135,20 @@ fastify.post('/checkout/:provider', async (req, reply) => {
|
|
|
129
135
|
reply.status(result.success ? 201 : 400).send(result);
|
|
130
136
|
});
|
|
131
137
|
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
+
// Handle both POST and GET webhooks (e.g. Satispay GET callback vs Nexi/Satispay POST notification)
|
|
139
|
+
fastify.route({
|
|
140
|
+
method: ['GET', 'POST'],
|
|
141
|
+
url: '/checkout/:provider/webhook',
|
|
142
|
+
handler: async (req, reply) => {
|
|
143
|
+
const result = await checkout.handleWebhook(req.params.provider, req.body, req.headers, req.query, {
|
|
144
|
+
method: req.method,
|
|
145
|
+
path: req.url,
|
|
146
|
+
rawBody: (req as any).rawBody,
|
|
147
|
+
});
|
|
148
|
+
// Strip internal raw data before responding
|
|
149
|
+
const { raw, ...safeResult } = result;
|
|
150
|
+
reply.status(result.success ? 200 : 400).send(safeResult);
|
|
151
|
+
},
|
|
138
152
|
});
|
|
139
153
|
```
|
|
140
154
|
|
|
@@ -167,18 +181,20 @@ Relying solely on front-end browser redirects (`GET /:provider/redirect`) to ful
|
|
|
167
181
|
- **Amount Mismatch**: Always verify that the captured payment amount matches your order ledger before fulfilling goods or services.
|
|
168
182
|
|
|
169
183
|
To ensure safe fulfillment:
|
|
170
|
-
1. **Verify Amount & Currency**: `PaymentResult` and `WebhookResult` return `amount` and `currency` extracted directly from the provider.
|
|
184
|
+
1. **Verify Amount & Currency**: `PaymentResult` and `WebhookResult` return `amount` and `currency` extracted directly from the provider. Compare amounts in minor units (cents) or with rounding to prevent floating-point discrepancies:
|
|
171
185
|
```typescript
|
|
172
186
|
const result = await checkout.handleRedirect(provider, req.query);
|
|
173
187
|
if (result.success && result.status === 'COMPLETED') {
|
|
174
|
-
|
|
188
|
+
const orderCents = Math.round(order.totalAmount * 100);
|
|
189
|
+
const resultCents = Math.round((result.amount ?? 0) * 100);
|
|
190
|
+
if (resultCents !== orderCents || result.currency !== order.currency) {
|
|
175
191
|
throw new Error('Authorized amount does not match order total');
|
|
176
192
|
}
|
|
177
193
|
}
|
|
178
194
|
```
|
|
179
195
|
2. **Use Server Notifications / Webhooks**:
|
|
180
196
|
- For **Nexi**: Pass `notifyUrl` in `PaymentRequest` (e.g. `https://myapp.com/checkout/nexi/webhook`). Nexi sends a server-to-server POST notification (`urlpost`) with the 7-field outcome MAC. Ensure your app includes `app.use(express.urlencoded({ extended: false }))`.
|
|
181
|
-
- For **Satispay**:
|
|
197
|
+
- For **Satispay**: Set `serverUrl` (and optionally `callbackPath`, default `/checkout/satispay/webhook`). POST notifications verify RSA-SHA256 HTTP signatures against Satispay's RSA public key with `(request-target)` and SHA-256 `Digest` binding to `rawBody`. GET callbacks (`?payment_id=...`) are verified by server-side query to Satispay's API with merchant RSA authentication.
|
|
182
198
|
3. **Idempotency**: Because both the redirect callback and the webhook notification may arrive for the same order, ensure your fulfillment handler is idempotent.
|
|
183
199
|
|
|
184
200
|
---
|
|
@@ -15,12 +15,15 @@ export interface ExpressCheckoutOptions {
|
|
|
15
15
|
/**
|
|
16
16
|
* Route patterns that bypass `middleware` (e.g. [':provider/webhook', ':provider/redirect']).
|
|
17
17
|
* Matched by path segments after the mount point (:provider matches any single segment).
|
|
18
|
+
* Supports both path strings (':provider/webhook') and segment arrays ([':provider', 'webhook']).
|
|
18
19
|
*/
|
|
19
|
-
publicPaths?: string[];
|
|
20
|
+
publicPaths?: (string | string[])[];
|
|
20
21
|
/**
|
|
21
22
|
* Builds the PaymentRequest on the server (amount from your own order), ignoring the client body.
|
|
23
|
+
* If the hook sends an HTTP response directly (e.g. via `ctx.res.status(403)...`),
|
|
24
|
+
* returning `null` or `undefined` halts further adapter processing without error.
|
|
22
25
|
*/
|
|
23
|
-
buildPaymentRequest?: (req: Request, ctx: PaymentRequestContext) => PaymentRequest | Promise<PaymentRequest>;
|
|
26
|
+
buildPaymentRequest?: (req: Request, ctx: PaymentRequestContext) => PaymentRequest | null | undefined | Promise<PaymentRequest | null | undefined>;
|
|
24
27
|
/**
|
|
25
28
|
* When configured, GET /:provider/redirect responds with a 302 redirect
|
|
26
29
|
* to the URL returned by onSuccess or onFailure instead of JSON.
|
|
@@ -55,8 +58,9 @@ export interface ExpressCheckoutOptions {
|
|
|
55
58
|
/**
|
|
56
59
|
* Matches a request path against public path patterns by segments.
|
|
57
60
|
* ':provider' matches any single non-empty segment.
|
|
61
|
+
* Accepts patterns formatted as string ('/:provider/webhook') or segment arrays ([':provider', 'webhook']).
|
|
58
62
|
*/
|
|
59
|
-
export declare function isPathPublic(reqPath: string, publicPaths: string[]): boolean;
|
|
63
|
+
export declare function isPathPublic(reqPath: string, publicPaths: (string | string[])[]): boolean;
|
|
60
64
|
/**
|
|
61
65
|
* Creates an Express Router with all checkout endpoints pre-wired.
|
|
62
66
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/express/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAElE,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,QAAQ,CAAC;CACf;AAED,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IACH,UAAU,CAAC,EAAE,cAAc,EAAE,CAAC;IAE9B
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/express/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAElE,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,QAAQ,CAAC;CACf;AAED,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IACH,UAAU,CAAC,EAAE,cAAc,EAAE,CAAC;IAE9B;;;;OAIG;IACH,WAAW,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC;IAEpC;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,CACpB,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,qBAAqB,KACvB,cAAc,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IAEpF;;;OAGG;IACH,QAAQ,CAAC,EAAE;QACT,SAAS,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,OAAO,KAAK,MAAM,CAAC;QAC3D,SAAS,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,OAAO,KAAK,MAAM,CAAC;KAC5D,CAAC;IAEF;;;OAGG;IACH,OAAO,CAAC,EAAE;QACR,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,UAAU,CAAC,EAAE,cAAc,EAAE,CAAC;KAC/B,CAAC;IAEF;;;OAGG;IACH,MAAM,CAAC,EAAE;QACP,UAAU,CAAC,EAAE,cAAc,EAAE,CAAC;KAC/B,CAAC;IAEF;;OAEG;IACH,OAAO,CAAC,EAAE;QACR,UAAU,CAAC,EAAE,cAAc,EAAE,CAAC;QAC9B,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;KAC7E,CAAC;CACH;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC,EAAE,GAAG,OAAO,CAgBzF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,oBAAoB,EAC9B,OAAO,GAAE,sBAA2B,GACnC,MAAM,CAwLR"}
|
|
@@ -7,16 +7,19 @@ const errors_1 = require("../../models/errors");
|
|
|
7
7
|
/**
|
|
8
8
|
* Matches a request path against public path patterns by segments.
|
|
9
9
|
* ':provider' matches any single non-empty segment.
|
|
10
|
+
* Accepts patterns formatted as string ('/:provider/webhook') or segment arrays ([':provider', 'webhook']).
|
|
10
11
|
*/
|
|
11
12
|
function isPathPublic(reqPath, publicPaths) {
|
|
12
13
|
const reqSegments = reqPath.split('/').filter(Boolean);
|
|
13
14
|
return publicPaths.some((pattern) => {
|
|
14
|
-
const patternSegments =
|
|
15
|
+
const patternSegments = Array.isArray(pattern)
|
|
16
|
+
? pattern
|
|
17
|
+
: pattern.split('/').filter(Boolean);
|
|
15
18
|
if (reqSegments.length !== patternSegments.length) {
|
|
16
19
|
return false;
|
|
17
20
|
}
|
|
18
21
|
return patternSegments.every((patSeg, i) => {
|
|
19
|
-
if (patSeg === ':provider') {
|
|
22
|
+
if (patSeg === ':provider' || patSeg.startsWith(':')) {
|
|
20
23
|
return reqSegments[i].length > 0;
|
|
21
24
|
}
|
|
22
25
|
return patSeg === reqSegments[i];
|
|
@@ -81,27 +84,31 @@ function createCheckoutRouter(checkout, options = {}) {
|
|
|
81
84
|
const provider = String(req.params.provider);
|
|
82
85
|
let paymentRequest;
|
|
83
86
|
if (options.buildPaymentRequest) {
|
|
84
|
-
|
|
87
|
+
const customReq = await options.buildPaymentRequest(req, {
|
|
85
88
|
provider,
|
|
86
89
|
res,
|
|
87
90
|
});
|
|
88
|
-
if (
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
typeof
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
91
|
+
if (res.headersSent) {
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
if (!customReq ||
|
|
95
|
+
typeof customReq !== 'object' ||
|
|
96
|
+
typeof customReq.amount !== 'number' ||
|
|
97
|
+
!Number.isFinite(customReq.amount) ||
|
|
98
|
+
customReq.amount <= 0 ||
|
|
99
|
+
typeof customReq.currency !== 'string' ||
|
|
100
|
+
customReq.currency.trim() === '' ||
|
|
101
|
+
typeof customReq.returnUrl !== 'string' ||
|
|
102
|
+
customReq.returnUrl.trim() === '' ||
|
|
103
|
+
typeof customReq.cancelUrl !== 'string' ||
|
|
104
|
+
customReq.cancelUrl.trim() === '') {
|
|
99
105
|
return res.status(400).json({
|
|
100
106
|
success: false,
|
|
101
107
|
code: 'INVALID_PAYMENT_REQUEST',
|
|
102
108
|
error: 'Invalid payment request returned by buildPaymentRequest: amount must be a positive number, currency, returnUrl, and cancelUrl are required strings',
|
|
103
109
|
});
|
|
104
110
|
}
|
|
111
|
+
paymentRequest = customReq;
|
|
105
112
|
}
|
|
106
113
|
else {
|
|
107
114
|
const body = req.body;
|
|
@@ -164,8 +171,14 @@ function createCheckoutRouter(checkout, options = {}) {
|
|
|
164
171
|
// ---- GET & POST /:provider/webhook — handle webhook ----------------------
|
|
165
172
|
const webhookHandler = async (req, res) => {
|
|
166
173
|
try {
|
|
167
|
-
const result = await checkout.handleWebhook(String(req.params.provider), req.body, req.headers, req.query, {
|
|
168
|
-
|
|
174
|
+
const result = await checkout.handleWebhook(String(req.params.provider), req.body, req.headers, req.query, {
|
|
175
|
+
method: req.method,
|
|
176
|
+
path: req.originalUrl || req.url,
|
|
177
|
+
rawBody: req.rawBody ?? (Buffer.isBuffer(req.body) ? req.body : undefined),
|
|
178
|
+
});
|
|
179
|
+
// Sanitize: do not echo raw provider payload in webhook response
|
|
180
|
+
const { raw, ...safeResult } = result;
|
|
181
|
+
res.status(result.success ? 200 : 400).json(safeResult);
|
|
169
182
|
}
|
|
170
183
|
catch (err) {
|
|
171
184
|
sendError(res, err);
|
|
@@ -214,6 +227,8 @@ function createCheckoutRouter(checkout, options = {}) {
|
|
|
214
227
|
// Helpers
|
|
215
228
|
// ---------------------------------------------------------------------------
|
|
216
229
|
function sendError(res, err) {
|
|
230
|
+
if (res.headersSent)
|
|
231
|
+
return;
|
|
217
232
|
if (err instanceof errors_1.CheckoutError) {
|
|
218
233
|
const statusMap = {
|
|
219
234
|
PROVIDER_NOT_FOUND: 404,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/express/index.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/express/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,10 +27,13 @@ import { CheckoutEventBus } from './events/checkout-event-bus';
|
|
|
27
27
|
export declare class CheckoutConfigurator {
|
|
28
28
|
private readonly config;
|
|
29
29
|
private readonly providers;
|
|
30
|
+
private readonly maxPaymentOrders;
|
|
30
31
|
private readonly paymentOrders;
|
|
31
32
|
/** Event bus — subscribe to payment lifecycle events */
|
|
32
33
|
readonly events: CheckoutEventBus;
|
|
33
34
|
constructor(config?: CheckoutConfig);
|
|
35
|
+
/** Stores a paymentId -> orderId mapping with bounded capacity to prevent memory leaks */
|
|
36
|
+
private setPaymentOrder;
|
|
34
37
|
/** Emits an event only when `config.emitEvents` is not explicitly `false`. */
|
|
35
38
|
private emit;
|
|
36
39
|
/**
|
|
@@ -60,6 +63,7 @@ export declare class CheckoutConfigurator {
|
|
|
60
63
|
handleWebhook(providerName: string, body?: Record<string, unknown>, headers?: Record<string, string>, query?: Record<string, string>, context?: {
|
|
61
64
|
method?: string;
|
|
62
65
|
path?: string;
|
|
66
|
+
rawBody?: Buffer | string;
|
|
63
67
|
}): Promise<WebhookResult>;
|
|
64
68
|
/**
|
|
65
69
|
* Handle the redirect callback from the provider (query params).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkout-configurator.d.ts","sourceRoot":"","sources":["../src/checkout-configurator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAEhE,OAAO,EAAE,gBAAgB,EAA2C,MAAM,6BAA6B,CAAC;AAExG;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,oBAAoB;
|
|
1
|
+
{"version":3,"file":"checkout-configurator.d.ts","sourceRoot":"","sources":["../src/checkout-configurator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAEhE,OAAO,EAAE,gBAAgB,EAA2C,MAAM,6BAA6B,CAAC;AAExG;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,oBAAoB;IAQnB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAPnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA4C;IACtE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAkC;IAEhE,wDAAwD;IACxD,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAA0B;gBAE9B,MAAM,GAAE,cAAmB;IAExD,0FAA0F;IAC1F,OAAO,CAAC,eAAe;IAUvB,8EAA8E;YAChE,IAAI;IASlB;;;OAGG;IACH,gBAAgB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI;IAalD;;;OAGG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB;IAY3C,oDAAoD;IACpD,sBAAsB,IAAI,MAAM,EAAE;IAIlC,sDAAsD;IAChD,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;IAkB1F,mDAAmD;IAC7C,cAAc,CAClB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,EACjB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC5B,OAAO,CAAC,aAAa,CAAC;IAkBzB,2DAA2D;IACrD,iBAAiB,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAKxF,qCAAqC;IAC/B,aAAa,CACjB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,aAAa,CAAC;IAkBzB;;;OAGG;IACG,aAAa,CACjB,YAAY,EAAE,MAAM,EACpB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,EACpC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GACtE,OAAO,CAAC,aAAa,CAAC;IAmCzB;;;OAGG;IACG,cAAc,CAClB,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC5B,OAAO,CAAC,aAAa,CAAC;CA6B1B"}
|
|
@@ -28,10 +28,21 @@ class CheckoutConfigurator {
|
|
|
28
28
|
constructor(config = {}) {
|
|
29
29
|
this.config = config;
|
|
30
30
|
this.providers = new Map();
|
|
31
|
+
this.maxPaymentOrders = 10000;
|
|
31
32
|
this.paymentOrders = new Map();
|
|
32
33
|
/** Event bus — subscribe to payment lifecycle events */
|
|
33
34
|
this.events = new checkout_event_bus_1.CheckoutEventBus();
|
|
34
35
|
}
|
|
36
|
+
/** Stores a paymentId -> orderId mapping with bounded capacity to prevent memory leaks */
|
|
37
|
+
setPaymentOrder(paymentId, orderId) {
|
|
38
|
+
if (this.paymentOrders.size >= this.maxPaymentOrders) {
|
|
39
|
+
const firstKey = this.paymentOrders.keys().next().value;
|
|
40
|
+
if (firstKey) {
|
|
41
|
+
this.paymentOrders.delete(firstKey);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
this.paymentOrders.set(paymentId, orderId);
|
|
45
|
+
}
|
|
35
46
|
/** Emits an event only when `config.emitEvents` is not explicitly `false`. */
|
|
36
47
|
async emit(event, data) {
|
|
37
48
|
if (this.config.emitEvents !== false) {
|
|
@@ -70,7 +81,8 @@ class CheckoutConfigurator {
|
|
|
70
81
|
const provider = this.getProvider(providerName);
|
|
71
82
|
const result = await provider.createPayment(request);
|
|
72
83
|
if (result.paymentId && request.orderId) {
|
|
73
|
-
this.
|
|
84
|
+
this.setPaymentOrder(result.paymentId, request.orderId);
|
|
85
|
+
result.orderId = request.orderId;
|
|
74
86
|
}
|
|
75
87
|
await this.emit(result.success ? 'payment.created' : 'payment.failed', {
|
|
76
88
|
provider: providerName,
|
|
@@ -87,6 +99,9 @@ class CheckoutConfigurator {
|
|
|
87
99
|
const provider = this.getProvider(providerName);
|
|
88
100
|
const result = await provider.executePayment(paymentId, data);
|
|
89
101
|
const orderId = this.paymentOrders.get(paymentId);
|
|
102
|
+
if (orderId && !result.orderId) {
|
|
103
|
+
result.orderId = orderId;
|
|
104
|
+
}
|
|
90
105
|
await this.emit(result.success ? 'payment.completed' : 'payment.failed', {
|
|
91
106
|
provider: providerName,
|
|
92
107
|
paymentId,
|
|
@@ -107,6 +122,9 @@ class CheckoutConfigurator {
|
|
|
107
122
|
const provider = this.getProvider(providerName);
|
|
108
123
|
const result = await provider.refundPayment(paymentId, amount);
|
|
109
124
|
const orderId = this.paymentOrders.get(paymentId);
|
|
125
|
+
if (orderId && !result.orderId) {
|
|
126
|
+
result.orderId = orderId;
|
|
127
|
+
}
|
|
110
128
|
await this.emit('payment.refunded', {
|
|
111
129
|
provider: providerName,
|
|
112
130
|
paymentId,
|
|
@@ -134,6 +152,9 @@ class CheckoutConfigurator {
|
|
|
134
152
|
rawAny?.codTrans ??
|
|
135
153
|
query?.order_id ??
|
|
136
154
|
(result.paymentId ? this.paymentOrders.get(result.paymentId) : undefined);
|
|
155
|
+
if (orderId && !result.orderId) {
|
|
156
|
+
result.orderId = orderId;
|
|
157
|
+
}
|
|
137
158
|
await this.emit('webhook.received', {
|
|
138
159
|
provider: providerName,
|
|
139
160
|
paymentId: result.paymentId,
|
|
@@ -158,6 +179,9 @@ class CheckoutConfigurator {
|
|
|
158
179
|
const orderId = (result.paymentId ? this.paymentOrders.get(result.paymentId) : undefined) ??
|
|
159
180
|
query?.order_id ??
|
|
160
181
|
query?.codTrans;
|
|
182
|
+
if (orderId && !result.orderId) {
|
|
183
|
+
result.orderId = orderId;
|
|
184
|
+
}
|
|
161
185
|
await this.emit(result.success ? 'payment.completed' : 'payment.failed', {
|
|
162
186
|
provider: providerName,
|
|
163
187
|
paymentId: result.paymentId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkout-configurator.js","sourceRoot":"","sources":["../src/checkout-configurator.ts"],"names":[],"mappings":";;;AAIA,4CAAgD;AAChD,oEAAwG;AAExG;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAa,oBAAoB;
|
|
1
|
+
{"version":3,"file":"checkout-configurator.js","sourceRoot":"","sources":["../src/checkout-configurator.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,6 +27,7 @@ export interface IPaymentProvider {
|
|
|
27
27
|
handleWebhook?(body?: Record<string, unknown>, headers?: Record<string, string>, query?: Record<string, string>, context?: {
|
|
28
28
|
method?: string;
|
|
29
29
|
path?: string;
|
|
30
|
+
rawBody?: Buffer | string;
|
|
30
31
|
}): Promise<WebhookResult>;
|
|
31
32
|
/**
|
|
32
33
|
* Handle the redirect callback from the provider (query params from returnUrl).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payment-provider.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/payment-provider.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE9E,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE5D,MAAM,WAAW,gBAAgB;IAC/B,0EAA0E;IAC1E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAE3B,8FAA8F;IAC9F,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAE/D,mDAAmD;IACnD,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAEzF,2DAA2D;IAC3D,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAE7D,4DAA4D;IAC5D,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAE1E;;;;OAIG;IACH,aAAa,CAAC,CACZ,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAChC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,
|
|
1
|
+
{"version":3,"file":"payment-provider.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/payment-provider.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE9E,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE5D,MAAM,WAAW,gBAAgB;IAC/B,0EAA0E;IAC1E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAE3B,8FAA8F;IAC9F,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAE/D,mDAAmD;IACnD,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAEzF,2DAA2D;IAC3D,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAE7D,4DAA4D;IAC5D,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAE1E;;;;OAIG;IACH,aAAa,CAAC,CACZ,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAChC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GACtE,OAAO,CAAC,aAAa,CAAC,CAAC;IAE1B;;;OAGG;IACH,cAAc,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;CACxE"}
|
|
@@ -11,6 +11,8 @@ export interface PaymentResult {
|
|
|
11
11
|
amount?: number;
|
|
12
12
|
/** ISO 4217 alpha code reported by the provider (e.g. 'EUR') */
|
|
13
13
|
currency?: string;
|
|
14
|
+
/** Order identifier associated with the payment if tracked */
|
|
15
|
+
orderId?: string;
|
|
14
16
|
/** Error message if success is false */
|
|
15
17
|
error?: string;
|
|
16
18
|
/** Raw provider response — useful for debugging or provider-specific fields */
|
|
@@ -20,6 +22,7 @@ export interface PaymentResult {
|
|
|
20
22
|
export interface WebhookResult {
|
|
21
23
|
success: boolean;
|
|
22
24
|
paymentId?: string;
|
|
25
|
+
orderId?: string;
|
|
23
26
|
status?: string;
|
|
24
27
|
/** Amount reported by the provider, major units (same unit as PaymentRequest.amount) */
|
|
25
28
|
amount?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payment-result.model.d.ts","sourceRoot":"","sources":["../../src/models/payment-result.model.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IAEjB,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,sFAAsF;IACtF,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,wFAAwF;IACxF,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,+EAA+E;IAC/E,GAAG,CAAC,EAAE,GAAG,CAAC;CACX;AAED,yCAAyC;AACzC,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,wFAAwF;IACxF,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,GAAG,CAAC;CACX"}
|
|
1
|
+
{"version":3,"file":"payment-result.model.d.ts","sourceRoot":"","sources":["../../src/models/payment-result.model.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IAEjB,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,sFAAsF;IACtF,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,wFAAwF;IACxF,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,8DAA8D;IAC9D,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,+EAA+E;IAC/E,GAAG,CAAC,EAAE,GAAG,CAAC;CACX;AAED,yCAAyC;AACzC,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,wFAAwF;IACxF,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,GAAG,CAAC;CACX"}
|
|
@@ -47,6 +47,11 @@ export declare class NexiProvider extends BasePaymentProvider {
|
|
|
47
47
|
* Format: `alias={alias}codTrans={codTrans}importo={importo}timestamp={timestamp}{macKey}`
|
|
48
48
|
*/
|
|
49
49
|
private generateRefundMac;
|
|
50
|
+
/**
|
|
51
|
+
/**
|
|
52
|
+
* Validates that the MAC is a string of exactly 40 hexadecimal characters.
|
|
53
|
+
*/
|
|
54
|
+
private isValidHexMac;
|
|
50
55
|
/**
|
|
51
56
|
* Verifies the SHA-1 outcome MAC included in a Nexi POST-back response or server notification.
|
|
52
57
|
* Format: `codTrans={codTrans}esito={esito}importo={importo}divisa={divisa}data={data}orario={orario}codAut={codAut}{macKey}`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nexi.provider.d.ts","sourceRoot":"","sources":["../../../src/providers/nexi/nexi.provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"nexi.provider.d.ts","sourceRoot":"","sources":["../../../src/providers/nexi/nexi.provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAGjF,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yBAAyB;IACzB,WAAW,CAAC,EAAE,SAAS,GAAG,YAAY,CAAC;CACxC;AAED;;;;;;;GAOG;AACH,qBAAa,YAAa,SAAQ,mBAAmB;IAMvC,OAAO,CAAC,QAAQ,CAAC,MAAM;IALnC,QAAQ,CAAC,IAAI,UAAU;IACvB,QAAQ,CAAC,IAAI,EAAG,UAAU,CAAU;IAEpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBAEH,MAAM,EAAE,kBAAkB;IAQvD;;;;;OAKG;IACH,OAAO,CAAC,IAAI;IAIZ;;;;;OAKG;IACH,OAAO,CAAC,WAAW;IAInB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAIzB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IASzB;;;OAGG;IACH,OAAO,CAAC,aAAa;IAIrB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAwBzB,OAAO,CAAC,qBAAqB;IAiBvB,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;IAqCpE;;;;OAIG;IACG,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC;IA6C9F;;;OAGG;IACG,aAAa,CACjB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,QAAQ,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GACpC,OAAO,CAAC,aAAa,CAAC;IAuCnB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAwF5D,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAkC/E;;;;OAIG;IACG,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC;CAG5E"}
|
|
@@ -36,6 +36,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
36
36
|
exports.NexiProvider = void 0;
|
|
37
37
|
const crypto = __importStar(require("crypto"));
|
|
38
38
|
const base_payment_provider_abstract_1 = require("../../abstract/base-payment-provider.abstract");
|
|
39
|
+
const parsing_util_1 = require("../../utils/parsing.util");
|
|
39
40
|
/**
|
|
40
41
|
* Nexi eCommerce provider.
|
|
41
42
|
* Flow: `redirect` — builds a signed checkout URL, redirects the user to Nexi,
|
|
@@ -87,11 +88,21 @@ class NexiProvider extends base_payment_provider_abstract_1.BasePaymentProvider
|
|
|
87
88
|
generateRefundMac(alias, codTrans, importo, timestamp) {
|
|
88
89
|
return this.sha1(`alias=${alias}codTrans=${codTrans}importo=${importo}timestamp=${timestamp}${this.config.macKey}`);
|
|
89
90
|
}
|
|
91
|
+
/**
|
|
92
|
+
/**
|
|
93
|
+
* Validates that the MAC is a string of exactly 40 hexadecimal characters.
|
|
94
|
+
*/
|
|
95
|
+
isValidHexMac(mac) {
|
|
96
|
+
return typeof mac === 'string' && /^[0-9a-fA-F]{40}$/.test(mac);
|
|
97
|
+
}
|
|
90
98
|
/**
|
|
91
99
|
* Verifies the SHA-1 outcome MAC included in a Nexi POST-back response or server notification.
|
|
92
100
|
* Format: `codTrans={codTrans}esito={esito}importo={importo}divisa={divisa}data={data}orario={orario}codAut={codAut}{macKey}`
|
|
93
101
|
*/
|
|
94
102
|
verifyResponseMac(codTrans, esito, importo, divisa, dataStr, orario, codAut, mac) {
|
|
103
|
+
if (!this.isValidHexMac(mac)) {
|
|
104
|
+
return false;
|
|
105
|
+
}
|
|
95
106
|
const raw = `codTrans=${codTrans}esito=${esito}importo=${importo}divisa=${divisa}` +
|
|
96
107
|
`data=${dataStr}orario=${orario}codAut=${codAut}${this.config.macKey}`;
|
|
97
108
|
const expected = this.sha1(raw);
|
|
@@ -156,7 +167,7 @@ class NexiProvider extends base_payment_provider_abstract_1.BasePaymentProvider
|
|
|
156
167
|
const dataStr = data?.data ?? '';
|
|
157
168
|
const orario = data?.orario ?? '';
|
|
158
169
|
const codAut = data?.codAut ?? '';
|
|
159
|
-
const mac = data?.mac
|
|
170
|
+
const mac = data?.mac;
|
|
160
171
|
if (!mac) {
|
|
161
172
|
return {
|
|
162
173
|
success: false,
|
|
@@ -165,7 +176,7 @@ class NexiProvider extends base_payment_provider_abstract_1.BasePaymentProvider
|
|
|
165
176
|
error: 'MAC missing',
|
|
166
177
|
};
|
|
167
178
|
}
|
|
168
|
-
if (!this.safeVerifyResponseMac(codTrans, esito, importo, divisa, dataStr, orario, codAut, mac)) {
|
|
179
|
+
if (!this.isValidHexMac(mac) || !this.safeVerifyResponseMac(codTrans, esito, importo, divisa, dataStr, orario, codAut, mac)) {
|
|
169
180
|
return {
|
|
170
181
|
success: false,
|
|
171
182
|
paymentId: codTrans,
|
|
@@ -173,8 +184,8 @@ class NexiProvider extends base_payment_provider_abstract_1.BasePaymentProvider
|
|
|
173
184
|
error: 'MAC verification failed: response may have been tampered with',
|
|
174
185
|
};
|
|
175
186
|
}
|
|
176
|
-
const amount =
|
|
177
|
-
const currency =
|
|
187
|
+
const amount = (0, parsing_util_1.parseAmountFromCents)(importo);
|
|
188
|
+
const currency = (0, parsing_util_1.parseNexiCurrency)(divisa);
|
|
178
189
|
return {
|
|
179
190
|
success: esito === 'OK',
|
|
180
191
|
paymentId: codTrans,
|
|
@@ -205,16 +216,16 @@ class NexiProvider extends base_payment_provider_abstract_1.BasePaymentProvider
|
|
|
205
216
|
const dataStr = f('data');
|
|
206
217
|
const orario = f('orario');
|
|
207
218
|
const codAut = f('codAut');
|
|
208
|
-
const mac =
|
|
209
|
-
if (!mac || !this.safeVerifyResponseMac(codTrans, esito, importo, divisa, dataStr, orario, codAut, mac)) {
|
|
219
|
+
const mac = body?.['mac'];
|
|
220
|
+
if (!this.isValidHexMac(mac) || !this.safeVerifyResponseMac(codTrans, esito, importo, divisa, dataStr, orario, codAut, mac)) {
|
|
210
221
|
return {
|
|
211
222
|
success: false,
|
|
212
223
|
paymentId: codTrans || undefined,
|
|
213
224
|
error: 'MAC verification failed',
|
|
214
225
|
};
|
|
215
226
|
}
|
|
216
|
-
const amount =
|
|
217
|
-
const currency =
|
|
227
|
+
const amount = (0, parsing_util_1.parseAmountFromCents)(importo);
|
|
228
|
+
const currency = (0, parsing_util_1.parseNexiCurrency)(divisa);
|
|
218
229
|
return {
|
|
219
230
|
success: esito === 'OK',
|
|
220
231
|
paymentId: codTrans,
|
|
@@ -255,7 +266,15 @@ class NexiProvider extends base_payment_provider_abstract_1.BasePaymentProvider
|
|
|
255
266
|
const idOperazione = String(result['idOperazione'] ?? '');
|
|
256
267
|
const respTimeStamp = String(result['timeStamp'] ?? '');
|
|
257
268
|
const expectedMac = this.sha1(`esito=${esito}idOperazione=${idOperazione}timeStamp=${respTimeStamp}${this.config.macKey}`);
|
|
258
|
-
const respMac =
|
|
269
|
+
const respMac = result['mac'];
|
|
270
|
+
if (!this.isValidHexMac(respMac)) {
|
|
271
|
+
return {
|
|
272
|
+
success: false,
|
|
273
|
+
paymentId,
|
|
274
|
+
error: 'MAC verification failed: response may have been tampered with',
|
|
275
|
+
raw: result,
|
|
276
|
+
};
|
|
277
|
+
}
|
|
259
278
|
const expBuf = Buffer.from(expectedMac, 'hex');
|
|
260
279
|
const macBuf = Buffer.from(respMac, 'hex');
|
|
261
280
|
let macValid = false;
|
|
@@ -274,18 +293,18 @@ class NexiProvider extends base_payment_provider_abstract_1.BasePaymentProvider
|
|
|
274
293
|
};
|
|
275
294
|
}
|
|
276
295
|
const report = Array.isArray(result['report']) ? result['report'] : [];
|
|
277
|
-
const item = report.find((r) => r?.codiceTransazione === paymentId)
|
|
296
|
+
const item = report.find((r) => r?.codiceTransazione === paymentId);
|
|
278
297
|
if (!item) {
|
|
279
298
|
return {
|
|
280
299
|
success: false,
|
|
281
300
|
paymentId,
|
|
282
|
-
error: 'Report not found
|
|
301
|
+
error: 'Report not found',
|
|
283
302
|
raw: result,
|
|
284
303
|
};
|
|
285
304
|
}
|
|
286
305
|
const stato = item.stato;
|
|
287
|
-
const amount =
|
|
288
|
-
const currency =
|
|
306
|
+
const amount = (0, parsing_util_1.parseAmountFromCents)(item.importo);
|
|
307
|
+
const currency = (0, parsing_util_1.parseNexiCurrency)(item.divisa);
|
|
289
308
|
return {
|
|
290
309
|
success: true,
|
|
291
310
|
paymentId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nexi.provider.js","sourceRoot":"","sources":["../../../src/providers/nexi/nexi.provider.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"nexi.provider.js","sourceRoot":"","sources":["../../../src/providers/nexi/nexi.provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paypal.provider.d.ts","sourceRoot":"","sources":["../../../src/providers/paypal/paypal.provider.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"paypal.provider.d.ts","sourceRoot":"","sources":["../../../src/providers/paypal/paypal.provider.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAGlE,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,yBAAyB;IACzB,WAAW,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;CAClC;AAED;;;;GAIG;AACH,qBAAa,cAAe,SAAQ,mBAAmB;IAQzC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAPnC,QAAQ,CAAC,IAAI,YAAY;IACzB,QAAQ,CAAC,IAAI,EAAG,UAAU,CAAU;IAEpC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,kBAAkB,CAAqB;gBAElB,MAAM,EAAE,oBAAoB;IAoBnD,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;IA0C9D,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IA+BzD,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IA6B5D,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAuD/E;;;OAGG;IACG,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC;CAU5E"}
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.PayPalProvider = void 0;
|
|
4
4
|
const paypal_server_sdk_1 = require("@paypal/paypal-server-sdk");
|
|
5
5
|
const base_payment_provider_abstract_1 = require("../../abstract/base-payment-provider.abstract");
|
|
6
|
+
const parsing_util_1 = require("../../utils/parsing.util");
|
|
6
7
|
/**
|
|
7
8
|
* PayPal Checkout provider.
|
|
8
9
|
* Flow: `redirect` — creates an order, redirects the user to PayPal,
|
|
@@ -76,13 +77,16 @@ class PayPalProvider extends base_payment_provider_abstract_1.BasePaymentProvide
|
|
|
76
77
|
const pu = Array.isArray(order?.purchaseUnits)
|
|
77
78
|
? order.purchaseUnits[0]
|
|
78
79
|
: undefined;
|
|
79
|
-
const
|
|
80
|
-
const
|
|
81
|
-
const
|
|
80
|
+
const capture = pu?.payments?.captures?.[0];
|
|
81
|
+
const captureStatus = typeof capture?.status === 'string' ? capture.status : undefined;
|
|
82
|
+
const isCaptureCompleted = captureStatus === 'COMPLETED';
|
|
83
|
+
const amount = (0, parsing_util_1.parseAmount)(capture?.amount?.value);
|
|
84
|
+
const currency = typeof capture?.amount?.currencyCode === 'string' ? capture.amount.currencyCode : undefined;
|
|
85
|
+
const status = captureStatus ?? order.status;
|
|
82
86
|
return {
|
|
83
|
-
success:
|
|
87
|
+
success: isCaptureCompleted,
|
|
84
88
|
paymentId: order.id,
|
|
85
|
-
status
|
|
89
|
+
status,
|
|
86
90
|
amount,
|
|
87
91
|
currency,
|
|
88
92
|
raw: order,
|
|
@@ -100,13 +104,16 @@ class PayPalProvider extends base_payment_provider_abstract_1.BasePaymentProvide
|
|
|
100
104
|
const pu = Array.isArray(order?.purchaseUnits)
|
|
101
105
|
? order.purchaseUnits[0]
|
|
102
106
|
: undefined;
|
|
103
|
-
const
|
|
104
|
-
const
|
|
105
|
-
const
|
|
107
|
+
const capture = pu?.payments?.captures?.[0];
|
|
108
|
+
const captureStatus = typeof capture?.status === 'string' ? capture.status : undefined;
|
|
109
|
+
const isCaptureCompleted = captureStatus === 'COMPLETED';
|
|
110
|
+
const amount = (0, parsing_util_1.parseAmount)(capture?.amount?.value);
|
|
111
|
+
const currency = typeof capture?.amount?.currencyCode === 'string' ? capture.amount.currencyCode : undefined;
|
|
112
|
+
const status = captureStatus ?? order.status;
|
|
106
113
|
return {
|
|
107
|
-
success:
|
|
114
|
+
success: isCaptureCompleted,
|
|
108
115
|
paymentId: order.id,
|
|
109
|
-
status
|
|
116
|
+
status,
|
|
110
117
|
amount,
|
|
111
118
|
currency,
|
|
112
119
|
raw: order,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paypal.provider.js","sourceRoot":"","sources":["../../../src/providers/paypal/paypal.provider.ts"],"names":[],"mappings":";;;AAAA,iEAMmC;AACnC,kGAAoF;
|
|
1
|
+
{"version":3,"file":"paypal.provider.js","sourceRoot":"","sources":["../../../src/providers/paypal/paypal.provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,6 +30,12 @@ export interface SatispayProviderConfig {
|
|
|
30
30
|
* @default '/checkout/satispay/webhook'
|
|
31
31
|
*/
|
|
32
32
|
callbackPath?: string;
|
|
33
|
+
/**
|
|
34
|
+
* Maximum acceptable age of the webhook `Date` header in milliseconds.
|
|
35
|
+
* Requests older than this window are rejected to prevent replay attacks.
|
|
36
|
+
* @default 300_000 (5 minutes)
|
|
37
|
+
*/
|
|
38
|
+
signatureMaxAgeMs?: number;
|
|
33
39
|
/**
|
|
34
40
|
* Custom transaction store for correlating webhooks with orders.
|
|
35
41
|
* Defaults to InMemoryTransactionStore.
|
|
@@ -59,9 +65,26 @@ export declare class SatispayProvider extends BasePaymentProvider {
|
|
|
59
65
|
* Supports (request-target) via context or headers, and verifies signature over
|
|
60
66
|
* headers with constant-time security.
|
|
61
67
|
*/
|
|
62
|
-
|
|
68
|
+
/**
|
|
69
|
+
* Validates that the payment ID contains only safe alphanumeric/hyphen characters.
|
|
70
|
+
*/
|
|
71
|
+
private isValidPaymentId;
|
|
72
|
+
/**
|
|
73
|
+
* Verifies the HTTP Signature in an inbound Satispay webhook request.
|
|
74
|
+
* Satispay signs webhooks with their own RSA private key; we verify using
|
|
75
|
+
* the corresponding public key supplied in `config.webhookPublicKey`.
|
|
76
|
+
*
|
|
77
|
+
* Validates:
|
|
78
|
+
* - Presence and format of Authorization/Signature header
|
|
79
|
+
* - Freshness of Date header within `signatureMaxAgeMs` (default 5 minutes)
|
|
80
|
+
* - Exact match between Digest header and SHA-256 of raw body
|
|
81
|
+
* - (request-target) exclusively from context (never client body/headers)
|
|
82
|
+
* - Constant-time RSA-SHA256 signature verification
|
|
83
|
+
*/
|
|
84
|
+
verifyWebhookSignature(body?: unknown, headers?: Record<string, string>, context?: {
|
|
63
85
|
method?: string;
|
|
64
86
|
path?: string;
|
|
87
|
+
rawBody?: Buffer | string;
|
|
65
88
|
}): boolean;
|
|
66
89
|
private request;
|
|
67
90
|
createPayment(request: PaymentRequest): Promise<PaymentResult>;
|
|
@@ -79,6 +102,7 @@ export declare class SatispayProvider extends BasePaymentProvider {
|
|
|
79
102
|
handleWebhook(body?: Record<string, unknown>, headers?: Record<string, string>, query?: Record<string, string>, context?: {
|
|
80
103
|
method?: string;
|
|
81
104
|
path?: string;
|
|
105
|
+
rawBody?: Buffer | string;
|
|
82
106
|
}): Promise<WebhookResult>;
|
|
83
107
|
/**
|
|
84
108
|
* Handles the redirect back to the merchant app after the Satispay flow.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"satispay.provider.d.ts","sourceRoot":"","sources":["../../../src/providers/satispay/satispay.provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,8CAA8C,CAAC;
|
|
1
|
+
{"version":3,"file":"satispay.provider.d.ts","sourceRoot":"","sources":["../../../src/providers/satispay/satispay.provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,8CAA8C,CAAC;AAIjF,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,yBAAyB;IACzB,WAAW,CAAC,EAAE,SAAS,GAAG,YAAY,CAAC;IACvC;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,iBAAiB,CAAC;CACtC;AAED;;;;;GAKG;AACH,qBAAa,gBAAiB,SAAQ,mBAAmB;IAO3C,OAAO,CAAC,QAAQ,CAAC,MAAM;IANnC,QAAQ,CAAC,IAAI,cAAc;IAC3B,QAAQ,CAAC,IAAI,EAAG,SAAS,CAAU;IAEnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAoB;gBAExB,MAAM,EAAE,sBAAsB;IAsB3D,OAAO,CAAC,qBAAqB;IAmC7B;;;;;;;OAOG;IACH;;OAEG;IACH,OAAO,CAAC,gBAAgB;IASxB;;;;;;;;;;;OAWG;IACH,sBAAsB,CACpB,IAAI,CAAC,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAChC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GACtE,OAAO;YA8GI,OAAO;IAsBf,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;IA0CpE,4DAA4D;IACtD,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAIzD,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IA8B5D,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IA2B/E;;;;;;OAMG;IACG,aAAa,CACjB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,EACpC,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,EAClC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GACtE,OAAO,CAAC,aAAa,CAAC;IAwCzB;;;OAGG;IACG,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC;CA8B5E"}
|
|
@@ -37,6 +37,7 @@ exports.SatispayProvider = void 0;
|
|
|
37
37
|
const crypto = __importStar(require("crypto"));
|
|
38
38
|
const base_payment_provider_abstract_1 = require("../../abstract/base-payment-provider.abstract");
|
|
39
39
|
const in_memory_transaction_store_1 = require("../../stores/in-memory-transaction.store");
|
|
40
|
+
const parsing_util_1 = require("../../utils/parsing.util");
|
|
40
41
|
/**
|
|
41
42
|
* Satispay Business API provider.
|
|
42
43
|
* Flow: `webhook` — creates a MATCH_CODE payment, user pays via Satispay app,
|
|
@@ -94,28 +95,40 @@ class SatispayProvider extends base_payment_provider_abstract_1.BasePaymentProvi
|
|
|
94
95
|
* Supports (request-target) via context or headers, and verifies signature over
|
|
95
96
|
* headers with constant-time security.
|
|
96
97
|
*/
|
|
97
|
-
|
|
98
|
+
/**
|
|
99
|
+
* Validates that the payment ID contains only safe alphanumeric/hyphen characters.
|
|
100
|
+
*/
|
|
101
|
+
isValidPaymentId(id) {
|
|
102
|
+
return (typeof id === 'string' &&
|
|
103
|
+
/^[A-Za-z0-9_-]{1,64}$/.test(id) &&
|
|
104
|
+
!id.includes('/') &&
|
|
105
|
+
!id.includes('..'));
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Verifies the HTTP Signature in an inbound Satispay webhook request.
|
|
109
|
+
* Satispay signs webhooks with their own RSA private key; we verify using
|
|
110
|
+
* the corresponding public key supplied in `config.webhookPublicKey`.
|
|
111
|
+
*
|
|
112
|
+
* Validates:
|
|
113
|
+
* - Presence and format of Authorization/Signature header
|
|
114
|
+
* - Freshness of Date header within `signatureMaxAgeMs` (default 5 minutes)
|
|
115
|
+
* - Exact match between Digest header and SHA-256 of raw body
|
|
116
|
+
* - (request-target) exclusively from context (never client body/headers)
|
|
117
|
+
* - Constant-time RSA-SHA256 signature verification
|
|
118
|
+
*/
|
|
119
|
+
verifyWebhookSignature(body, headers, context) {
|
|
98
120
|
if (!this.config.webhookPublicKey) {
|
|
99
121
|
return true; // verification skipped — no public key configured
|
|
100
122
|
}
|
|
123
|
+
if (!headers || typeof headers !== 'object') {
|
|
124
|
+
return false;
|
|
125
|
+
}
|
|
101
126
|
try {
|
|
102
|
-
|
|
103
|
-
let headers = headersOrBody;
|
|
104
|
-
// Handle argument order flexibility: verifyWebhookSignature(body, headers) or (headers, body)
|
|
105
|
-
if (typeof body === 'object' &&
|
|
106
|
-
body !== null &&
|
|
107
|
-
(('authorization' in body) || ('Authorization' in body) || ('signature' in body) || ('Signature' in body)) &&
|
|
108
|
-
(!headers || !('authorization' in headers || 'signature' in headers))) {
|
|
109
|
-
headers = body;
|
|
110
|
-
body = headersOrBody;
|
|
111
|
-
}
|
|
112
|
-
if (!headers)
|
|
113
|
-
return false;
|
|
114
|
-
const authHeader = (headers['authorization'] ??
|
|
127
|
+
const authHeader = headers['authorization'] ??
|
|
115
128
|
headers['Authorization'] ??
|
|
116
129
|
headers['signature'] ??
|
|
117
|
-
headers['Signature']
|
|
118
|
-
if (!authHeader)
|
|
130
|
+
headers['Signature'];
|
|
131
|
+
if (!authHeader || typeof authHeader !== 'string')
|
|
119
132
|
return false;
|
|
120
133
|
// Parse the Signature params from the Authorization header.
|
|
121
134
|
// Format: Signature keyId="...", algorithm="...", headers="...", signature="..."
|
|
@@ -129,7 +142,7 @@ class SatispayProvider extends base_payment_provider_abstract_1.BasePaymentProvi
|
|
|
129
142
|
const eqIdx = part.indexOf('="');
|
|
130
143
|
if (eqIdx === -1)
|
|
131
144
|
continue;
|
|
132
|
-
const key = part.slice(0, eqIdx).trim();
|
|
145
|
+
const key = part.slice(0, eqIdx).trim().toLowerCase();
|
|
133
146
|
const valueStart = eqIdx + 2;
|
|
134
147
|
const valueEnd = part.lastIndexOf('"');
|
|
135
148
|
if (valueEnd <= valueStart)
|
|
@@ -138,28 +151,63 @@ class SatispayProvider extends base_payment_provider_abstract_1.BasePaymentProvi
|
|
|
138
151
|
if (key)
|
|
139
152
|
sigParams[key] = value;
|
|
140
153
|
}
|
|
141
|
-
const
|
|
154
|
+
const signature = sigParams['signature'];
|
|
155
|
+
const signedHeaders = sigParams['headers'] ?? '(request-target) host date digest';
|
|
142
156
|
if (!signature)
|
|
143
157
|
return false;
|
|
144
|
-
|
|
145
|
-
|
|
158
|
+
const headerNames = signedHeaders.split(' ').map((h) => h.trim().toLowerCase()).filter(Boolean);
|
|
159
|
+
// 1. Freshness check on Date if 'date' is signed or present
|
|
160
|
+
const rawDate = headers['date'] ?? headers['Date'];
|
|
161
|
+
if (headerNames.includes('date') || rawDate) {
|
|
162
|
+
if (!rawDate)
|
|
163
|
+
return false;
|
|
164
|
+
const dateParsed = new Date(rawDate);
|
|
165
|
+
if (isNaN(dateParsed.getTime()))
|
|
166
|
+
return false;
|
|
167
|
+
const maxAgeMs = this.config.signatureMaxAgeMs ?? 300000;
|
|
168
|
+
if (Math.abs(Date.now() - dateParsed.getTime()) > maxAgeMs) {
|
|
169
|
+
return false;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
// 2. Digest comparison: Digest header MUST match SHA-256 of the raw body
|
|
146
173
|
const headerDigest = headers['digest'] ?? headers['Digest'];
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
174
|
+
if (headerNames.includes('digest')) {
|
|
175
|
+
if (!headerDigest)
|
|
176
|
+
return false;
|
|
177
|
+
let rawBytes;
|
|
178
|
+
if (context?.rawBody !== undefined) {
|
|
179
|
+
rawBytes = Buffer.isBuffer(context.rawBody)
|
|
180
|
+
? context.rawBody
|
|
181
|
+
: Buffer.from(context.rawBody, 'utf-8');
|
|
182
|
+
}
|
|
183
|
+
else if (Buffer.isBuffer(body)) {
|
|
184
|
+
rawBytes = body;
|
|
185
|
+
}
|
|
186
|
+
else if (typeof body === 'string') {
|
|
187
|
+
rawBytes = Buffer.from(body, 'utf-8');
|
|
188
|
+
}
|
|
189
|
+
else if (body !== undefined && body !== null && typeof body === 'object') {
|
|
190
|
+
rawBytes = Buffer.from(JSON.stringify(body), 'utf-8');
|
|
191
|
+
}
|
|
192
|
+
else {
|
|
193
|
+
rawBytes = Buffer.from('', 'utf-8');
|
|
194
|
+
}
|
|
195
|
+
const expectedDigest = 'SHA-256=' + crypto.createHash('sha256').update(rawBytes).digest('base64');
|
|
196
|
+
if (headerDigest !== expectedDigest) {
|
|
197
|
+
return false;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
// 3. Reconstruct the signed message from headers and context
|
|
152
201
|
const parts = [];
|
|
153
202
|
for (const name of headerNames) {
|
|
154
203
|
if (name === '(request-target)') {
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
if (!target)
|
|
204
|
+
// (request-target) MUST come strictly from context
|
|
205
|
+
if (!context?.method || !context?.path)
|
|
158
206
|
return false;
|
|
159
|
-
parts.push(`(request-target): ${
|
|
207
|
+
parts.push(`(request-target): ${context.method.toLowerCase()} ${context.path}`);
|
|
160
208
|
}
|
|
161
209
|
else if (name === 'digest') {
|
|
162
|
-
parts.push(`digest: ${
|
|
210
|
+
parts.push(`digest: ${headerDigest}`);
|
|
163
211
|
}
|
|
164
212
|
else {
|
|
165
213
|
const value = headers[name] ??
|
|
@@ -237,10 +285,17 @@ class SatispayProvider extends base_payment_provider_abstract_1.BasePaymentProvi
|
|
|
237
285
|
return this.getPaymentDetails(paymentId);
|
|
238
286
|
}
|
|
239
287
|
async getPaymentDetails(paymentId) {
|
|
288
|
+
if (!this.isValidPaymentId(paymentId)) {
|
|
289
|
+
return {
|
|
290
|
+
success: false,
|
|
291
|
+
paymentId: typeof paymentId === 'string' ? paymentId : undefined,
|
|
292
|
+
status: 'FAILED',
|
|
293
|
+
error: 'Invalid payment ID format',
|
|
294
|
+
};
|
|
295
|
+
}
|
|
240
296
|
try {
|
|
241
|
-
const payment = await this.request('GET', `${this.apiUrl}/payments/${paymentId}`);
|
|
242
|
-
const
|
|
243
|
-
const amount = amountUnit != null && !isNaN(Number(amountUnit)) ? Number(amountUnit) / 100 : undefined;
|
|
297
|
+
const payment = await this.request('GET', `${this.apiUrl}/payments/${encodeURIComponent(paymentId)}`);
|
|
298
|
+
const amount = (0, parsing_util_1.parseAmountFromCents)(payment['amount_unit']);
|
|
244
299
|
const currency = payment['currency'];
|
|
245
300
|
return {
|
|
246
301
|
success: true,
|
|
@@ -256,9 +311,17 @@ class SatispayProvider extends base_payment_provider_abstract_1.BasePaymentProvi
|
|
|
256
311
|
}
|
|
257
312
|
}
|
|
258
313
|
async refundPayment(paymentId, amount) {
|
|
314
|
+
if (!this.isValidPaymentId(paymentId)) {
|
|
315
|
+
return {
|
|
316
|
+
success: false,
|
|
317
|
+
paymentId: typeof paymentId === 'string' ? paymentId : undefined,
|
|
318
|
+
status: 'REFUND_FAILED',
|
|
319
|
+
error: 'Invalid payment ID format',
|
|
320
|
+
};
|
|
321
|
+
}
|
|
259
322
|
try {
|
|
260
323
|
const body = amount ? { amount_unit: Math.round(amount * 100) } : {};
|
|
261
|
-
const refund = await this.request('POST', `${this.apiUrl}/payments/${paymentId}/refunds`, body);
|
|
324
|
+
const refund = await this.request('POST', `${this.apiUrl}/payments/${encodeURIComponent(paymentId)}/refunds`, body);
|
|
262
325
|
return {
|
|
263
326
|
success: true,
|
|
264
327
|
paymentId: refund['id'],
|
|
@@ -282,16 +345,19 @@ class SatispayProvider extends base_payment_provider_abstract_1.BasePaymentProvi
|
|
|
282
345
|
return { success: false, error: 'Webhook signature verification failed' };
|
|
283
346
|
}
|
|
284
347
|
const b = body ?? {};
|
|
285
|
-
const
|
|
348
|
+
const rawId = b['payment_id'] ??
|
|
286
349
|
b['id'] ??
|
|
287
350
|
query['payment_id'];
|
|
288
|
-
if (!
|
|
351
|
+
if (!rawId) {
|
|
289
352
|
return { success: false, error: 'Missing payment_id in webhook body or query' };
|
|
290
353
|
}
|
|
354
|
+
if (!this.isValidPaymentId(rawId)) {
|
|
355
|
+
return { success: false, error: 'Invalid payment ID format' };
|
|
356
|
+
}
|
|
357
|
+
const paymentId = rawId;
|
|
291
358
|
try {
|
|
292
|
-
const payment = await this.request('GET', `${this.apiUrl}/payments/${paymentId}`);
|
|
293
|
-
const
|
|
294
|
-
const amount = amountUnit != null && !isNaN(Number(amountUnit)) ? Number(amountUnit) / 100 : undefined;
|
|
359
|
+
const payment = await this.request('GET', `${this.apiUrl}/payments/${encodeURIComponent(paymentId)}`);
|
|
360
|
+
const amount = (0, parsing_util_1.parseAmountFromCents)(payment['amount_unit']);
|
|
295
361
|
const currency = payment['currency'];
|
|
296
362
|
return {
|
|
297
363
|
success: payment['status'] === 'ACCEPTED',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"satispay.provider.js","sourceRoot":"","sources":["../../../src/providers/satispay/satispay.provider.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"satispay.provider.js","sourceRoot":"","sources":["../../../src/providers/satispay/satispay.provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Safely parses an amount value into a finite number.
|
|
3
|
+
* Returns undefined for null, undefined, boolean, empty strings, whitespace, NaN, and Infinity.
|
|
4
|
+
*/
|
|
5
|
+
export declare function parseAmount(val: unknown): number | undefined;
|
|
6
|
+
/**
|
|
7
|
+
* Safely parses amounts denominated in minor units (cents) into major units.
|
|
8
|
+
* Returns undefined if the input cannot be parsed.
|
|
9
|
+
*/
|
|
10
|
+
export declare function parseAmountFromCents(val: unknown): number | undefined;
|
|
11
|
+
/**
|
|
12
|
+
* Maps Nexi ISO-4217 numeric currency codes to alpha-3 codes.
|
|
13
|
+
* Returns 3-letter uppercase alpha code if recognized or already alpha,
|
|
14
|
+
* otherwise undefined.
|
|
15
|
+
*/
|
|
16
|
+
export declare function parseNexiCurrency(code: unknown): string | undefined;
|
|
17
|
+
//# sourceMappingURL=parsing.util.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parsing.util.d.ts","sourceRoot":"","sources":["../../src/utils/parsing.util.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAK5D;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAGrE;AAoBD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAUnE"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseAmount = parseAmount;
|
|
4
|
+
exports.parseAmountFromCents = parseAmountFromCents;
|
|
5
|
+
exports.parseNexiCurrency = parseNexiCurrency;
|
|
6
|
+
/**
|
|
7
|
+
* Safely parses an amount value into a finite number.
|
|
8
|
+
* Returns undefined for null, undefined, boolean, empty strings, whitespace, NaN, and Infinity.
|
|
9
|
+
*/
|
|
10
|
+
function parseAmount(val) {
|
|
11
|
+
if (val == null || typeof val === 'boolean')
|
|
12
|
+
return undefined;
|
|
13
|
+
if (typeof val === 'string' && val.trim() === '')
|
|
14
|
+
return undefined;
|
|
15
|
+
const num = typeof val === 'number' ? val : Number(val);
|
|
16
|
+
return !isNaN(num) && isFinite(num) ? num : undefined;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Safely parses amounts denominated in minor units (cents) into major units.
|
|
20
|
+
* Returns undefined if the input cannot be parsed.
|
|
21
|
+
*/
|
|
22
|
+
function parseAmountFromCents(val) {
|
|
23
|
+
const num = parseAmount(val);
|
|
24
|
+
return num !== undefined ? num / 100 : undefined;
|
|
25
|
+
}
|
|
26
|
+
const NEXI_NUMERIC_CURRENCY_MAP = {
|
|
27
|
+
'978': 'EUR',
|
|
28
|
+
'840': 'USD',
|
|
29
|
+
'826': 'GBP',
|
|
30
|
+
'756': 'CHF',
|
|
31
|
+
'392': 'JPY',
|
|
32
|
+
'036': 'AUD',
|
|
33
|
+
'124': 'CAD',
|
|
34
|
+
'702': 'SGD',
|
|
35
|
+
'752': 'SEK',
|
|
36
|
+
'578': 'NOK',
|
|
37
|
+
'208': 'DKK',
|
|
38
|
+
'484': 'MXN',
|
|
39
|
+
'949': 'TRY',
|
|
40
|
+
'986': 'BRL',
|
|
41
|
+
'356': 'INR',
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Maps Nexi ISO-4217 numeric currency codes to alpha-3 codes.
|
|
45
|
+
* Returns 3-letter uppercase alpha code if recognized or already alpha,
|
|
46
|
+
* otherwise undefined.
|
|
47
|
+
*/
|
|
48
|
+
function parseNexiCurrency(code) {
|
|
49
|
+
if (typeof code !== 'string' && typeof code !== 'number')
|
|
50
|
+
return undefined;
|
|
51
|
+
const str = String(code).trim();
|
|
52
|
+
if (NEXI_NUMERIC_CURRENCY_MAP[str]) {
|
|
53
|
+
return NEXI_NUMERIC_CURRENCY_MAP[str];
|
|
54
|
+
}
|
|
55
|
+
if (/^[A-Za-z]{3}$/.test(str)) {
|
|
56
|
+
return str.toUpperCase();
|
|
57
|
+
}
|
|
58
|
+
return undefined;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=parsing.util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parsing.util.js","sourceRoot":"","sources":["../../src/utils/parsing.util.ts"],"names":[],"mappings":";;AAIA,kCAKC;AAMD,oDAGC;AAyBD,8CAUC;AArDD;;;GAGG;AACH,SAAgB,WAAW,CAAC,GAAY;IACtC,IAAI,GAAG,IAAI,IAAI,IAAI,OAAO,GAAG,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC9D,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,SAAS,CAAC;IACnE,MAAM,GAAG,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACxD,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;AACxD,CAAC;AAED;;;GAGG;AACH,SAAgB,oBAAoB,CAAC,GAAY;IAC/C,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAC7B,OAAO,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;AACnD,CAAC;AAED,MAAM,yBAAyB,GAA2B;IACxD,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;CACb,CAAC;AAEF;;;;GAIG;AACH,SAAgB,iBAAiB,CAAC,IAAa;IAC7C,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAC3E,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;IAChC,IAAI,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC;QACnC,OAAO,yBAAyB,CAAC,GAAG,CAAC,CAAC;IACxC,CAAC;IACD,IAAI,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9B,OAAO,GAAG,CAAC,WAAW,EAAE,CAAC;IAC3B,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
|