@webbers/pay-payments-medusa 2.2.51 → 2.2.53
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 +1 -1
- package/.medusa/server/src/admin/index.js +233 -11
- package/.medusa/server/src/admin/index.mjs +234 -12
- package/.medusa/server/src/api/admin/pay/orders/[id]/direct-debit/exchange/route.d.ts +12 -0
- package/.medusa/server/src/api/admin/pay/orders/[id]/direct-debit/exchange/route.d.ts.map +1 -0
- package/.medusa/server/src/api/admin/pay/orders/[id]/direct-debit/exchange/route.js +42 -0
- package/.medusa/server/src/api/admin/pay/orders/[id]/direct-debit/route.d.ts +9 -0
- package/.medusa/server/src/api/admin/pay/orders/[id]/direct-debit/route.d.ts.map +1 -0
- package/.medusa/server/src/api/admin/pay/orders/[id]/direct-debit/route.js +19 -0
- package/.medusa/server/src/api/admin/pay/orders/[id]/reversal/route.d.ts +7 -0
- package/.medusa/server/src/api/admin/pay/orders/[id]/reversal/route.d.ts.map +1 -0
- package/.medusa/server/src/api/admin/pay/orders/[id]/reversal/route.js +17 -0
- package/.medusa/server/src/api/admin/pay/settings/route.d.ts +12 -0
- package/.medusa/server/src/api/admin/pay/settings/route.d.ts.map +1 -0
- package/.medusa/server/src/api/admin/pay/settings/route.js +24 -0
- package/.medusa/server/src/providers/pay/core/pay-base.d.ts +6 -0
- package/.medusa/server/src/providers/pay/core/pay-base.d.ts.map +1 -1
- package/.medusa/server/src/providers/pay/core/pay-base.js +24 -1
- package/.medusa/server/src/providers/pay/services/pay-direct-debit.d.ts +6 -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 +34 -15
- package/.medusa/server/src/providers/pay/types/index.d.ts +6 -5
- package/.medusa/server/src/providers/pay/types/index.d.ts.map +1 -1
- package/.medusa/server/src/providers/pay/types/index.js +1 -1
- package/.medusa/server/src/subscribers/direct-debit-exchange.d.ts.map +1 -1
- package/.medusa/server/src/subscribers/direct-debit-exchange.js +96 -24
- package/.medusa/server/src/subscribers/payment-failed.d.ts.map +1 -1
- package/.medusa/server/src/subscribers/payment-failed.js +24 -4
- package/.medusa/server/src/utils/directDebitExchange.d.ts +15 -0
- package/.medusa/server/src/utils/directDebitExchange.d.ts.map +1 -1
- package/.medusa/server/src/utils/directDebitExchange.js +59 -2
- package/.medusa/server/src/utils/directDebitSimulation.d.ts +93 -0
- package/.medusa/server/src/utils/directDebitSimulation.d.ts.map +1 -0
- package/.medusa/server/src/utils/directDebitSimulation.js +170 -0
- package/.medusa/server/src/utils/index.d.ts +2 -0
- package/.medusa/server/src/utils/index.d.ts.map +1 -1
- package/.medusa/server/src/utils/index.js +3 -1
- package/.medusa/server/src/utils/paymentReversal.d.ts +24 -0
- package/.medusa/server/src/utils/paymentReversal.d.ts.map +1 -0
- package/.medusa/server/src/utils/paymentReversal.js +80 -0
- package/.medusa/server/src/utils/reverseCapturedPayment.d.ts +43 -0
- package/.medusa/server/src/utils/reverseCapturedPayment.d.ts.map +1 -0
- package/.medusa/server/src/utils/reverseCapturedPayment.js +100 -0
- package/README.md +51 -0
- package/package.json +1 -1
|
@@ -8,6 +8,7 @@ exports.default = payDirectDebitExchangeHandler;
|
|
|
8
8
|
const utils_1 = require("@medusajs/framework/utils");
|
|
9
9
|
const core_flows_1 = require("@medusajs/core-flows");
|
|
10
10
|
const getPayPaymentSession_1 = __importDefault(require("../utils/getPayPaymentSession"));
|
|
11
|
+
const reverseCapturedPayment_1 = require("../utils/reverseCapturedPayment");
|
|
11
12
|
const types_1 = require("../providers/pay/types");
|
|
12
13
|
const pay_client_1 = require("../providers/pay/core/pay-client");
|
|
13
14
|
const constants_1 = require("../providers/pay/core/constants");
|
|
@@ -20,7 +21,33 @@ const getPayClient = (container, logger) => {
|
|
|
20
21
|
logger.warn("Pay. - Ignoring direct debit exchange: no Pay. provider options found");
|
|
21
22
|
return null;
|
|
22
23
|
}
|
|
23
|
-
|
|
24
|
+
const options = payModuleConfig.options;
|
|
25
|
+
return { client: new pay_client_1.PayClient(options, logger), options };
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* The order display id a simulated exchange belongs to: the body's
|
|
29
|
+
* `reference`, or the order behind the payment session encoded in the
|
|
30
|
+
* simulated mandate code.
|
|
31
|
+
*/
|
|
32
|
+
const resolveSimulatedDisplayId = async (container, payload, mandateId) => {
|
|
33
|
+
const fromPayload = (0, directDebitExchange_1.readPayloadString)(payload.reference);
|
|
34
|
+
if (fromPayload) {
|
|
35
|
+
return fromPayload;
|
|
36
|
+
}
|
|
37
|
+
const sessionId = (0, directDebitExchange_1.readSimulatedMandateSessionId)(mandateId);
|
|
38
|
+
if (!sessionId) {
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
|
|
42
|
+
const { data: [session], } = await query.graph({
|
|
43
|
+
entity: "payment_session",
|
|
44
|
+
fields: ["id", "payment_collection.order.display_id"],
|
|
45
|
+
filters: { id: sessionId },
|
|
46
|
+
});
|
|
47
|
+
const displayId = session?.payment_collection?.order?.display_id;
|
|
48
|
+
return displayId !== undefined && displayId !== null
|
|
49
|
+
? String(displayId)
|
|
50
|
+
: null;
|
|
24
51
|
};
|
|
25
52
|
/**
|
|
26
53
|
* Handles the incasso exchanges Pay. sends for direct debits created via the
|
|
@@ -33,36 +60,52 @@ async function payDirectDebitExchangeHandler({ event: { data }, container, }) {
|
|
|
33
60
|
const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
|
|
34
61
|
const payload = data.payload ?? {};
|
|
35
62
|
const action = (0, directDebitExchange_1.normalizeAction)(payload.action);
|
|
36
|
-
const
|
|
37
|
-
if (!
|
|
63
|
+
const pay = getPayClient(container, logger);
|
|
64
|
+
if (!pay) {
|
|
38
65
|
return;
|
|
39
66
|
}
|
|
67
|
+
const { client, options } = pay;
|
|
68
|
+
// Same default as the HTTP client: an unset testMode means test mode
|
|
69
|
+
const testMode = options.testMode ?? true;
|
|
40
70
|
let info = null;
|
|
41
71
|
let displayId = null;
|
|
72
|
+
// Set when the exchange describes a mandate that only exists on this test
|
|
73
|
+
// server, the body is then the only source of the direct debit state
|
|
74
|
+
let simulatedMandateId = null;
|
|
42
75
|
if ((0, directDebitExchange_1.isLegacyDirectDebitAction)(action)) {
|
|
43
76
|
const referenceId = (0, directDebitExchange_1.readDirectDebitReferenceId)(payload);
|
|
44
77
|
const mandateId = (0, directDebitExchange_1.readDirectDebitMandateId)(payload);
|
|
45
|
-
if (
|
|
78
|
+
if (testMode && (0, directDebitExchange_1.isSimulatedDirectDebitMandate)(mandateId)) {
|
|
79
|
+
simulatedMandateId = mandateId;
|
|
80
|
+
displayId = await resolveSimulatedDisplayId(container, payload, mandateId);
|
|
81
|
+
if (!displayId) {
|
|
82
|
+
logger.warn(`Pay. - Ignoring simulated direct debit exchange ${action} for ${mandateId}: order reference missing`);
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
if (!simulatedMandateId && referenceId) {
|
|
46
87
|
info = await client.getDirectDebitInfo(referenceId).catch((err) => {
|
|
47
88
|
logger.warn(`Pay. - Could not retrieve direct debit ${referenceId}: ${err.message ?? err}`);
|
|
48
89
|
return null;
|
|
49
90
|
});
|
|
50
91
|
}
|
|
51
|
-
if (!(0, directDebitExchange_1.extractDirectDebit)(info) && mandateId) {
|
|
92
|
+
if (!simulatedMandateId && !(0, directDebitExchange_1.extractDirectDebit)(info) && mandateId) {
|
|
52
93
|
info = await client.getDirectDebitInfoByMandate(mandateId).catch((err) => {
|
|
53
94
|
logger.warn(`Pay. - Could not retrieve direct debit mandate ${mandateId}: ${err.message ?? err}`);
|
|
54
95
|
return null;
|
|
55
96
|
});
|
|
56
97
|
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
98
|
+
if (!simulatedMandateId) {
|
|
99
|
+
const directDebit = (0, directDebitExchange_1.extractDirectDebit)(info);
|
|
100
|
+
if (!directDebit) {
|
|
101
|
+
logger.warn(`Pay. - Ignoring direct debit exchange ${action}: direct debit not found`);
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
displayId = (0, directDebitExchange_1.extractDirectDebitReference)(info, directDebit);
|
|
105
|
+
if (!displayId) {
|
|
106
|
+
logger.warn(`Pay. - Ignoring direct debit exchange ${action}: order reference missing`);
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
66
109
|
}
|
|
67
110
|
}
|
|
68
111
|
else {
|
|
@@ -72,6 +115,10 @@ async function payDirectDebitExchangeHandler({ event: { data }, container, }) {
|
|
|
72
115
|
return;
|
|
73
116
|
}
|
|
74
117
|
}
|
|
118
|
+
if (!displayId) {
|
|
119
|
+
logger.warn(`Pay. - Ignoring direct debit exchange ${action}: order reference missing`);
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
75
122
|
const { data: [order], } = await query.graph({
|
|
76
123
|
entity: "order",
|
|
77
124
|
fields: [
|
|
@@ -106,10 +153,23 @@ async function payDirectDebitExchangeHandler({ event: { data }, container, }) {
|
|
|
106
153
|
logger.warn(`Pay. - Ignoring direct debit exchange for #${displayId}: mandate code missing on payment`);
|
|
107
154
|
return;
|
|
108
155
|
}
|
|
109
|
-
|
|
110
|
-
logger.warn(`Pay. -
|
|
111
|
-
return
|
|
112
|
-
}
|
|
156
|
+
if (simulatedMandateId && mandateId !== simulatedMandateId) {
|
|
157
|
+
logger.warn(`Pay. - Ignoring simulated direct debit exchange for #${displayId}: mandate ${simulatedMandateId} does not belong to this order`);
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
if (testMode &&
|
|
161
|
+
sessionData.testMode === true &&
|
|
162
|
+
(0, directDebitExchange_1.isSimulatedDirectDebitMandate)(mandateId)) {
|
|
163
|
+
// Nothing to re-fetch, the mandate only exists on this test server
|
|
164
|
+
logger.info(`Pay. - Simulating direct debit exchange for #${displayId} with mandate ${mandateId}`);
|
|
165
|
+
info = { directdebits: [(0, directDebitExchange_1.buildSimulatedDirectDebit)(payload, mandateId, displayId)] };
|
|
166
|
+
}
|
|
167
|
+
else {
|
|
168
|
+
info = await client.getDirectDebitInfoByMandate(mandateId).catch((err) => {
|
|
169
|
+
logger.warn(`Pay. - Could not retrieve direct debit mandate ${mandateId} for #${displayId}: ${err.message ?? err}`);
|
|
170
|
+
return null;
|
|
171
|
+
});
|
|
172
|
+
}
|
|
113
173
|
}
|
|
114
174
|
const directDebit = (0, directDebitExchange_1.extractDirectDebit)(info);
|
|
115
175
|
if (!directDebit) {
|
|
@@ -146,11 +206,23 @@ async function payDirectDebitExchangeHandler({ event: { data }, container, }) {
|
|
|
146
206
|
if (directDebitExchange_1.DIRECT_DEBIT_FAILED_CODES.has(statusCode) ||
|
|
147
207
|
declined ||
|
|
148
208
|
statusAction === "storno") {
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
209
|
+
if (payment?.captured_at && payment.id) {
|
|
210
|
+
// A storno reverses a collected payment: the money went back to the
|
|
211
|
+
// customer, so the order is made payable again
|
|
212
|
+
await (0, reverseCapturedPayment_1.reverseCapturedPayment)(container, {
|
|
213
|
+
orderId: order.id,
|
|
214
|
+
paymentId: payment.id,
|
|
215
|
+
paymentCollectionId,
|
|
216
|
+
kind: statusCode === constants_1.PayDirectDebitStatusCode.STORNO ||
|
|
217
|
+
statusAction === "storno"
|
|
218
|
+
? "storno"
|
|
219
|
+
: "failure",
|
|
220
|
+
statusCode: statusLabel,
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
else {
|
|
224
|
+
await paymentModuleService.updatePaymentCollections(paymentCollectionId, { status: utils_1.PaymentCollectionStatus.FAILED });
|
|
225
|
+
}
|
|
154
226
|
// Same signal the order API chargeback path emits, so consuming projects
|
|
155
227
|
// can follow up on the order and subscription
|
|
156
228
|
const eventBusService = container.resolve(utils_1.Modules.EVENT_BUS);
|
|
@@ -181,4 +253,4 @@ async function payDirectDebitExchangeHandler({ event: { data }, container, }) {
|
|
|
181
253
|
exports.config = {
|
|
182
254
|
event: directDebitExchange_1.PAY_DIRECT_DEBIT_EXCHANGE_EVENT,
|
|
183
255
|
};
|
|
184
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0LWRlYml0LWV4Y2hhbmdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3N1YnNjcmliZXJzL2RpcmVjdC1kZWJpdC1leGNoYW5nZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFpRUEsZ0RBb1BDO0FBblRELHFEQUlrQztBQUNsQyxxREFBMkQ7QUFPM0QseUZBQWdFO0FBQ2hFLGtEQUkrQjtBQUMvQixpRUFBMEQ7QUFFMUQsK0RBQXdFO0FBQ3hFLHNFQWFxQztBQUVyQyxNQUFNLFlBQVksR0FBRyxDQUNuQixTQUEwQixFQUMxQixNQUFjLEVBQ0ksRUFBRTtJQUNwQixNQUFNLFlBQVksR0FBRyxTQUFTLENBQUMsT0FBTyxDQUNwQyxpQ0FBeUIsQ0FBQyxhQUFhLENBQ3hDLENBQUE7SUFFRCxNQUFNLGVBQWUsR0FBSSxZQUFZLENBQUMsT0FBTyxFQUFFLE9BQWUsRUFBRSxPQUFPO1FBQ3JFLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxLQUFLLENBQUMsQ0FBQTtJQUUxQyxJQUFJLENBQUMsZUFBZSxFQUFFLE9BQU8sRUFBRSxDQUFDO1FBQzlCLE1BQU0sQ0FBQyxJQUFJLENBQ1QsdUVBQXVFLENBQ3hFLENBQUE7UUFDRCxPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7SUFFRCxPQUFPLElBQUksc0JBQVMsQ0FBQyxlQUFlLENBQUMsT0FBMEIsRUFBRSxNQUFNLENBQUMsQ0FBQTtBQUMxRSxDQUFDLENBQUE7QUFFRDs7Ozs7R0FLRztBQUNZLEtBQUssVUFBVSw2QkFBNkIsQ0FBQyxFQUMxRCxLQUFLLEVBQUUsRUFBQyxJQUFJLEVBQUMsRUFDYixTQUFTLEdBQ3NDO0lBQy9DLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDMUMsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFD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
|
|
256
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0LWRlYml0LWV4Y2hhbmdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3N1YnNjcmliZXJzL2RpcmVjdC1kZWJpdC1leGNoYW5nZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUE2R0EsZ0RBa1RDO0FBN1pELHFEQUlrQztBQUNsQyxxREFBMkQ7QUFPM0QseUZBQWdFO0FBQ2hFLDRFQUFzRTtBQUN0RSxrREFJK0I7QUFDL0IsaUVBQTBEO0FBRTFELCtEQUF3RTtBQUN4RSxzRUFnQnFDO0FBRXJDLE1BQU0sWUFBWSxHQUFHLENBQ25CLFNBQTBCLEVBQzFCLE1BQWMsRUFDd0MsRUFBRTtJQUN4RCxNQUFNLFlBQVksR0FBRyxTQUFTLENBQUMsT0FBTyxDQUNwQyxpQ0FBeUIsQ0FBQyxhQUFhLENBQ3hDLENBQUE7SUFFRCxNQUFNLGVBQWUsR0FBSSxZQUFZLENBQUMsT0FBTyxFQUFFLE9BQWUsRUFBRSxPQUFPO1FBQ3JFLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxLQUFLLENBQUMsQ0FBQTtJQUUxQyxJQUFJLENBQUMsZUFBZSxFQUFFLE9BQU8sRUFBRSxDQUFDO1FBQzlCLE1BQU0sQ0FBQyxJQUFJLENBQ1QsdUVBQXVFLENBQ3hFLENBQUE7UUFDRCxPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7SUFFRCxNQUFNLE9BQU8sR0FBRyxlQUFlLENBQUMsT0FBMEIsQ0FBQTtJQUUxRCxPQUFPLEVBQUMsTUFBTSxFQUFFLElBQUksc0JBQVMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLEVBQUUsT0FBTyxFQUFDLENBQUE7QUFDMUQsQ0FBQyxDQUFBO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0seUJBQXlCLEdBQUcsS0FBSyxFQUNyQyxTQUEwQixFQUMxQixPQUE0QixFQUM1QixTQUFpQixFQUNPLEVBQUU7SUFDMUIsTUFBTSxX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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payment-failed.d.ts","sourceRoot":"","sources":["../../../../src/subscribers/payment-failed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAE,gBAAgB,EAAC,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"payment-failed.d.ts","sourceRoot":"","sources":["../../../../src/subscribers/payment-failed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAE,gBAAgB,EAAC,MAAM,qBAAqB,CAAA;AAapE,wBAA8B,uBAAuB,CAAC,EACpD,KAAK,EAAE,EAAC,IAAI,EAAC,EACb,SAAS,GACV,EAAE,cAAc,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAC,CAAC,iBAmFnD;AAED,eAAO,MAAM,MAAM,EAAE,gBAEpB,CAAA"}
|
|
@@ -7,6 +7,7 @@ exports.config = void 0;
|
|
|
7
7
|
exports.default = payPaymentFailedHandler;
|
|
8
8
|
const utils_1 = require("@medusajs/framework/utils");
|
|
9
9
|
const getPayPaymentSession_1 = __importDefault(require("../utils/getPayPaymentSession"));
|
|
10
|
+
const reverseCapturedPayment_1 = require("../utils/reverseCapturedPayment");
|
|
10
11
|
const constants_1 = require("../providers/pay/core/constants");
|
|
11
12
|
async function payPaymentFailedHandler({ event: { data }, container, }) {
|
|
12
13
|
const logger = container.resolve("logger");
|
|
@@ -21,6 +22,8 @@ async function payPaymentFailedHandler({ event: { data }, container, }) {
|
|
|
21
22
|
"payment_collections.*",
|
|
22
23
|
"payment_collections.payments.captured_at",
|
|
23
24
|
"payment_collections.payment_sessions.*",
|
|
25
|
+
"payment_collections.payment_sessions.payment.id",
|
|
26
|
+
"payment_collections.payment_sessions.payment.captured_at",
|
|
24
27
|
],
|
|
25
28
|
filters: {
|
|
26
29
|
display_id: data.id,
|
|
@@ -38,11 +41,28 @@ async function payPaymentFailedHandler({ event: { data }, container, }) {
|
|
|
38
41
|
return;
|
|
39
42
|
}
|
|
40
43
|
const payPaymentSession = (0, getPayPaymentSession_1.default)(order);
|
|
41
|
-
if (payPaymentSession) {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
+
if (!payPaymentSession) {
|
|
45
|
+
logger.warn(`No Pay. payment session found for order ${order.id}, ignoring failed payment`);
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
const paymentCollectionId = payPaymentSession.payment_collection_id;
|
|
49
|
+
const capturedPayment = payPaymentSession.payment?.captured_at
|
|
50
|
+
? payPaymentSession.payment
|
|
51
|
+
: undefined;
|
|
52
|
+
if (data.statusCode === constants_1.PayPaymentStatus.CHARGEBACK && capturedPayment) {
|
|
53
|
+
// The money went back to the customer, make the order payable again
|
|
54
|
+
await (0, reverseCapturedPayment_1.reverseCapturedPayment)(container, {
|
|
55
|
+
orderId: order.id,
|
|
56
|
+
paymentId: capturedPayment.id,
|
|
57
|
+
paymentCollectionId,
|
|
58
|
+
kind: "chargeback",
|
|
59
|
+
statusCode: data.statusCode,
|
|
44
60
|
});
|
|
61
|
+
return;
|
|
45
62
|
}
|
|
63
|
+
await paymentModuleService.updatePaymentCollections(paymentCollectionId, {
|
|
64
|
+
status: utils_1.PaymentCollectionStatus.FAILED,
|
|
65
|
+
});
|
|
46
66
|
}
|
|
47
67
|
catch (e) {
|
|
48
68
|
logger.error(e);
|
|
@@ -52,4 +72,4 @@ async function payPaymentFailedHandler({ event: { data }, container, }) {
|
|
|
52
72
|
exports.config = {
|
|
53
73
|
event: ["pay_payment.failed"],
|
|
54
74
|
};
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC1mYWlsZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc3Vic2NyaWJlcnMvcGF5bWVudC1mYWlsZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBYUEsMENBc0ZDO0FBakdELHFEQUtrQztBQUVsQyx5RkFBZ0U7QUFDaEUsNEVBQXNFO0FBQ3RFLCtEQUFnRTtBQUVqRCxLQUFLLFVBQVUsdUJBQXVCLENBQUMsRUFDcEQsS0FBSyxFQUFFLEVBQUMsSUFBSSxFQUFDLEVBQ2IsU0FBUyxHQUN5QztJQUNsRCxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQzFDLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDaEUsTUFBTSxvQkFBb0IsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUM1QyxlQUFPLENBQUMsT0FBTyxDQUNoQixDQUFBO0lBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxDQUFBO0lBRTFDLElBQUksQ0FBQztRQUNILE1BQU0sRUFDSixJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FDZCxHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztZQUNwQixNQUFNLEVBQUUsT0FBTztZQUNmLE1BQU0sRUFBRTtnQkFDTixJQUFJO2dCQUNKLHVCQUF1QjtnQkFDdkIsMENBQTBDO2dCQUMxQyx3Q0FBd0M7Z0JBQ3hDLGlEQUFpRDtnQkFDakQsMERBQTBEO2FBQzNEO1lBQ0QsT0FBTyxFQUFFO2dCQUNQLFVBQVUsRUFBRSxJQUFJLENBQUMsRUFBRTthQUNwQjtTQUNGLENBQUMsQ0FBQTtRQUVGLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNYLE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQzNCLHFDQUFxQyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQy9DLENBQUE7UUFDSCxDQUFDO1FBRUQsMEVBQTBFO1FBQzFFLDhFQUE4RTtRQUM5RSxNQUFNLGtCQUFrQixHQUFHLENBQUMsS0FBSyxDQUFDLG1CQUFtQixJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FDL0QsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUNMLEVBQUUsQ0FBQyxNQUFNLEtBQUssK0JBQXVCLENBQUMsU0FBUztZQUMvQyxDQUFDLEVBQUUsQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUMvRCxDQUFBO1FBRUQsSUFBSSxrQkFBa0IsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLDRCQUFnQixDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQzFFLE1BQU0sQ0FBQyxJQUFJLENBQ1Qsb0NBQW9DLEtBQUssQ0FBQyxFQUFFLDZCQUE2QixDQUMxRSxDQUFBO1lBQ0QsT0FBTTtRQUNSLENBQUM7UUFFRCxNQUFNLGlCQUFpQixHQUFHLElBQUEsOEJBQW9CLEVBQUMsS0FBSyxDQUFDLENBQUE7UUFFckQsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDdkIsTUFBTSxDQUFDLElBQUksQ0FDVCwyQ0FBMkMsS0FBSyxDQUFDLEVBQUUsMkJBQTJCLENBQy9FLENBQUE7WUFDRCxPQUFNO1FBQ1IsQ0FBQztRQUVELE1BQU0sbUJBQW1CLEdBQ3ZCLGlCQUFpQixDQUFDLHFCQUErQixDQUFBO1FBQ25ELE1BQU0sZUFBZSxHQUFHLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxXQUFXO1lBQzVELENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPO1lBQzNCLENBQUMsQ0FBQyxTQUFTLENBQUE7UUFFYixJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssNEJBQWdCLENBQUMsVUFBVSxJQUFJLGVBQWUsRUFBRSxDQUFDO1lBQ3ZFLG9FQUFvRTtZQUNwRSxNQUFNLElBQUEsK0NBQXNCLEVBQUMsU0FBUyxFQUFFO2dCQUN0QyxPQUFPLEVBQUUsS0FBSyxDQUFDLEVBQUU7Z0JBQ2pCLFNBQVMsRUFBRSxlQUFlLENBQUMsRUFBRTtnQkFDN0IsbUJBQW1CO2dCQUNuQixJQUFJLEVBQUUsWUFBWTtnQkFDbEIsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO2FBQzVCLENBQUMsQ0FBQTtZQUNGLE9BQU07UUFDUixDQUFDO1FBRUQsTUFBTSxvQkFBb0IsQ0FBQyx3QkFBd0IsQ0FBQyxtQkFBbUIsRUFBRTtZQUN2RSxNQUFNLEVBQUUsK0JBQXVCLENBQUMsTUFBTTtTQUN2QyxDQUFDLENBQUE7SUFDSixDQUFDO0lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNYLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDZixNQUFNLENBQUMsQ0FBQTtJQUNULENBQUM7QUFDSCxDQUFDO0FBRVksUUFBQSxNQUFNLEdBQXFCO0lBQ3RDLEtBQUssRUFBRSxDQUFDLG9CQUFvQixDQUFDO0NBQzlCLENBQUEifQ==
|
|
@@ -25,4 +25,19 @@ export declare function parseDirectDebitDisplayId(payload: Record<string, any>):
|
|
|
25
25
|
export declare function extractDirectDebit(info?: DirectDebitInfoResponse | DirectDebit | Record<string, any> | null): DirectDebit | null;
|
|
26
26
|
export declare function extractDirectDebitReference(info: DirectDebitInfoResponse | DirectDebit | Record<string, any> | null, directDebit: DirectDebit | Record<string, any> | null): string | null;
|
|
27
27
|
export declare function normalizeDirectDebitStatusAction(payloadAction: string, statusAction?: string): string;
|
|
28
|
+
/**
|
|
29
|
+
* Mandates created while the provider runs in test mode are not known at
|
|
30
|
+
* Pay. (see PayDirectDebitService.updatePayment), their code is
|
|
31
|
+
* `TEST-<payment session id>`.
|
|
32
|
+
*/
|
|
33
|
+
export declare const SIMULATED_MANDATE_PREFIX = "TEST-";
|
|
34
|
+
export declare function isSimulatedDirectDebitMandate(code: unknown): code is string;
|
|
35
|
+
export declare function readSimulatedMandateSessionId(code: string): string | null;
|
|
36
|
+
/**
|
|
37
|
+
* Builds the direct debit a simulated exchange describes, so a test server can
|
|
38
|
+
* walk through the collection flow (collected, storno, ...) without Pay. The
|
|
39
|
+
* status comes from `status.code` in the body when present, otherwise from the
|
|
40
|
+
* legacy action. Only used for simulated mandates while test mode is active.
|
|
41
|
+
*/
|
|
42
|
+
export declare function buildSimulatedDirectDebit(payload: Record<string, any>, mandateId: string, reference: string): DirectDebit;
|
|
28
43
|
//# sourceMappingURL=directDebitExchange.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"directDebitExchange.d.ts","sourceRoot":"","sources":["../../../../src/utils/directDebitExchange.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAE,uBAAuB,EAAC,MAAM,wBAAwB,CAAA;AAG3E,eAAO,MAAM,+BAA+B,sCACP,CAAA;AASrC,eAAO,MAAM,yBAAyB,aAGpC,CAAA;AAEF,eAAO,MAAM,2BAA2B,aAItC,CAAA;AAEF,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAEvD;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAE/D;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAElE;AAED,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC3B,MAAM,GAAG,IAAI,CAIf;AAED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC3B,MAAM,GAAG,IAAI,CAIf;AAED;;;;;;;;GAQG;AACH,wBAAgB,gCAAgC,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAgBtE;AAED,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC3B,MAAM,GAAG,IAAI,CAYf;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,CAAC,EAAE,uBAAuB,GAAG,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,GACxE,WAAW,GAAG,IAAI,CAgBpB;AAED,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,uBAAuB,GAAG,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,EACxE,WAAW,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,GACpD,MAAM,GAAG,IAAI,CASf;AAED,wBAAgB,gCAAgC,CAC9C,aAAa,EAAE,MAAM,EACrB,YAAY,CAAC,EAAE,MAAM,GACpB,MAAM,CAQR"}
|
|
1
|
+
{"version":3,"file":"directDebitExchange.d.ts","sourceRoot":"","sources":["../../../../src/utils/directDebitExchange.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAE,uBAAuB,EAAC,MAAM,wBAAwB,CAAA;AAG3E,eAAO,MAAM,+BAA+B,sCACP,CAAA;AASrC,eAAO,MAAM,yBAAyB,aAGpC,CAAA;AAEF,eAAO,MAAM,2BAA2B,aAItC,CAAA;AAEF,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAEvD;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAE/D;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAElE;AAED,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC3B,MAAM,GAAG,IAAI,CAIf;AAED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC3B,MAAM,GAAG,IAAI,CAIf;AAED;;;;;;;;GAQG;AACH,wBAAgB,gCAAgC,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAgBtE;AAED,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC3B,MAAM,GAAG,IAAI,CAYf;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,CAAC,EAAE,uBAAuB,GAAG,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,GACxE,WAAW,GAAG,IAAI,CAgBpB;AAED,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,uBAAuB,GAAG,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,EACxE,WAAW,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,GACpD,MAAM,GAAG,IAAI,CASf;AAED,wBAAgB,gCAAgC,CAC9C,aAAa,EAAE,MAAM,EACrB,YAAY,CAAC,EAAE,MAAM,GACpB,MAAM,CAQR;AAED;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,UAAU,CAAA;AAE/C,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,MAAM,CAE3E;AAED,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAEzE;AASD;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC5B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,WAAW,CAgCb"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DIRECT_DEBIT_AWAITING_CODES = exports.DIRECT_DEBIT_FAILED_CODES = exports.PAY_DIRECT_DEBIT_EXCHANGE_EVENT = void 0;
|
|
3
|
+
exports.SIMULATED_MANDATE_PREFIX = exports.DIRECT_DEBIT_AWAITING_CODES = exports.DIRECT_DEBIT_FAILED_CODES = exports.PAY_DIRECT_DEBIT_EXCHANGE_EVENT = void 0;
|
|
4
4
|
exports.normalizeAction = normalizeAction;
|
|
5
5
|
exports.readPayloadString = readPayloadString;
|
|
6
6
|
exports.isLegacyDirectDebitAction = isLegacyDirectDebitAction;
|
|
@@ -11,6 +11,9 @@ exports.parseDirectDebitDisplayId = parseDirectDebitDisplayId;
|
|
|
11
11
|
exports.extractDirectDebit = extractDirectDebit;
|
|
12
12
|
exports.extractDirectDebitReference = extractDirectDebitReference;
|
|
13
13
|
exports.normalizeDirectDebitStatusAction = normalizeDirectDebitStatusAction;
|
|
14
|
+
exports.isSimulatedDirectDebitMandate = isSimulatedDirectDebitMandate;
|
|
15
|
+
exports.readSimulatedMandateSessionId = readSimulatedMandateSessionId;
|
|
16
|
+
exports.buildSimulatedDirectDebit = buildSimulatedDirectDebit;
|
|
14
17
|
const constants_1 = require("../providers/pay/core/constants");
|
|
15
18
|
exports.PAY_DIRECT_DEBIT_EXCHANGE_EVENT = "pay_payment.direct_debit_exchange";
|
|
16
19
|
const LEGACY_DIRECT_DEBIT_ACTIONS = new Set([
|
|
@@ -105,4 +108,58 @@ function normalizeDirectDebitStatusAction(payloadAction, statusAction) {
|
|
|
105
108
|
}
|
|
106
109
|
return payloadAction.replace(/^incasso/, "");
|
|
107
110
|
}
|
|
108
|
-
|
|
111
|
+
/**
|
|
112
|
+
* Mandates created while the provider runs in test mode are not known at
|
|
113
|
+
* Pay. (see PayDirectDebitService.updatePayment), their code is
|
|
114
|
+
* `TEST-<payment session id>`.
|
|
115
|
+
*/
|
|
116
|
+
exports.SIMULATED_MANDATE_PREFIX = "TEST-";
|
|
117
|
+
function isSimulatedDirectDebitMandate(code) {
|
|
118
|
+
return typeof code === "string" && code.startsWith(exports.SIMULATED_MANDATE_PREFIX);
|
|
119
|
+
}
|
|
120
|
+
function readSimulatedMandateSessionId(code) {
|
|
121
|
+
return readPayloadString(code.slice(exports.SIMULATED_MANDATE_PREFIX.length));
|
|
122
|
+
}
|
|
123
|
+
const LEGACY_ACTION_STATUS_CODES = {
|
|
124
|
+
incassopending: constants_1.PayDirectDebitStatusCode.PENDING,
|
|
125
|
+
incassosend: constants_1.PayDirectDebitStatusCode.SENT,
|
|
126
|
+
incassocollected: constants_1.PayDirectDebitStatusCode.COLLECTED,
|
|
127
|
+
incassostorno: constants_1.PayDirectDebitStatusCode.STORNO,
|
|
128
|
+
};
|
|
129
|
+
/**
|
|
130
|
+
* Builds the direct debit a simulated exchange describes, so a test server can
|
|
131
|
+
* walk through the collection flow (collected, storno, ...) without Pay. The
|
|
132
|
+
* status comes from `status.code` in the body when present, otherwise from the
|
|
133
|
+
* legacy action. Only used for simulated mandates while test mode is active.
|
|
134
|
+
*/
|
|
135
|
+
function buildSimulatedDirectDebit(payload, mandateId, reference) {
|
|
136
|
+
const action = normalizeAction(payload.action);
|
|
137
|
+
const bodyCode = payload.status?.code ?? payload.statusCode;
|
|
138
|
+
const code = bodyCode !== undefined && bodyCode !== null && bodyCode !== ""
|
|
139
|
+
? Number(bodyCode)
|
|
140
|
+
: LEGACY_ACTION_STATUS_CODES[action] ?? NaN;
|
|
141
|
+
return {
|
|
142
|
+
id: mandateId,
|
|
143
|
+
description: `Simulated direct debit exchange for #${reference}`,
|
|
144
|
+
url: "",
|
|
145
|
+
processDate: new Date().toISOString(),
|
|
146
|
+
orderId: "",
|
|
147
|
+
paymentSessionId: readSimulatedMandateSessionId(mandateId) ?? "",
|
|
148
|
+
type: "SINGLE",
|
|
149
|
+
amount: {
|
|
150
|
+
value: Number(payload.amount?.value ?? 0),
|
|
151
|
+
currency: String(payload.amount?.currency ?? ""),
|
|
152
|
+
},
|
|
153
|
+
status: {
|
|
154
|
+
code,
|
|
155
|
+
action: readPayloadString(payload.status?.action) ??
|
|
156
|
+
action.replace(/^incasso/, ""),
|
|
157
|
+
phase: "",
|
|
158
|
+
},
|
|
159
|
+
declined: payload.declined === true,
|
|
160
|
+
decline: null,
|
|
161
|
+
bankAccount: { iban: "", bic: "", owner: "" },
|
|
162
|
+
mandate: { code: mandateId, reference, description: "" },
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0RGViaXRFeGNoYW5nZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy91dGlscy9kaXJlY3REZWJpdEV4Y2hhbmdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQXdCQSwwQ0FFQztBQUVELDhDQUVDO0FBRUQsOERBRUM7QUFFRCxnRUFNQztBQUVELDREQU1DO0FBV0QsNEVBZ0JDO0FBRUQsOERBY0M7QUFNRCxnREFrQkM7QUFFRCxrRUFZQztBQUVELDRFQVdDO0FBU0Qsc0VBRUM7QUFFRCxzRUFFQztBQWVELDhEQW9DQztBQWpORCwrREFBd0U7QUFFM0QsUUFBQSwrQkFBK0IsR0FDMUMsbUNBQW1DLENBQUE7QUFFckMsTUFBTSwyQkFBMkIsR0FBRyxJQUFJLEdBQUcsQ0FBQztJQUMxQyxnQkFBZ0I7SUFDaEIsYUFBYTtJQUNiLGtCQUFrQjtJQUNsQixlQUFlO0NBQ2hCLENBQUMsQ0FBQTtBQUVXLFFBQUEseUJBQXlCLEdBQUcsSUFBSSxHQUFHLENBQVM7SUFDdkQsb0NBQXdCLENBQUMsTUFBTTtJQUMvQixvQ0FBd0IsQ0FBQyxNQUFNO0NBQ2hDLENBQUMsQ0FBQTtBQUVXLFFBQUEsMkJBQTJCLEdBQUcsSUFBSSxHQUFHLENBQVM7SUFDekQsb0NBQXdCLENBQUMsT0FBTztJQUNoQyxvQ0FBd0IsQ0FBQyxJQUFJO0lBQzdCLG9DQUF3QixDQUFDLFVBQVU7Q0FDcEMsQ0FBQyxDQUFBO0FBRUYsU0FBZ0IsZUFBZSxDQUFDLE1BQWU7SUFDN0MsT0FBTyxPQUFPLE1BQU0sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO0FBQ3RFLENBQUM7QUFFRCxTQUFnQixpQkFBaUIsQ0FBQyxLQUFjO0lBQzlDLE9BQU8sT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFD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
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { MedusaContainer } from "@medusajs/types";
|
|
2
|
+
import { ProviderOptions } from "../providers/pay/types";
|
|
3
|
+
/**
|
|
4
|
+
* The exchanges a test server can simulate for a direct debit that only exists
|
|
5
|
+
* locally (see README "Testing direct debits locally"). Each preset is the body
|
|
6
|
+
* Pay. would send, minus the mandate and order reference that are filled in
|
|
7
|
+
* from the order.
|
|
8
|
+
*/
|
|
9
|
+
export declare const SIMULATED_EXCHANGE_PRESETS: {
|
|
10
|
+
readonly pending: {
|
|
11
|
+
readonly label: "Pending";
|
|
12
|
+
readonly description: "The debit is scheduled, the collection stays awaiting.";
|
|
13
|
+
readonly payload: {
|
|
14
|
+
readonly action: "incassopending";
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
readonly sent: {
|
|
18
|
+
readonly label: "Sent to bank";
|
|
19
|
+
readonly description: "The debit was sent to the bank, the collection stays awaiting.";
|
|
20
|
+
readonly payload: {
|
|
21
|
+
readonly action: "incassosend";
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
readonly collected: {
|
|
25
|
+
readonly label: "Collected";
|
|
26
|
+
readonly description: "The bank collected the money: the payment is captured.";
|
|
27
|
+
readonly payload: {
|
|
28
|
+
readonly action: "incassocollected";
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
readonly storno: {
|
|
32
|
+
readonly label: "Storno";
|
|
33
|
+
readonly description: "The customer reversed the debit after collection: the payment is refunded in Medusa and the order becomes payable again.";
|
|
34
|
+
readonly payload: {
|
|
35
|
+
readonly action: "incassostorno";
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
readonly failed: {
|
|
39
|
+
readonly label: "Failed";
|
|
40
|
+
readonly description: "The bank rejected the debit: the collection fails.";
|
|
41
|
+
readonly payload: {
|
|
42
|
+
readonly action: "incassosend";
|
|
43
|
+
readonly status: {
|
|
44
|
+
readonly code: 106;
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
readonly declined: {
|
|
49
|
+
readonly label: "Declined";
|
|
50
|
+
readonly description: "The debit was declined: the collection fails.";
|
|
51
|
+
readonly payload: {
|
|
52
|
+
readonly action: "incassosend";
|
|
53
|
+
readonly declined: true;
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
};
|
|
57
|
+
export type SimulatedExchangeKey = keyof typeof SIMULATED_EXCHANGE_PRESETS;
|
|
58
|
+
export declare const isSimulatedExchangeKey: (value: unknown) => value is SimulatedExchangeKey;
|
|
59
|
+
export type DirectDebitSimulationState = {
|
|
60
|
+
/** Whether exchanges can be simulated for this order */
|
|
61
|
+
available: boolean;
|
|
62
|
+
/** Why not, when unavailable */
|
|
63
|
+
reason?: "sepa_testing_off" | "test_mode_off" | "no_direct_debit" | "not_simulated";
|
|
64
|
+
testMode: boolean;
|
|
65
|
+
/** The "SEPA testing" switch on the Pay. settings page */
|
|
66
|
+
sepaTesting: boolean;
|
|
67
|
+
orderId: string;
|
|
68
|
+
displayId: string;
|
|
69
|
+
mandateCode: string | null;
|
|
70
|
+
paymentCollectionId: string | null;
|
|
71
|
+
paymentCollectionStatus: string | null;
|
|
72
|
+
captured: boolean;
|
|
73
|
+
presets: Record<SimulatedExchangeKey, {
|
|
74
|
+
label: string;
|
|
75
|
+
description: string;
|
|
76
|
+
}>;
|
|
77
|
+
};
|
|
78
|
+
export declare const getPayProviderOptions: (container: MedusaContainer) => ProviderOptions | null;
|
|
79
|
+
/**
|
|
80
|
+
* The "SEPA testing" switch on the Pay. settings page lives in the store's
|
|
81
|
+
* metadata, so it is shared by every admin user and needs no migration. Off by
|
|
82
|
+
* default: it is meant for staging servers only.
|
|
83
|
+
*/
|
|
84
|
+
export declare const SEPA_TESTING_METADATA_KEY = "pay_sepa_testing";
|
|
85
|
+
export declare function isSepaTestingEnabled(container: MedusaContainer): Promise<boolean>;
|
|
86
|
+
export declare function setSepaTestingEnabled(container: MedusaContainer, enabled: boolean): Promise<boolean>;
|
|
87
|
+
export declare function getDirectDebitSimulationState(container: MedusaContainer, orderId: string): Promise<DirectDebitSimulationState | null>;
|
|
88
|
+
/**
|
|
89
|
+
* Builds the exchange body for a preset, as Pay. would send it for the order's
|
|
90
|
+
* simulated mandate.
|
|
91
|
+
*/
|
|
92
|
+
export declare function buildSimulatedExchangePayload(key: SimulatedExchangeKey, state: Pick<DirectDebitSimulationState, "mandateCode" | "displayId">): Record<string, unknown>;
|
|
93
|
+
//# sourceMappingURL=directDebitSimulation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"directDebitSimulation.d.ts","sourceRoot":"","sources":["../../../../src/utils/directDebitSimulation.ts"],"names":[],"mappings":"AAKA,OAAO,EAAsB,eAAe,EAAC,MAAM,iBAAiB,CAAA;AAGpE,OAAO,EAAsB,eAAe,EAAC,MAAM,wBAAwB,CAAA;AAG3E;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmC7B,CAAA;AAEV,MAAM,MAAM,oBAAoB,GAAG,MAAM,OAAO,0BAA0B,CAAA;AAE1E,eAAO,MAAM,sBAAsB,GACjC,OAAO,OAAO,KACb,KAAK,IAAI,oBAE6D,CAAA;AAEzE,MAAM,MAAM,0BAA0B,GAAG;IACvC,wDAAwD;IACxD,SAAS,EAAE,OAAO,CAAA;IAClB,gCAAgC;IAChC,MAAM,CAAC,EACH,kBAAkB,GAClB,eAAe,GACf,iBAAiB,GACjB,eAAe,CAAA;IACnB,QAAQ,EAAE,OAAO,CAAA;IACjB,0DAA0D;IAC1D,WAAW,EAAE,OAAO,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAA;IAClC,uBAAuB,EAAE,MAAM,GAAG,IAAI,CAAA;IACtC,QAAQ,EAAE,OAAO,CAAA;IACjB,OAAO,EAAE,MAAM,CACb,oBAAoB,EACpB;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAC,CACrC,CAAA;CACF,CAAA;AAED,eAAO,MAAM,qBAAqB,GAChC,WAAW,eAAe,KACzB,eAAe,GAAG,IASpB,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,qBAAqB,CAAA;AAc3D,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,eAAe,GACzB,OAAO,CAAC,OAAO,CAAC,CAIlB;AAED,wBAAsB,qBAAqB,CACzC,SAAS,EAAE,eAAe,EAC1B,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,OAAO,CAAC,CAgBlB;AAUD,wBAAsB,6BAA6B,CACjD,SAAS,EAAE,eAAe,EAC1B,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,0BAA0B,GAAG,IAAI,CAAC,CA6E5C;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CAC3C,GAAG,EAAE,oBAAoB,EACzB,KAAK,EAAE,IAAI,CAAC,0BAA0B,EAAE,aAAa,GAAG,WAAW,CAAC,GACnE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAMzB"}
|