@webbers/pay-payments-medusa 2.2.43 → 2.2.47
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/.medusa/server/package.json +6 -2
- package/.medusa/server/src/admin/index.js +1 -1
- package/.medusa/server/src/admin/index.mjs +1 -1
- package/.medusa/server/src/api/hooks/pay/[provider]/route.d.ts.map +1 -1
- package/.medusa/server/src/api/hooks/pay/[provider]/route.js +29 -9
- package/.medusa/server/src/providers/pay/core/constants.d.ts +10 -1
- package/.medusa/server/src/providers/pay/core/constants.d.ts.map +1 -1
- package/.medusa/server/src/providers/pay/core/constants.js +16 -5
- package/.medusa/server/src/providers/pay/core/http-client.d.ts +0 -6
- package/.medusa/server/src/providers/pay/core/http-client.d.ts.map +1 -1
- package/.medusa/server/src/providers/pay/core/http-client.js +1 -19
- package/.medusa/server/src/providers/pay/core/pay-base.d.ts +9 -2
- package/.medusa/server/src/providers/pay/core/pay-base.d.ts.map +1 -1
- package/.medusa/server/src/providers/pay/core/pay-base.js +48 -11
- package/.medusa/server/src/providers/pay/core/pay-client.d.ts +18 -5
- package/.medusa/server/src/providers/pay/core/pay-client.d.ts.map +1 -1
- package/.medusa/server/src/providers/pay/core/pay-client.js +40 -12
- package/.medusa/server/src/providers/pay/services/pay-direct-debit.d.ts +47 -1
- package/.medusa/server/src/providers/pay/services/pay-direct-debit.d.ts.map +1 -1
- package/.medusa/server/src/providers/pay/services/pay-direct-debit.js +216 -1
- package/.medusa/server/src/providers/pay/types/order.d.ts +141 -72
- package/.medusa/server/src/providers/pay/types/order.d.ts.map +1 -1
- package/.medusa/server/src/subscribers/direct-debit-exchange.d.ts +12 -0
- package/.medusa/server/src/subscribers/direct-debit-exchange.d.ts.map +1 -0
- package/.medusa/server/src/subscribers/direct-debit-exchange.js +184 -0
- package/.medusa/server/src/subscribers/payment-canceled.d.ts.map +1 -1
- package/.medusa/server/src/subscribers/payment-canceled.js +17 -4
- package/.medusa/server/src/subscribers/payment-failed.d.ts +1 -0
- package/.medusa/server/src/subscribers/payment-failed.d.ts.map +1 -1
- package/.medusa/server/src/subscribers/payment-failed.js +13 -3
- package/.medusa/server/src/utils/directDebitExchange.d.ts +28 -0
- package/.medusa/server/src/utils/directDebitExchange.d.ts.map +1 -0
- package/.medusa/server/src/utils/directDebitExchange.js +108 -0
- package/package.json +6 -2
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webbers/pay-payments-medusa",
|
|
3
3
|
"displayName": "Medusa v2 Pay. Plugin",
|
|
4
|
-
"version": "2.2.
|
|
4
|
+
"version": "2.2.47",
|
|
5
5
|
"description": "The Pay.nl payment provider plugin for Medusa v2",
|
|
6
6
|
"author": "Webbers B.V. <development@webbers.com>",
|
|
7
7
|
"license": "MIT",
|
|
@@ -37,7 +37,8 @@
|
|
|
37
37
|
"scripts": {
|
|
38
38
|
"build": "medusa plugin:build",
|
|
39
39
|
"dev": "medusa plugin:develop",
|
|
40
|
-
"prepublishOnly": "medusa plugin:build"
|
|
40
|
+
"prepublishOnly": "medusa plugin:build",
|
|
41
|
+
"test": "jest src"
|
|
41
42
|
},
|
|
42
43
|
"devDependencies": {
|
|
43
44
|
"@medusajs/admin-sdk": "^2.11.1",
|
|
@@ -49,13 +50,16 @@
|
|
|
49
50
|
"@medusajs/types": "^2.11.1",
|
|
50
51
|
"@medusajs/ui": "^4.0.23",
|
|
51
52
|
"@swc/core": "1.5.7",
|
|
53
|
+
"@types/jest": "^29.5.14",
|
|
52
54
|
"@types/node": "^20.19.19",
|
|
53
55
|
"@types/react": "^18.3.25",
|
|
54
56
|
"@types/react-dom": "^18.3.7",
|
|
57
|
+
"jest": "^29.7.0",
|
|
55
58
|
"prettier": "^3.6.2",
|
|
56
59
|
"prop-types": "^15.8.1",
|
|
57
60
|
"react": "^18.2.0",
|
|
58
61
|
"react-dom": "^18.2.0",
|
|
62
|
+
"ts-jest": "^29.2.5",
|
|
59
63
|
"ts-node": "^10.9.2",
|
|
60
64
|
"typescript": "^5.9.3",
|
|
61
65
|
"vite": "^5.4.20",
|
|
@@ -58,7 +58,7 @@ const sdk = new Medusa__default.default({
|
|
|
58
58
|
}
|
|
59
59
|
});
|
|
60
60
|
const displayName = "Medusa v2 Pay. Plugin";
|
|
61
|
-
const version = "2.2.
|
|
61
|
+
const version = "2.2.47";
|
|
62
62
|
function getSortedPaymentMethods(data) {
|
|
63
63
|
const { checkoutOptions, checkoutSequence } = data;
|
|
64
64
|
const { primary } = checkoutSequence.default;
|
|
@@ -55,7 +55,7 @@ const sdk = new Medusa({
|
|
|
55
55
|
}
|
|
56
56
|
});
|
|
57
57
|
const displayName = "Medusa v2 Pay. Plugin";
|
|
58
|
-
const version = "2.2.
|
|
58
|
+
const version = "2.2.47";
|
|
59
59
|
function getSortedPaymentMethods(data) {
|
|
60
60
|
const { checkoutOptions, checkoutSequence } = data;
|
|
61
61
|
const { primary } = checkoutSequence.default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../../../src/api/hooks/pay/[provider]/route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAE,cAAc,EAAC,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../../../src/api/hooks/pay/[provider]/route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAE,cAAc,EAAC,MAAM,qBAAqB,CAAA;AAWjE,eAAO,MAAM,IAAI,GAAU,KAAK,aAAa,EAAE,KAAK,cAAc,kBAoDjE,CAAA"}
|
|
@@ -2,22 +2,42 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.POST = void 0;
|
|
4
4
|
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
+
const directDebitExchange_1 = require("../../../../utils/directDebitExchange");
|
|
5
6
|
const POST = async (req, res) => {
|
|
6
7
|
try {
|
|
7
8
|
const { provider } = req.params;
|
|
8
9
|
const options =
|
|
9
10
|
// @ts-expect-error "Not sure if .options exists on a module"
|
|
10
11
|
req.scope.resolve(utils_1.Modules.PAYMENT).options || {};
|
|
11
|
-
const event = {
|
|
12
|
-
provider,
|
|
13
|
-
payload: { data: req.body, rawData: req.rawBody, headers: req.headers },
|
|
14
|
-
};
|
|
15
12
|
const eventBus = req.scope.resolve(utils_1.Modules.EVENT_BUS);
|
|
13
|
+
const body = (req.body ?? {});
|
|
14
|
+
// Direct debit (Incasso) exchanges are not signed and carry no session
|
|
15
|
+
// reference, they are handled by a dedicated subscriber that re-fetches
|
|
16
|
+
// the mandate state from Pay. A legacy incassostorno with only an order_id
|
|
17
|
+
// belongs to a payment created through the order API and falls through to
|
|
18
|
+
// the regular webhook flow.
|
|
19
|
+
const isDirectDebitExchange = ((0, directDebitExchange_1.isLegacyDirectDebitAction)(body.action) &&
|
|
20
|
+
!!((0, directDebitExchange_1.readDirectDebitReferenceId)(body) ||
|
|
21
|
+
(0, directDebitExchange_1.readDirectDebitMandateId)(body))) ||
|
|
22
|
+
(0, directDebitExchange_1.isDirectDebitTransactionExchange)(body);
|
|
23
|
+
const event = isDirectDebitExchange
|
|
24
|
+
? {
|
|
25
|
+
name: directDebitExchange_1.PAY_DIRECT_DEBIT_EXCHANGE_EVENT,
|
|
26
|
+
data: { payload: body },
|
|
27
|
+
}
|
|
28
|
+
: {
|
|
29
|
+
name: utils_1.PaymentWebhookEvents.WebhookReceived,
|
|
30
|
+
data: {
|
|
31
|
+
provider,
|
|
32
|
+
payload: {
|
|
33
|
+
data: req.body,
|
|
34
|
+
rawData: req.rawBody,
|
|
35
|
+
headers: req.headers,
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
};
|
|
16
39
|
// we delay the processing of the event to avoid a conflict caused by a race condition
|
|
17
|
-
await eventBus.emit({
|
|
18
|
-
name: utils_1.PaymentWebhookEvents.WebhookReceived,
|
|
19
|
-
data: event,
|
|
20
|
-
}, {
|
|
40
|
+
await eventBus.emit(event, {
|
|
21
41
|
delay: options.webhook_delay || 5000,
|
|
22
42
|
attempts: options.webhook_retries || 3,
|
|
23
43
|
});
|
|
@@ -29,4 +49,4 @@ const POST = async (req, res) => {
|
|
|
29
49
|
res.status(200).send("TRUE");
|
|
30
50
|
};
|
|
31
51
|
exports.POST = POST;
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2hvb2tzL3BheS9bcHJvdmlkZXJdL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLHFEQUF1RTtBQUN2RSwrRUFNOEM7QUFFdkMsTUFBTSxJQUFJLEdBQUcsS0FBSyxFQUFFLEdBQWtCLEVBQUUsR0FBbUIsRUFBRSxFQUFFO0lBQ3BFLElBQUksQ0FBQztRQUNILE1BQU0sRUFBQyxRQUFRLEVBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFBO1FBRTdCLE1BQU0sT0FBTztRQUNYLDZEQUE2RDtRQUM3RCxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxlQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQTtRQUVsRCxNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxlQUFPLENBQUMsU0FBUyxDQUFDLENBQUE7UUFFckQsTUFBTSxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBd0IsQ0FBQTtRQUVwRCx1RUFBdUU7UUFDdkUsd0VBQXdFO1FBQ3hFLDJFQUEyRTtRQUMzRSwwRUFBMEU7UUFDMUUsNEJBQTRCO1FBQzVCLE1BQU0scUJBQXFCLEdBQ3pCLENBQUMsSUFBQSwrQ0FBeUIsRUFBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQ3JDLENBQUMsQ0FBQyxDQUFDLElBQUEsZ0RBQTBCLEVBQUMsSUFBSSxDQUFDO2dCQUNqQyxJQUFBLDhDQUF3QixFQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDcEMsSUFBQSxzREFBZ0MsRUFBQyxJQUFJLENBQUMsQ0FBQTtRQUV4QyxNQUFNLEtBQUssR0FDVCxxQkFBcUI7WUFDbkIsQ0FBQyxDQUFDO2dCQUNFLElBQUksRUFBRSxxREFBK0I7Z0JBQ3JDLElBQUksRUFBRSxFQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUM7YUFDdEI7WUFDSCxDQUFDLENBQUM7Z0JBQ0UsSUFBSSxFQUFFLDRCQUFvQixDQUFDLGVBQWU7Z0JBQzFDLElBQUksRUFBRTtvQkFDSixRQUFRO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUk7d0JBQ2QsT0FBTyxFQUFFLEdBQUcsQ0FBQyxPQUFPO3dCQUNwQixPQUFPLEVBQUUsR0FBRyxDQUFDLE9BQU87cUJBQ3JCO2lCQUNGO2FBQ0YsQ0FBQTtRQUVQLHNGQUFzRjtRQUN0RixNQUFNLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ3pCLEtBQUssRUFBRSxPQUFPLENBQUMsYUFBYSxJQUFJLElBQUk7WUFDcEMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxlQUFlLElBQUksQ0FBQztTQUN2QyxDQUFDLENBQUE7SUFDSixDQUFDO0lBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQzdCLE9BQU07SUFDUixDQUFDO0lBRUQsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7QUFDOUIsQ0FBQyxDQUFBO0FBcERZLFFBQUEsSUFBSSxRQW9EaEIifQ==
|
|
@@ -6,7 +6,6 @@ export declare const PAY_CACHE_KEY: {
|
|
|
6
6
|
export declare const PayEnvironmentPaths: {
|
|
7
7
|
REST_API: string;
|
|
8
8
|
TGU_API: string;
|
|
9
|
-
REST_API_v3: string;
|
|
10
9
|
};
|
|
11
10
|
export declare const PayApiPath: {
|
|
12
11
|
GET_CONFIG: string;
|
|
@@ -18,7 +17,9 @@ export declare const PayApiPath: {
|
|
|
18
17
|
GET_TRANSACTION: string;
|
|
19
18
|
TRANSACTION_REFUND: string;
|
|
20
19
|
DIRECT_DEBIT: string;
|
|
20
|
+
DIRECT_DEBIT_MANDATE: string;
|
|
21
21
|
DIRECT_DEBIT_INFO: string;
|
|
22
|
+
DIRECT_DEBIT_INFO_BY_MANDATE: string;
|
|
22
23
|
};
|
|
23
24
|
export declare const PayPaymentStatus: {
|
|
24
25
|
readonly INIT: 20;
|
|
@@ -43,4 +44,12 @@ export declare const PayPaymentStatus: {
|
|
|
43
44
|
readonly REFUND: -81;
|
|
44
45
|
readonly PARTIAL_REFUND: -82;
|
|
45
46
|
};
|
|
47
|
+
export declare const PayDirectDebitStatusCode: {
|
|
48
|
+
readonly COLLECTED: 100;
|
|
49
|
+
readonly FAILED: 106;
|
|
50
|
+
readonly STORNO: 127;
|
|
51
|
+
readonly PENDING: 91;
|
|
52
|
+
readonly SENT: 94;
|
|
53
|
+
readonly PROCESSING: 526;
|
|
54
|
+
};
|
|
46
55
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../../src/providers/pay/core/constants.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,qBAAqB,GAC/B,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,OAAO,aAAa,CAAC,CAAA;AAEpD,eAAO,MAAM,aAAa;;;CAGhB,CAAA;AAEV,eAAO,MAAM,mBAAmB
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../../src/providers/pay/core/constants.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,qBAAqB,GAC/B,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,OAAO,aAAa,CAAC,CAAA;AAEpD,eAAO,MAAM,aAAa;;;CAGhB,CAAA;AAEV,eAAO,MAAM,mBAAmB;;;CAG/B,CAAA;AAED,eAAO,MAAM,UAAU;;;;;;;;;;;;;CAatB,CAAA;AAGD,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;CAyBnB,CAAA;AAIV,eAAO,MAAM,wBAAwB;;;;;;;CAO3B,CAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PayPaymentStatus = exports.PayApiPath = exports.PayEnvironmentPaths = exports.PAY_CACHE_KEY = void 0;
|
|
3
|
+
exports.PayDirectDebitStatusCode = exports.PayPaymentStatus = exports.PayApiPath = exports.PayEnvironmentPaths = exports.PAY_CACHE_KEY = void 0;
|
|
4
4
|
exports.PAY_CACHE_KEY = {
|
|
5
5
|
CONFIG: "pay_config_cache",
|
|
6
6
|
SALES_CHANNEL_OPTIONS: "pay_sales_channel_options",
|
|
@@ -8,7 +8,6 @@ exports.PAY_CACHE_KEY = {
|
|
|
8
8
|
exports.PayEnvironmentPaths = {
|
|
9
9
|
REST_API: "https://rest.pay.nl/v2",
|
|
10
10
|
TGU_API: "https://connect.pay.nl/v1",
|
|
11
|
-
REST_API_v3: "https://rest-api.pay.nl/v3",
|
|
12
11
|
};
|
|
13
12
|
exports.PayApiPath = {
|
|
14
13
|
GET_CONFIG: "/services/config?serviceId={id}",
|
|
@@ -19,8 +18,10 @@ exports.PayApiPath = {
|
|
|
19
18
|
ORDER_ABORT: "/orders/{id}/abort",
|
|
20
19
|
GET_TRANSACTION: "/transactions/{id}",
|
|
21
20
|
TRANSACTION_REFUND: "/transactions/{id}/refund",
|
|
22
|
-
DIRECT_DEBIT: "/
|
|
23
|
-
|
|
21
|
+
DIRECT_DEBIT: "/directdebits/mandates",
|
|
22
|
+
DIRECT_DEBIT_MANDATE: "/directdebits/mandates/{id}",
|
|
23
|
+
DIRECT_DEBIT_INFO: "/directdebits/{id}",
|
|
24
|
+
DIRECT_DEBIT_INFO_BY_MANDATE: "/directdebits?mandate[eq]={id}",
|
|
24
25
|
};
|
|
25
26
|
// Transaction Statuses: https://developer.pay.nl/docs/transaction-statuses#after-processing-statuses
|
|
26
27
|
exports.PayPaymentStatus = {
|
|
@@ -49,4 +50,14 @@ exports.PayPaymentStatus = {
|
|
|
49
50
|
REFUND: -81,
|
|
50
51
|
PARTIAL_REFUND: -82,
|
|
51
52
|
};
|
|
52
|
-
|
|
53
|
+
// Statuses for direct debits created via the mandate API, these differ from
|
|
54
|
+
// the transaction statuses above
|
|
55
|
+
exports.PayDirectDebitStatusCode = {
|
|
56
|
+
COLLECTED: 100,
|
|
57
|
+
FAILED: 106,
|
|
58
|
+
STORNO: 127,
|
|
59
|
+
PENDING: 91,
|
|
60
|
+
SENT: 94,
|
|
61
|
+
PROCESSING: 526,
|
|
62
|
+
};
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3Byb3ZpZGVycy9wYXkvY29yZS9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR2EsUUFBQSxhQUFhLEdBQUc7SUFDM0IsTUFBTSxFQUFFLGtCQUFrQjtJQUMxQixxQkFBcUIsRUFBRSwyQkFBMkI7Q0FDMUMsQ0FBQTtBQUVHLFFBQUEsbUJBQW1CLEdBQUc7SUFDakMsUUFBUSxFQUFFLHdCQUF3QjtJQUNsQyxPQUFPLEVBQUUsMkJBQTJCO0NBQ3JDLENBQUE7QUFFWSxRQUFBLFVBQVUsR0FBRztJQUN4QixVQUFVLEVBQUUsaUNBQWlDO0lBQzdDLFlBQVksRUFBRSxTQUFTO0lBQ3ZCLFlBQVksRUFBRSxjQUFjO0lBQzVCLFlBQVksRUFBRSxxQkFBcUI7SUFDbkMsYUFBYSxFQUFFLHNCQUFzQjtJQUNyQyxXQUFXLEVBQUUsb0JBQW9CO0lBQ2pDLGVBQWUsRUFBRSxvQkFBb0I7SUFDckMsa0JBQWtCLEVBQUUsMkJBQTJCO0lBQy9DLFlBQVksRUFBRSx3QkFBd0I7SUFDdEMsb0JBQW9CLEVBQUUsNkJBQTZCO0lBQ25ELGlCQUFpQixFQUFFLG9CQUFvQjtJQUN2Qyw0QkFBNEIsRUFBRSxnQ0FBZ0M7Q0FDL0QsQ0FBQTtBQUVELHFHQUFxRztBQUN4RixRQUFBLGdCQUFnQixHQUFHO0lBQzlCLG1CQUFtQjtJQUNuQixJQUFJLEVBQUUsRUFBRTtJQUNSLFVBQVUsRUFBRSxFQUFFO0lBQ2QsVUFBVSxFQUFFLEVBQUU7SUFDZCxVQUFVLEVBQUUsRUFBRTtJQUNkLFVBQVUsRUFBRSxFQUFFO0lBQ2Qsc0JBQXNCO0lBQ3RCLE1BQU0sRUFBRSxDQUFDLEVBQUU7SUFDWCxPQUFPLEVBQUUsQ0FBQyxFQUFFO0lBQ1osU0FBUyxFQUFFLENBQUMsRUFBRTtJQUNkLFNBQVMsRUFBRSxDQUFDLEVBQUU7SUFDZCxTQUFTLEVBQUUsQ0FBQyxFQUFFO0lBQ2QsT0FBTyxFQUFFLENBQUMsRUFBRTtJQUNaLGdCQUFnQixFQUFFLENBQUMsRUFBRTtJQUNyQixlQUFlLEVBQUUsRUFBRTtJQUNuQixNQUFNLEVBQUUsRUFBRTtJQUNWLFNBQVMsRUFBRSxFQUFFO0lBQ2IsZUFBZSxFQUFFLEVBQUU7SUFDbkIsSUFBSSxFQUFFLEdBQUc7SUFDVCw0QkFBNEI7SUFDNUIsVUFBVSxFQUFFLENBQUMsRUFBRTtJQUNmLFNBQVMsRUFBRSxDQUFDLEVBQUU7SUFDZCxNQUFNLEVBQUUsQ0FBQyxFQUFFO0lBQ1gsY0FBYyxFQUFFLENBQUMsRUFBRTtDQUNYLENBQUE7QUFFViw0RUFBNEU7QUFDNUUsaUNBQWlDO0FBQ3BCLFFBQUEsd0JBQXdCLEdBQUc7SUFDdEMsU0FBUyxFQUFFLEdBQUc7SUFDZCxNQUFNLEVBQUUsR0FBRztJQUNYLE1BQU0sRUFBRSxHQUFHO0lBQ1gsT0FBTyxFQUFFLEVBQUU7SUFDWCxJQUFJLEVBQUUsRUFBRTtJQUNSLFVBQVUsRUFBRSxHQUFHO0NBQ1AsQ0FBQSJ9
|
|
@@ -7,16 +7,10 @@ export declare class HttpClient {
|
|
|
7
7
|
readonly testMode: boolean;
|
|
8
8
|
protected readonly restApiUrl: string;
|
|
9
9
|
protected readonly tguApiUrl: string;
|
|
10
|
-
protected readonly restApiV3Url: string;
|
|
11
10
|
constructor({ options, logger }: {
|
|
12
11
|
options: ProviderOptions;
|
|
13
12
|
logger: Logger;
|
|
14
13
|
});
|
|
15
|
-
restApiV3Request<T, TResponse>({ endpoint, data, method, }: {
|
|
16
|
-
endpoint: string;
|
|
17
|
-
data?: T;
|
|
18
|
-
method?: RequestInit["method"];
|
|
19
|
-
}): Promise<TResponse>;
|
|
20
14
|
apiRequest<T, TResponse>({ endpoint, data, method, }: {
|
|
21
15
|
endpoint: string;
|
|
22
16
|
data?: T;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../../../../../../src/providers/pay/core/http-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,kBAAkB,CAAA;AAEvC,OAAO,EAAC,eAAe,EAAC,MAAM,UAAU,CAAA;AAGxC,qBAAa,UAAU;IACrB,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAA;IAC5C,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACjC,SAAgB,SAAS,EAAE,OAAO,CAAA;IAClC,SAAgB,QAAQ,EAAE,OAAO,CAAA;IACjC,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IACrC,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../../../../../../src/providers/pay/core/http-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,kBAAkB,CAAA;AAEvC,OAAO,EAAC,eAAe,EAAC,MAAM,UAAU,CAAA;AAGxC,qBAAa,UAAU;IACrB,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAA;IAC5C,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACjC,SAAgB,SAAS,EAAE,OAAO,CAAA;IAClC,SAAgB,QAAQ,EAAE,OAAO,CAAA;IACjC,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IACrC,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;gBAExB,EAAC,OAAO,EAAE,MAAM,EAAC,EAAE;QAAC,OAAO,EAAE,eAAe,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC;IASnE,UAAU,CAAC,CAAC,EAAE,SAAS,EAAE,EAC7B,QAAQ,EACR,IAAI,EACJ,MAAM,GACP,EAAE;QACD,QAAQ,EAAE,MAAM,CAAA;QAChB,IAAI,CAAC,EAAE,CAAC,CAAA;QACR,MAAM,CAAC,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAA;KAC/B,GAAG,OAAO,CAAC,SAAS,CAAC;IAIhB,UAAU,CAAC,CAAC,EAAE,SAAS,EAAE,EAC7B,QAAQ,EACR,IAAI,EACJ,MAAM,GACP,EAAE;QACD,QAAQ,EAAE,MAAM,CAAA;QAChB,IAAI,CAAC,EAAE,CAAC,CAAA;QACR,MAAM,CAAC,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAA;KAC/B,GAAG,OAAO,CAAC,SAAS,CAAC;IAItB;;;;;;OAMG;IACG,QAAQ,CAAC,CAAC,EAAE,SAAS,EAAE,EAC3B,GAAG,EACH,IAAI,EACJ,MAAM,EACN,OAAO,GACR,EAAE;QACD,GAAG,EAAE,MAAM,CAAA;QACX,IAAI,CAAC,EAAE,CAAC,CAAA;QACR,MAAM,CAAC,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAA;QAC9B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KACjC,GAAG,OAAO,CAAC,SAAS,CAAC;IA6DtB,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,GAAG;CAkBhC"}
|
|
@@ -11,24 +11,6 @@ class HttpClient {
|
|
|
11
11
|
this.debugMode = options.debugMode ?? options.testMode ?? true;
|
|
12
12
|
this.restApiUrl = constants_1.PayEnvironmentPaths.REST_API;
|
|
13
13
|
this.tguApiUrl = options.tguApiUrl ?? constants_1.PayEnvironmentPaths.TGU_API;
|
|
14
|
-
this.restApiV3Url = constants_1.PayEnvironmentPaths.REST_API_v3;
|
|
15
|
-
}
|
|
16
|
-
async restApiV3Request({ endpoint, data, method, }) {
|
|
17
|
-
const body = new URLSearchParams();
|
|
18
|
-
if (data) {
|
|
19
|
-
const keys = Object.keys(data);
|
|
20
|
-
for (const key of keys) {
|
|
21
|
-
body.append(key, `${data[key]}`);
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
return this.request_({
|
|
25
|
-
url: `${this.restApiV3Url}${endpoint}`,
|
|
26
|
-
data: body.toString(),
|
|
27
|
-
method,
|
|
28
|
-
headers: {
|
|
29
|
-
"Content-Type": "application/x-www-form-urlencoded",
|
|
30
|
-
},
|
|
31
|
-
});
|
|
32
14
|
}
|
|
33
15
|
async apiRequest({ endpoint, data, method, }) {
|
|
34
16
|
return this.request_({ url: `${this.restApiUrl}${endpoint}`, data, method });
|
|
@@ -105,4 +87,4 @@ class HttpClient {
|
|
|
105
87
|
}
|
|
106
88
|
}
|
|
107
89
|
exports.HttpClient = HttpClient;
|
|
108
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1jbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvcHJvdmlkZXJzL3BheS9jb3JlL2h0dHAtY2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDJDQUErQztBQUUvQyxxREFBcUQ7QUFFckQsTUFBYSxVQUFVO0lBUXJCLFlBQVksRUFBQyxPQUFPLEVBQUUsTUFBTSxFQUE2QztRQUN2RSxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQTtRQUN2QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQTtRQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFBO1FBQ3hDLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLFNBQVMsSUFBSSxPQUFPLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQTtRQUM5RCxJQUFJLENBQUMsVUFBVSxHQUFHLCtCQUFtQixDQUFDLFFBQVEsQ0FBQTtRQUM5QyxJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxTQUFTLElBQUksK0JBQW1CLENBQUMsT0FBTyxDQUFBO0lBQ25FLENBQUM7SUFFRCxLQUFLLENBQUMsVUFBVSxDQUFlLEVBQzdCLFFBQVEsRUFDUixJQUFJLEVBQ0osTUFBTSxHQUtQO1FBQ0MsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFVBQVUsR0FBRyxRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFDLENBQUMsQ0FBQTtJQUM1RSxDQUFDO0lBRUQsS0FBSyxDQUFDLFVBQVUsQ0FBZSxFQUM3QixRQUFRLEVBQ1IsSUFBSSxFQUNKLE1BQU0sR0FLUDtRQUNDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFF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
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { CustomerDTO, Logger, OrderDTO, ProviderWebhookPayload, SalesChannelDTO, WebhookActionResult } from "@medusajs/framework/types";
|
|
2
2
|
import { AuthorizePaymentInput, AuthorizePaymentOutput, CancelPaymentInput, CancelPaymentOutput, CapturePaymentInput, CapturePaymentOutput, DeletePaymentInput, DeletePaymentOutput, GetPaymentStatusInput, GetPaymentStatusOutput, InitiatePaymentInput, InitiatePaymentOutput, PaymentSessionDTO, RefundPaymentInput, RefundPaymentOutput, RetrievePaymentInput, RetrievePaymentOutput, UpdatePaymentInput, UpdatePaymentOutput } from "@medusajs/types";
|
|
3
3
|
import { AbstractEventBusModuleService, AbstractPaymentProvider } from "@medusajs/framework/utils";
|
|
4
|
-
import { CreateOrder, PaymentOptions, ProviderOptions } from "../types";
|
|
4
|
+
import { CreateDirectDebitRequest, CreateOrder, OrderResponse, PaymentOptions, ProviderOptions } from "../types";
|
|
5
5
|
import { PayClient } from "./pay-client";
|
|
6
6
|
/**
|
|
7
7
|
* Implementation of Pay. Payment Provider for Medusa
|
|
@@ -31,7 +31,7 @@ declare abstract class PayBase extends AbstractPaymentProvider<ProviderOptions>
|
|
|
31
31
|
createPayOrderPayload(order: OrderDTO & {
|
|
32
32
|
customer: CustomerDTO;
|
|
33
33
|
sales_channel: SalesChannelDTO;
|
|
34
|
-
}, paymentSession: PaymentSessionDTO): Omit<CreateOrder, "serviceId">;
|
|
34
|
+
}, paymentSession: PaymentSessionDTO): Omit<CreateOrder, "serviceId"> | Omit<CreateDirectDebitRequest, "serviceId">;
|
|
35
35
|
/**
|
|
36
36
|
* Initiates a new payment with Pay.
|
|
37
37
|
* @param input - The payment initiation input
|
|
@@ -89,6 +89,13 @@ declare abstract class PayBase extends AbstractPaymentProvider<ProviderOptions>
|
|
|
89
89
|
*/
|
|
90
90
|
updatePayment(input: UpdatePaymentInput): Promise<UpdatePaymentOutput>;
|
|
91
91
|
get keyMap(): Record<string, string>;
|
|
92
|
+
/**
|
|
93
|
+
* A failure exchange can refer to one payment attempt while the Pay. order was
|
|
94
|
+
* paid through a later attempt, so the live status is checked before acting on
|
|
95
|
+
* it. Returns false when the status cannot be verified, keeping the regular
|
|
96
|
+
* failure handling in place.
|
|
97
|
+
*/
|
|
98
|
+
protected isPaymentLivePaid(payment: OrderResponse): Promise<boolean>;
|
|
92
99
|
/**
|
|
93
100
|
* Processes webhook data from Pay.
|
|
94
101
|
* @param payload - The webhook payload
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pay-base.d.ts","sourceRoot":"","sources":["../../../../../../src/providers/pay/core/pay-base.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,MAAM,EACN,QAAQ,EACR,sBAAsB,EACtB,eAAe,EACf,mBAAmB,EACpB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EAEtB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,6BAA6B,EAC7B,uBAAuB,EAOxB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EACL,WAAW,
|
|
1
|
+
{"version":3,"file":"pay-base.d.ts","sourceRoot":"","sources":["../../../../../../src/providers/pay/core/pay-base.ts"],"names":[],"mappings":"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"}
|
|
@@ -216,9 +216,8 @@ class PayBase extends utils_1.AbstractPaymentProvider {
|
|
|
216
216
|
},
|
|
217
217
|
}));
|
|
218
218
|
// If the Pay order is set to authorize we need to capture the order in Pay.
|
|
219
|
-
if (payment
|
|
219
|
+
if (payment.data.status.code === constants_1.PayPaymentStatus.AUTHORIZE) {
|
|
220
220
|
await this.client_.captureOrder(id);
|
|
221
|
-
// Refetch payment data
|
|
222
221
|
payment = (await this.retrievePayment({
|
|
223
222
|
data: {
|
|
224
223
|
id,
|
|
@@ -367,7 +366,7 @@ class PayBase extends utils_1.AbstractPaymentProvider {
|
|
|
367
366
|
};
|
|
368
367
|
const mappedStatus = statusMap[status.code];
|
|
369
368
|
this.debug_ &&
|
|
370
|
-
this.logger_.info(`Pay. payment ${id} status: ${status} (mapped to: ${mappedStatus})`);
|
|
369
|
+
this.logger_.info(`Pay. payment ${id} status: ${status.code} (mapped to: ${mappedStatus})`);
|
|
371
370
|
return {
|
|
372
371
|
status: mappedStatus,
|
|
373
372
|
};
|
|
@@ -433,6 +432,25 @@ class PayBase extends utils_1.AbstractPaymentProvider {
|
|
|
433
432
|
...(this.options_.otherSlCodes ? this.options_.otherSlCodes : {}),
|
|
434
433
|
};
|
|
435
434
|
}
|
|
435
|
+
/**
|
|
436
|
+
* A failure exchange can refer to one payment attempt while the Pay. order was
|
|
437
|
+
* paid through a later attempt, so the live status is checked before acting on
|
|
438
|
+
* it. Returns false when the status cannot be verified, keeping the regular
|
|
439
|
+
* failure handling in place.
|
|
440
|
+
*/
|
|
441
|
+
async isPaymentLivePaid(payment) {
|
|
442
|
+
try {
|
|
443
|
+
const live = await this.client_
|
|
444
|
+
.getOrder(payment.id)
|
|
445
|
+
.catch(() => this.client_.getTransaction(payment.orderId));
|
|
446
|
+
return (live.status.code === constants_1.PayPaymentStatus.PAID ||
|
|
447
|
+
live.status.code === constants_1.PayPaymentStatus.AUTHORIZE);
|
|
448
|
+
}
|
|
449
|
+
catch (error) {
|
|
450
|
+
this.logger_.warn(`Could not verify live Pay. status for ${payment.id}: ${error.message}`);
|
|
451
|
+
return false;
|
|
452
|
+
}
|
|
453
|
+
}
|
|
436
454
|
/**
|
|
437
455
|
* Processes webhook data from Pay.
|
|
438
456
|
* @param payload - The webhook payload
|
|
@@ -450,9 +468,6 @@ class PayBase extends utils_1.AbstractPaymentProvider {
|
|
|
450
468
|
id: data.order_id,
|
|
451
469
|
},
|
|
452
470
|
}));
|
|
453
|
-
if (!payment) {
|
|
454
|
-
throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_FOUND, "Payment not found");
|
|
455
|
-
}
|
|
456
471
|
payment = paymentData;
|
|
457
472
|
}
|
|
458
473
|
else {
|
|
@@ -468,11 +483,15 @@ class PayBase extends utils_1.AbstractPaymentProvider {
|
|
|
468
483
|
throw new utils_1.MedusaError(utils_1.MedusaErrorTypes.INVALID_DATA, "Invalid signature method");
|
|
469
484
|
}
|
|
470
485
|
if (!secret) {
|
|
471
|
-
throw new utils_1.MedusaError(utils_1.MedusaErrorTypes.INVALID_DATA, `No secret key
|
|
486
|
+
throw new utils_1.MedusaError(utils_1.MedusaErrorTypes.INVALID_DATA, `No secret key found for ${signatureKeyId}`);
|
|
472
487
|
}
|
|
473
488
|
const hmac = crypto_1.default.createHmac(signatureAlgorithm, secret);
|
|
474
|
-
const
|
|
475
|
-
|
|
489
|
+
const expectedSignature = hmac.update(rawData).digest();
|
|
490
|
+
const providedSignature = Buffer.from(signature ?? "", "hex");
|
|
491
|
+
// timingSafeEqual throws on buffers of unequal length, so compare
|
|
492
|
+
// the lengths first
|
|
493
|
+
if (expectedSignature.length !== providedSignature.length ||
|
|
494
|
+
!crypto_1.default.timingSafeEqual(expectedSignature, providedSignature)) {
|
|
476
495
|
throw new utils_1.MedusaError(utils_1.MedusaErrorTypes.INVALID_DATA, "Invalid signature");
|
|
477
496
|
}
|
|
478
497
|
if (this.debug_) {
|
|
@@ -501,7 +520,7 @@ class PayBase extends utils_1.AbstractPaymentProvider {
|
|
|
501
520
|
this.logger_.info(`PayPaymentStatus: ${payment.status.code}`);
|
|
502
521
|
this.logger_.info(JSON.stringify(baseData));
|
|
503
522
|
}
|
|
504
|
-
const isDirectDebit = payment
|
|
523
|
+
const isDirectDebit = payment.payments?.[0]?.paymentMethod?.id === 137;
|
|
505
524
|
switch (payment.status.code) {
|
|
506
525
|
case constants_1.PayPaymentStatus.AUTHORIZE:
|
|
507
526
|
case constants_1.PayPaymentStatus.PAID:
|
|
@@ -530,6 +549,13 @@ class PayBase extends utils_1.AbstractPaymentProvider {
|
|
|
530
549
|
};
|
|
531
550
|
}
|
|
532
551
|
else {
|
|
552
|
+
if (await this.isPaymentLivePaid(payment)) {
|
|
553
|
+
this.logger_.info(`Pay. order ${payment.id} is paid, ignoring ${payment.status.code} exchange for #${payment.reference}`);
|
|
554
|
+
return {
|
|
555
|
+
action: utils_1.PaymentActions.SUCCESSFUL,
|
|
556
|
+
data: baseData,
|
|
557
|
+
};
|
|
558
|
+
}
|
|
533
559
|
await this.eventBusService_.emit({
|
|
534
560
|
name: "pay_payment.canceled",
|
|
535
561
|
data: {
|
|
@@ -545,11 +571,22 @@ class PayBase extends utils_1.AbstractPaymentProvider {
|
|
|
545
571
|
case constants_1.PayPaymentStatus.DENIED_64:
|
|
546
572
|
case constants_1.PayPaymentStatus.CHARGEBACK:
|
|
547
573
|
case constants_1.PayPaymentStatus.FAILURE:
|
|
574
|
+
// A chargeback on a paid order is a legitimate failure, the other codes
|
|
575
|
+
// can belong to an attempt that was superseded by a paid one.
|
|
576
|
+
if (payment.status.code !== constants_1.PayPaymentStatus.CHARGEBACK &&
|
|
577
|
+
(await this.isPaymentLivePaid(payment))) {
|
|
578
|
+
this.logger_.info(`Pay. order ${payment.id} is paid, ignoring ${payment.status.code} exchange for #${payment.reference}`);
|
|
579
|
+
return {
|
|
580
|
+
action: utils_1.PaymentActions.SUCCESSFUL,
|
|
581
|
+
data: baseData,
|
|
582
|
+
};
|
|
583
|
+
}
|
|
548
584
|
await this.eventBusService_.emit({
|
|
549
585
|
name: "pay_payment.failed",
|
|
550
586
|
data: {
|
|
551
587
|
// This will be the Order ID that has been set during the creation of the payment
|
|
552
588
|
id: payment.reference,
|
|
589
|
+
statusCode: payment.status.code,
|
|
553
590
|
},
|
|
554
591
|
}, {});
|
|
555
592
|
return {
|
|
@@ -591,4 +628,4 @@ class PayBase extends utils_1.AbstractPaymentProvider {
|
|
|
591
628
|
}
|
|
592
629
|
}
|
|
593
630
|
exports.default = PayBase;
|
|
594
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvcHJvdmlkZXJzL3BheS9jb3JlL3BheS1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBOEJBLHFEQVNrQztBQVdsQyw2Q0FBc0M7QUFDdEMsb0RBQTJCO0FBQzNCLDJDQUE0QztBQUM1QywyR0FBa0Y7QUFTbEY7O0dBRUc7QUFDSCxNQUFlLE9BQVEsU0FBUSwrQkFBd0M7SUFPckU7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxlQUFlLENBQUMsT0FBd0I7UUFDN0MsSUFDRSxDQUFDLE9BQU8sQ0FBQyxNQUFNO1lBQ2YsQ0FBQyxPQUFPLENBQUMsUUFBUTtZQUNqQixDQUFDLE9BQU8sQ0FBQyxNQUFNO1lBQ2YsQ0FBQyxPQUFPLENBQUMsUUFBUTtZQUNqQixDQUFDLE9BQU8sQ0FBQyxTQUFTO1lBQ2xCLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFDbEIsQ0FBQztZQUNELE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQzlCLHlHQUF5RyxDQUMxRyxDQUFBO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsWUFBWSxTQUFTLEVBQUUsT0FBd0I7UUFDN0MsS0FBSyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQTtRQWdCM0IsMEJBQXFCLEdBQUcsQ0FDdEIsS0FBa0QsRUFDbEQsRUFBRTtZQUNGLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQUUsTUFBZ0IsQ0FBQTtZQUNqRCxNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsa0JBQWtCLENBQUE7WUFFN0QsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQTtZQUM3QyxJQUFJLFdBQVcsR0FBRyxLQUFLLENBQUMsYUFBYSxFQUFFLElBQUk7Z0JBQ3pDLENB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
|
|
631
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvcHJvdmlkZXJzL3BheS9jb3JlL3BheS1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBOEJBLHFEQVNrQztBQVlsQyw2Q0FBc0M7QUFDdEMsb0RBQTJCO0FBQzNCLDJDQUE0QztBQUM1QywyR0FBa0Y7QUFTbEY7O0dBRUc7QUFDSCxNQUFlLE9BQVEsU0FBUSwrQkFBd0M7SUFPckU7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxlQUFlLENBQUMsT0FBd0I7UUFDN0MsSUFDRSxDQUFDLE9BQU8sQ0FBQyxNQUFNO1lBQ2YsQ0FBQyxPQUFPLENBQUMsUUFBUTtZQUNqQixDQUFDLE9BQU8sQ0FBQyxNQUFNO1lBQ2YsQ0FBQyxPQUFPLENBQUMsUUFBUTtZQUNqQixDQUFDLE9BQU8sQ0FBQyxTQUFTO1lBQ2xCLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFDbEIsQ0FBQztZQUNELE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQzlCLHlHQUF5RyxDQUMxRyxDQUFBO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsWUFBWSxTQUFTLEVBQUUsT0FBd0I7UUFDN0MsS0FBSyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQTtRQWdCM0IsMEJBQXFCLEdBQUcsQ0FDdEIsS0FBa0QsRUFDbEQsRUFBRTtZQUNGLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQUUsTUFBZ0IsQ0FBQTtZQUNqRCxNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsa0JBQWtCLENBQUE7WUFFN0QsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQTtZQUM3QyxJQUFJLFdBQVcsR0FBRyxLQUFLLENBQUMsYUFBYSxFQUFFLElBQUk7Z0JBQ3pDLENB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
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { HttpClient } from "./http-client";
|
|
2
|
-
import { CapturesRefundResponse, CreateDirectDebitRequest, CreateDirectDebitResponse, CreateOrder, DirectDebitInfoResponse, GetConfigResponse, GetTransactionFullResponse, OrderResponse, ProviderOptions, RefundTransaction, UpdateOrder } from "../types";
|
|
2
|
+
import { CapturesRefundResponse, CreateDirectDebitRequest, CreateDirectDebitResponse, CreateOrder, DirectDebit, DirectDebitInfoResponse, GetConfigResponse, GetTransactionFullResponse, OrderResponse, ProviderOptions, RefundTransaction, UpdateOrder } from "../types";
|
|
3
3
|
import { Logger } from "@medusajs/medusa";
|
|
4
4
|
export declare class PayClient {
|
|
5
5
|
protected readonly httpClient_: HttpClient;
|
|
6
6
|
protected readonly serviceId_: string;
|
|
7
|
+
protected readonly logger_: Logger;
|
|
7
8
|
constructor(options: ProviderOptions, logger: Logger);
|
|
8
9
|
/**
|
|
9
10
|
* Create a new order.
|
|
@@ -33,14 +34,26 @@ export declare class PayClient {
|
|
|
33
34
|
*/
|
|
34
35
|
refundPayment(paymentId: string, data: Omit<RefundTransaction, "exchangeUrl">): Promise<CapturesRefundResponse>;
|
|
35
36
|
/**
|
|
36
|
-
* Create
|
|
37
|
+
* Create a one-off direct debit mandate
|
|
37
38
|
* @param data
|
|
38
39
|
*/
|
|
39
40
|
createDirectDebit(data: Omit<CreateDirectDebitRequest, "serviceId">): Promise<CreateDirectDebitResponse | void>;
|
|
40
41
|
/**
|
|
41
|
-
*
|
|
42
|
-
*
|
|
42
|
+
* Retrieve a direct debit by its reference id. Unlike the mandate query this
|
|
43
|
+
* endpoint returns the direct debit object itself, not a paginated envelope.
|
|
44
|
+
* @param directDebitId
|
|
45
|
+
*/
|
|
46
|
+
getDirectDebitInfo(directDebitId: string): Promise<DirectDebit | DirectDebitInfoResponse>;
|
|
47
|
+
/**
|
|
48
|
+
* Retrieve direct debit info by the mandate code
|
|
49
|
+
* @param mandateId
|
|
50
|
+
*/
|
|
51
|
+
getDirectDebitInfoByMandate(mandateId: string): Promise<DirectDebitInfoResponse>;
|
|
52
|
+
/**
|
|
53
|
+
* Delete a mandate so no further direct debits can be executed on it. Test
|
|
54
|
+
* mode never creates a mandate, so there is nothing to delete there.
|
|
55
|
+
* @param mandateId
|
|
43
56
|
*/
|
|
44
|
-
|
|
57
|
+
deleteDirectDebitMandate(mandateId: string): Promise<void>;
|
|
45
58
|
}
|
|
46
59
|
//# sourceMappingURL=pay-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pay-client.d.ts","sourceRoot":"","sources":["../../../../../../src/providers/pay/core/pay-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAA;AACxC,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,yBAAyB,EACzB,WAAW,
|
|
1
|
+
{"version":3,"file":"pay-client.d.ts","sourceRoot":"","sources":["../../../../../../src/providers/pay/core/pay-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAA;AACxC,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,yBAAyB,EACzB,WAAW,EACX,WAAW,EACX,uBAAuB,EACvB,iBAAiB,EACjB,0BAA0B,EAC1B,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,WAAW,EACZ,MAAM,UAAU,CAAA;AAGjB,OAAO,EAAC,MAAM,EAAC,MAAM,kBAAkB,CAAA;AAEvC,qBAAa,SAAS;IACpB,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,UAAU,CAAA;IAC1C,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IACrC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;gBAEtB,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM;IAMpD;;;;OAIG;IACG,WAAW,CACf,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,GACnC,OAAO,CAAC,aAAa,CAAC;IAanB,WAAW,CACf,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,WAAW,GAChB,OAAO,CAAC,aAAa,CAAC;IAOnB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAO9D,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAOrD,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAOzD;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAO7C;;;OAGG;IACG,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAO1E;;;;;;OAMG;IACG,aAAa,CACjB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,IAAI,CAAC,iBAAiB,EAAE,aAAa,CAAC,GAC3C,OAAO,CAAC,sBAAsB,CAAC;IAQlC;;;OAGG;IACG,iBAAiB,CACrB,IAAI,EAAE,IAAI,CAAC,wBAAwB,EAAE,WAAW,CAAC,GAChD,OAAO,CAAC,yBAAyB,GAAG,IAAI,CAAC;IAoB5C;;;;OAIG;IACG,kBAAkB,CACtB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,WAAW,GAAG,uBAAuB,CAAC;IAOjD;;;OAGG;IACG,2BAA2B,CAC/B,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,uBAAuB,CAAC;IAUnC;;;;OAIG;IACG,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAajE"}
|