@webbers/pay-payments-medusa 1.0.0
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 +90 -0
- package/.medusa/server/src/admin/index.js +229 -0
- package/.medusa/server/src/admin/index.mjs +228 -0
- package/.medusa/server/src/api/admin/pay/clear-cache/route.js +23 -0
- package/.medusa/server/src/api/admin/pay/payment-methods/route.js +36 -0
- package/.medusa/server/src/api/store/pay/payment-methods/route.js +36 -0
- package/.medusa/server/src/providers/pay/core/constants.js +52 -0
- package/.medusa/server/src/providers/pay/core/http-client.js +107 -0
- package/.medusa/server/src/providers/pay/core/pay-base.js +561 -0
- package/.medusa/server/src/providers/pay/core/pay-client.js +118 -0
- package/.medusa/server/src/providers/pay/index.js +22 -0
- package/.medusa/server/src/providers/pay/services/index.js +17 -0
- package/.medusa/server/src/providers/pay/services/pay-bancontact.js +21 -0
- package/.medusa/server/src/providers/pay/services/pay-creditcard.js +21 -0
- package/.medusa/server/src/providers/pay/services/pay-ideal.js +21 -0
- package/.medusa/server/src/providers/pay/services/pay-provider.js +23 -0
- package/.medusa/server/src/providers/pay/services/pay-softpos.js +20 -0
- package/.medusa/server/src/providers/pay/types/common.js +3 -0
- package/.medusa/server/src/providers/pay/types/index.js +28 -0
- package/.medusa/server/src/providers/pay/types/order.js +3 -0
- package/.medusa/server/src/providers/pay/types/transaction.js +3 -0
- package/.medusa/server/src/providers/pay/utils/getExpirationForPaymentMethod.js +16 -0
- package/.medusa/server/src/providers/pay/utils/getSortedPaymentMethods.js +20 -0
- package/.medusa/server/src/providers/pay/utils/paymentMethodMap.js +133 -0
- package/.medusa/server/src/workflows/hooks/order-created.js +96 -0
- package/README.md +221 -0
- package/package.json +90 -0
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PayClient = void 0;
|
|
4
|
+
const http_client_1 = require("./http-client");
|
|
5
|
+
const constants_1 = require("../core/constants");
|
|
6
|
+
const package_json_1 = require("../../../../package.json");
|
|
7
|
+
class PayClient {
|
|
8
|
+
constructor(options, logger) {
|
|
9
|
+
this.httpClient_ = new http_client_1.HttpClient({ options, logger });
|
|
10
|
+
this.serviceId_ = options.slCode;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Create a new order.
|
|
14
|
+
* @param data
|
|
15
|
+
* @param returnPath
|
|
16
|
+
*/
|
|
17
|
+
async createOrder(data) {
|
|
18
|
+
return await this.httpClient_.tguRequest({
|
|
19
|
+
endpoint: constants_1.PayApiPath.ORDER_CREATE,
|
|
20
|
+
data: {
|
|
21
|
+
...data,
|
|
22
|
+
serviceId: this.serviceId_,
|
|
23
|
+
stats: {
|
|
24
|
+
object: `${package_json_1.displayName}|version ${package_json_1.version}`,
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
async updateOrder(orderId, data) {
|
|
30
|
+
return await this.httpClient_.tguRequest({
|
|
31
|
+
endpoint: constants_1.PayApiPath.ORDER_UPDATE.replace("{id}", orderId),
|
|
32
|
+
data,
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
async getOrder(orderId) {
|
|
36
|
+
return await this.httpClient_.tguRequest({
|
|
37
|
+
endpoint: constants_1.PayApiPath.ORDER_STATUS.replace("{id}", orderId),
|
|
38
|
+
method: "GET",
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
async captureOrder(orderId) {
|
|
42
|
+
return await this.httpClient_.tguRequest({
|
|
43
|
+
endpoint: constants_1.PayApiPath.ORDER_CAPTURE.replace("{id}", orderId),
|
|
44
|
+
method: "PATCH",
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
async abortOrder(orderId) {
|
|
48
|
+
return await this.httpClient_.tguRequest({
|
|
49
|
+
endpoint: constants_1.PayApiPath.ORDER_ABORT.replace("{id}", orderId),
|
|
50
|
+
method: "PATCH",
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Get service location config.
|
|
55
|
+
*/
|
|
56
|
+
async getConfig() {
|
|
57
|
+
return await this.httpClient_.apiRequest({
|
|
58
|
+
endpoint: constants_1.PayApiPath.GET_CONFIG.replace("{id}", this.serviceId_),
|
|
59
|
+
method: "GET",
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Retrieve transaction status.
|
|
64
|
+
* @param orderId
|
|
65
|
+
*/
|
|
66
|
+
async getTransaction(orderId) {
|
|
67
|
+
return await this.httpClient_.apiRequest({
|
|
68
|
+
endpoint: constants_1.PayApiPath.GET_TRANSACTION.replace("{id}", orderId),
|
|
69
|
+
method: "GET",
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Refunds a captured payment, by ID. For a full refund, include an empty
|
|
74
|
+
* payload in the JSON request body. For a partial refund, include an amount
|
|
75
|
+
* object in the JSON request body.
|
|
76
|
+
* @param paymentId
|
|
77
|
+
* @param data
|
|
78
|
+
*/
|
|
79
|
+
async refundPayment(paymentId, data) {
|
|
80
|
+
return await this.httpClient_.apiRequest({
|
|
81
|
+
endpoint: constants_1.PayApiPath.TRANSACTION_REFUND.replace("{id}", paymentId),
|
|
82
|
+
data,
|
|
83
|
+
method: "PATCH",
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Create the one-off direct debit
|
|
88
|
+
* @param data
|
|
89
|
+
*/
|
|
90
|
+
async createDirectDebit(data) {
|
|
91
|
+
if (this.httpClient_.testMode) {
|
|
92
|
+
console.log("createDirectDebit", data);
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
return await this.httpClient_.restApiV3Request({
|
|
96
|
+
endpoint: constants_1.PayApiPath.DIRECT_DEBIT,
|
|
97
|
+
data: {
|
|
98
|
+
...data,
|
|
99
|
+
serviceId: this.serviceId_,
|
|
100
|
+
},
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Create the one-off direct debit
|
|
106
|
+
* @param data
|
|
107
|
+
*/
|
|
108
|
+
async getDirectDebitInfo(mandateId) {
|
|
109
|
+
return await this.httpClient_.restApiV3Request({
|
|
110
|
+
endpoint: constants_1.PayApiPath.DIRECT_DEBIT_INFO,
|
|
111
|
+
data: {
|
|
112
|
+
mandateId,
|
|
113
|
+
},
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
exports.PayClient = PayClient;
|
|
118
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5LWNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9wcm92aWRlcnMvcGF5L2NvcmUvcGF5LWNsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQ0FBd0M7QUFleEMsaURBQTRDO0FBQzVDLDJEQUE2RDtBQUc3RCxNQUFhLFNBQVM7SUFJcEIsWUFBWSxPQUF3QixFQUFFLE1BQWM7UUFDbEQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLHdCQUFVLENBQUMsRUFBQyxPQUFPLEVBQUUsTUFBTSxFQUFDLENBQUMsQ0FBQTtRQUNwRCxJQUFJLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsV0FBVyxDQUNmLElBQW9DO1FBRXBDLE9BQU8sTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQztZQUN2QyxRQUFRLEVBQUUsc0JBQVUsQ0FBQyxZQUFZO1lBQ2pDLElBQUksRUFBRTtnQkFDSixHQUFHLElBQUk7Z0JBQ1AsU0FBUyxFQUFFLElBQUksQ0FBQyxVQUFVO2dCQUMxQixLQUFLLEVBQUU7b0JBQ0wsTUFBTSxFQUFFLEdBQUcsMEJBQVcsWUFBWSxzQkFBTyxFQUFFO2lCQUM1QzthQUNGO1NBQ0YsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELEtBQUssQ0FBQyxXQUFXLENBQ2YsT0FBZSxFQUNmLElBQWlCO1FBRWpCLE9BQU8sTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQztZQUN2QyxRQUFRLEVBQUUsc0JBQVUsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUM7WUFDMUQsSUFBSTtTQUNMLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMsUUFBUSxDQUFDLE9BQWU7UUFDNUIsT0FBTyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMs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
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
7
|
+
const pay_bancontact_1 = __importDefault(require("./services/pay-bancontact"));
|
|
8
|
+
const pay_creditcard_1 = __importDefault(require("./services/pay-creditcard"));
|
|
9
|
+
const pay_ideal_1 = __importDefault(require("./services/pay-ideal"));
|
|
10
|
+
const pay_provider_1 = __importDefault(require("./services/pay-provider"));
|
|
11
|
+
const pay_softpos_1 = __importDefault(require("./services/pay-softpos"));
|
|
12
|
+
const services = [
|
|
13
|
+
pay_bancontact_1.default,
|
|
14
|
+
pay_creditcard_1.default,
|
|
15
|
+
pay_ideal_1.default,
|
|
16
|
+
pay_provider_1.default,
|
|
17
|
+
pay_softpos_1.default,
|
|
18
|
+
];
|
|
19
|
+
exports.default = (0, utils_1.ModuleProvider)(utils_1.Modules.PAYMENT, {
|
|
20
|
+
services,
|
|
21
|
+
});
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvcHJvdmlkZXJzL3BheS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHFEQUFpRTtBQUVqRSwrRUFBNEQ7QUFDNUQsK0VBQTREO0FBQzVELHFFQUFrRDtBQUNsRCwyRUFBd0Q7QUFDeEQseUVBQXNEO0FBRXRELE1BQU0sUUFBUSxHQUFHO0lBQ2Ysd0JBQW9CO0lBQ3BCLHdCQUFvQjtJQUNwQixtQkFBZTtJQUNmLHNCQUFrQjtJQUNsQixxQkFBaUI7Q0FDbEIsQ0FBQTtBQUVELGtCQUFlLElBQUEsc0JBQWMsRUFBQyxlQUFPLENBQUMsT0FBTyxFQUFFO0lBQzdDLFFBQVE7Q0FDVCxDQUFDLENBQUEifQ==
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.PaySoftposService = exports.PayProviderService = exports.PayIdealService = exports.PayCreditcardService = exports.PayBancontactService = void 0;
|
|
7
|
+
var pay_bancontact_1 = require("./pay-bancontact");
|
|
8
|
+
Object.defineProperty(exports, "PayBancontactService", { enumerable: true, get: function () { return __importDefault(pay_bancontact_1).default; } });
|
|
9
|
+
var pay_creditcard_1 = require("./pay-creditcard");
|
|
10
|
+
Object.defineProperty(exports, "PayCreditcardService", { enumerable: true, get: function () { return __importDefault(pay_creditcard_1).default; } });
|
|
11
|
+
var pay_ideal_1 = require("./pay-ideal");
|
|
12
|
+
Object.defineProperty(exports, "PayIdealService", { enumerable: true, get: function () { return __importDefault(pay_ideal_1).default; } });
|
|
13
|
+
var pay_provider_1 = require("./pay-provider");
|
|
14
|
+
Object.defineProperty(exports, "PayProviderService", { enumerable: true, get: function () { return __importDefault(pay_provider_1).default; } });
|
|
15
|
+
var pay_softpos_1 = require("./pay-softpos");
|
|
16
|
+
Object.defineProperty(exports, "PaySoftposService", { enumerable: true, get: function () { return __importDefault(pay_softpos_1).default; } });
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvcHJvdmlkZXJzL3BheS9zZXJ2aWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxtREFBZ0U7QUFBeEQsdUlBQUEsT0FBTyxPQUF3QjtBQUN2QyxtREFBZ0U7QUFBeEQsdUlBQUEsT0FBTyxPQUF3QjtBQUN2Qyx5Q0FBc0Q7QUFBOUMsNkhBQUEsT0FBTyxPQUFtQjtBQUNsQywrQ0FBNEQ7QUFBcEQsbUlBQUEsT0FBTyxPQUFzQjtBQUNyQyw2Q0FBMEQ7QUFBbEQsaUlBQUEsT0FBTyxPQUFxQiJ9
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const pay_base_1 = __importDefault(require("../core/pay-base"));
|
|
7
|
+
const types_1 = require("../types");
|
|
8
|
+
class PayBancontactService extends pay_base_1.default {
|
|
9
|
+
get paymentCreateOptions() {
|
|
10
|
+
return {
|
|
11
|
+
method_id: 436,
|
|
12
|
+
webhookUrl: this.options_.medusaUrl +
|
|
13
|
+
"/hooks/payment/" +
|
|
14
|
+
types_1.PaymentProviderKeys.BAN_CONTACT +
|
|
15
|
+
"_pay",
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
PayBancontactService.identifier = types_1.PaymentProviderKeys.BAN_CONTACT;
|
|
20
|
+
exports.default = PayBancontactService;
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5LWJhbmNvbnRhY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvcHJvdmlkZXJzL3BheS9zZXJ2aWNlcy9wYXktYmFuY29udGFjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGdFQUFzQztBQUN0QyxvQ0FBNEQ7QUFFNUQsTUFBTSxvQkFBcUIsU0FBUSxrQkFBTztJQUd4QyxJQUFJLG9CQUFvQjtRQUN0QixPQUFPO1lBQ0wsU0FBUyxFQUFFLEdBQUc7WUFDZCxVQUFVLEVBQ1IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTO2dCQUN2QixpQkFBaUI7Z0JBQ2pCLDJCQUFtQixDQUFDLFdBQVc7Z0JBQy9CLE1BQU07U0FDVCxDQUFBO0lBQ0gsQ0FBQzs7QUFYTSwrQkFBVSxHQUFHLDJCQUFtQixDQUFDLFdBQVcsQ0FBQTtBQWNyRCxrQkFBZSxvQkFBb0IsQ0FBQSJ9
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const pay_base_1 = __importDefault(require("../core/pay-base"));
|
|
7
|
+
const types_1 = require("../types");
|
|
8
|
+
class PayCreditcardService extends pay_base_1.default {
|
|
9
|
+
get paymentCreateOptions() {
|
|
10
|
+
return {
|
|
11
|
+
method_id: 706,
|
|
12
|
+
webhookUrl: this.options_.medusaUrl +
|
|
13
|
+
"/hooks/payment/" +
|
|
14
|
+
types_1.PaymentProviderKeys.CREDITCARD +
|
|
15
|
+
"_pay",
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
PayCreditcardService.identifier = types_1.PaymentProviderKeys.CREDITCARD;
|
|
20
|
+
exports.default = PayCreditcardService;
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5LWNyZWRpdGNhcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvcHJvdmlkZXJzL3BheS9zZXJ2aWNlcy9wYXktY3JlZGl0Y2FyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGdFQUFzQztBQUN0QyxvQ0FBNEQ7QUFFNUQsTUFBTSxvQkFBcUIsU0FBUSxrQkFBTztJQUd4QyxJQUFJLG9CQUFvQjtRQUN0QixPQUFPO1lBQ0wsU0FBUyxFQUFFLEdBQUc7WUFDZCxVQUFVLEVBQ1IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTO2dCQUN2QixpQkFBaUI7Z0JBQ2pCLDJCQUFtQixDQUFDLFVBQVU7Z0JBQzlCLE1BQU07U0FDVCxDQUFBO0lBQ0gsQ0FBQzs7QUFYTSwrQkFBVSxHQUFHLDJCQUFtQixDQUFDLFVBQVUsQ0FBQTtBQWNwRCxrQkFBZSxvQkFBb0IsQ0FBQSJ9
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const pay_base_1 = __importDefault(require("../core/pay-base"));
|
|
7
|
+
const types_1 = require("../types");
|
|
8
|
+
class PayIdealService extends pay_base_1.default {
|
|
9
|
+
get paymentCreateOptions() {
|
|
10
|
+
return {
|
|
11
|
+
method_id: 10,
|
|
12
|
+
webhookUrl: this.options_.medusaUrl +
|
|
13
|
+
"/hooks/payment/" +
|
|
14
|
+
types_1.PaymentProviderKeys.IDEAL +
|
|
15
|
+
"_pay",
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
PayIdealService.identifier = types_1.PaymentProviderKeys.IDEAL;
|
|
20
|
+
exports.default = PayIdealService;
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5LWlkZWFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3Byb3ZpZGVycy9wYXkvc2VydmljZXMvcGF5LWlkZWFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsZ0VBQXNDO0FBQ3RDLG9DQUE0RDtBQUU1RCxNQUFNLGVBQWdCLFNBQVEsa0JBQU87SUFHbkMsSUFBSSxvQkFBb0I7UUFDdEIsT0FBTztZQUNMLFNBQVMsRUFBRSxFQUFFO1lBQ2IsVUFBVSxFQUNSLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUztnQkFDdkIsaUJBQWlCO2dCQUNqQiwyQkFBbUIsQ0FBQyxLQUFLO2dCQUN6QixNQUFNO1NBQ1QsQ0FBQTtJQUNILENBQUM7O0FBWE0sMEJBQVUsR0FBRywyQkFBbUIsQ0FBQyxLQUFLLENBQUE7QUFjL0Msa0JBQWUsZUFBZSxDQUFBIn0=
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const pay_base_1 = __importDefault(require("../core/pay-base"));
|
|
7
|
+
const types_1 = require("../types");
|
|
8
|
+
class PayProviderService extends pay_base_1.default {
|
|
9
|
+
constructor(_, options) {
|
|
10
|
+
super(_, options);
|
|
11
|
+
}
|
|
12
|
+
get paymentCreateOptions() {
|
|
13
|
+
return {
|
|
14
|
+
webhookUrl: this.options_.medusaUrl +
|
|
15
|
+
"/hooks/payment/" +
|
|
16
|
+
types_1.PaymentProviderKeys.PAY_HOSTED_CHECKOUT +
|
|
17
|
+
"_pay",
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
PayProviderService.identifier = types_1.PaymentProviderKeys.PAY_HOSTED_CHECKOUT;
|
|
22
|
+
exports.default = PayProviderService;
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5LXByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3Byb3ZpZGVycy9wYXkvc2VydmljZXMvcGF5LXByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsZ0VBQXNDO0FBQ3RDLG9DQUE0RDtBQUU1RCxNQUFNLGtCQUFtQixTQUFRLGtCQUFPO0lBR3RDLFlBQVksQ0FBQyxFQUFFLE9BQU87UUFDcEIsS0FBSyxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQTtJQUNuQixDQUFDO0lBRUQsSUFBSSxvQkFBb0I7UUFDdEIsT0FBTztZQUNMLFVBQVUsRUFDUixJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVM7Z0JBQ3ZCLGlCQUFpQjtnQkFDakIsMkJBQW1CLENBQUMsbUJBQW1CO2dCQUN2QyxNQUFNO1NBQ1QsQ0FBQTtJQUNILENBQUM7O0FBZE0sNkJBQVUsR0FBRywyQkFBbUIsQ0FBQyxtQkFBbUIsQ0FBQTtBQWlCN0Qsa0JBQWUsa0JBQWtCLENBQUEifQ==
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const pay_base_1 = __importDefault(require("../core/pay-base"));
|
|
7
|
+
const types_1 = require("../types");
|
|
8
|
+
class PaySoftposService extends pay_base_1.default {
|
|
9
|
+
get paymentCreateOptions() {
|
|
10
|
+
return {
|
|
11
|
+
webhookUrl: this.options_.medusaUrl +
|
|
12
|
+
"/hooks/payment/" +
|
|
13
|
+
types_1.PaymentProviderKeys.SOFTPOS +
|
|
14
|
+
"_pay",
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
PaySoftposService.identifier = types_1.PaymentProviderKeys.SOFTPOS;
|
|
19
|
+
exports.default = PaySoftposService;
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5LXNvZnRwb3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvcHJvdmlkZXJzL3BheS9zZXJ2aWNlcy9wYXktc29mdHBvcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGdFQUFzQztBQUN0QyxvQ0FBNEQ7QUFFNUQsTUFBTSxpQkFBa0IsU0FBUSxrQkFBTztJQUdyQyxJQUFJLG9CQUFvQjtRQUN0QixPQUFPO1lBQ0wsVUFBVSxFQUNSLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUztnQkFDdkIsaUJBQWlCO2dCQUNqQiwyQkFBbUIsQ0FBQyxPQUFPO2dCQUMzQixNQUFNO1NBQ1QsQ0FBQTtJQUNILENBQUM7O0FBVk0sNEJBQVUsR0FBRywyQkFBbUIsQ0FBQyxPQUFPLENBQUE7QUFhakQsa0JBQWUsaUJBQWlCLENBQUEifQ==
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3Byb3ZpZGVycy9wYXkvdHlwZXMvY29tbW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.PaymentProviderKeys = void 0;
|
|
18
|
+
exports.PaymentProviderKeys = {
|
|
19
|
+
PAY_HOSTED_CHECKOUT: "pay-hosted-checkout",
|
|
20
|
+
BAN_CONTACT: "pay-bancontact",
|
|
21
|
+
CREDITCARD: "pay-creditcard-group",
|
|
22
|
+
IDEAL: "pay-ideal",
|
|
23
|
+
SOFTPOS: "pay-softpos",
|
|
24
|
+
};
|
|
25
|
+
__exportStar(require("./common"), exports);
|
|
26
|
+
__exportStar(require("./order"), exports);
|
|
27
|
+
__exportStar(require("./transaction"), exports);
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvcHJvdmlkZXJzL3BheS90eXBlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQXdCYSxRQUFBLG1CQUFtQixHQUFHO0lBQ2pDLG1CQUFtQixFQUFFLHFCQUFxQjtJQUMxQyxXQUFXLEVBQUUsZ0JBQWdCO0lBQzdCLFVBQVUsRUFBRSxzQkFBc0I7SUFDbEMsS0FBSyxFQUFFLFdBQVc7SUFDbEIsT0FBTyxFQUFFLGFBQWE7Q0FDdkIsQ0FBQTtBQVNELDJDQUF3QjtBQUN4QiwwQ0FBdUI7QUFDdkIsZ0RBQTZCIn0=
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvcHJvdmlkZXJzL3BheS90eXBlcy9vcmRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvcHJvdmlkZXJzL3BheS90eXBlcy90cmFuc2FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const paymentMethodMap_1 = require("./paymentMethodMap");
|
|
4
|
+
function getExpirationForPaymentMethod(paymentMethod) {
|
|
5
|
+
if (paymentMethodMap_1.regionalPaymentMethods[paymentMethod?.id]) {
|
|
6
|
+
return "+15 minutes";
|
|
7
|
+
}
|
|
8
|
+
if (paymentMethodMap_1.bnplPaymentMethods[paymentMethod?.id] &&
|
|
9
|
+
// Exclude SprayPay
|
|
10
|
+
paymentMethod.id !== 1987) {
|
|
11
|
+
return "+30 minutes";
|
|
12
|
+
}
|
|
13
|
+
return "+4 hours";
|
|
14
|
+
}
|
|
15
|
+
exports.default = getExpirationForPaymentMethod;
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0RXhwaXJhdGlvbkZvclBheW1lbnRNZXRob2QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvcHJvdmlkZXJzL3BheS91dGlscy9nZXRFeHBpcmF0aW9uRm9yUGF5bWVudE1ldGhvZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLHlEQUE2RTtBQUU3RSxTQUFTLDZCQUE2QixDQUFDLGFBQStCO0lBQ3BFLElBQUkseUNBQXNCLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDOUMsT0FBTyxhQUFhLENBQUE7SUFDdEIsQ0FBQztJQUVELElBQ0UscUNBQWtCLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQztRQUNyQyxtQkFBbUI7UUFDbkIsYUFBYSxDQUFDLEVBQUUsS0FBSyxJQUFJLEVBQ3pCLENBQUM7UUFDRCxPQUFPLGFBQWEsQ0FBQTtJQUN0QixDQUFDO0lBRUQsT0FBTyxVQUFVLENBQUE7QUFDbkIsQ0FBQztBQUVELGtCQUFlLDZCQUE2QixDQUFBIn0=
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
function getSortedPaymentMethods(data) {
|
|
4
|
+
const { checkoutOptions, checkoutSequence } = data;
|
|
5
|
+
const { primary } = checkoutSequence.default;
|
|
6
|
+
// Create a map of tag -> checkoutOption for quick lookup
|
|
7
|
+
const optionsMap = new Map();
|
|
8
|
+
checkoutOptions.forEach((option) => optionsMap.set(option.tag, option));
|
|
9
|
+
// Flatten paymentMethods in the order of `primary`
|
|
10
|
+
const sortedPaymentMethods = [];
|
|
11
|
+
for (const tag of primary) {
|
|
12
|
+
const option = optionsMap.get(tag);
|
|
13
|
+
if (option && option.paymentMethods) {
|
|
14
|
+
sortedPaymentMethods.push(...option.paymentMethods);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
return sortedPaymentMethods;
|
|
18
|
+
}
|
|
19
|
+
exports.default = getSortedPaymentMethods;
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0U29ydGVkUGF5bWVudE1ldGhvZHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvcHJvdmlkZXJzL3BheS91dGlscy9nZXRTb3J0ZWRQYXltZW50TWV0aG9kcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBLFNBQVMsdUJBQXVCLENBQzlCLElBR0M7SUFFRCxNQUFNLEVBQUMsZUFBZSxFQUFFLGdCQUFnQixFQUFDLEdBQUcsSUFBSSxDQUFBO0lBQ2hELE1BQU0sRUFBQyxPQUFPLEVBQUMsR0FBRyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUE7SUFFMUMseURBQXlEO0lBQ3pELE1BQU0sVUFBVSxHQUFHLElBQUksR0FBRyxFQUE2QixDQUFBO0lBQ3ZELGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFBO0lBRXZFLG1EQUFtRDtJQUNuRCxNQUFNLG9CQUFvQixHQUF3QyxFQUFFLENBQUE7SUFFcEUsS0FBSyxNQUFNLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUMxQixNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQ2xDLElBQUksTUFBTSxJQUFJLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNwQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUE7UUFDckQsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLG9CQUFvQixDQUFBO0FBQzdCLENBQUM7QUFFRCxrQkFBZSx1QkFBdUIsQ0FBQSJ9
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* All available payment methods for Pay.
|
|
4
|
+
* See: https://developer.pay.nl/docs/payment-option-ids-subids
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.subIdsIdealBanks = exports.paymentMethodMap = exports.alternativePaymentMethods = exports.bnplPaymentMethods = exports.inPersonPaymentMethods = exports.cnpPaymentMethods = exports.regionalPaymentMethods = void 0;
|
|
8
|
+
/**
|
|
9
|
+
* Country or region specific payment methods
|
|
10
|
+
*/
|
|
11
|
+
exports.regionalPaymentMethods = {
|
|
12
|
+
10: "iDEAL", // For NL. Only EUR. See below for SubID's
|
|
13
|
+
436: "Bancontact", // For BE. Only EUR
|
|
14
|
+
2970: "Pay By Bank", // Pay By Bank, Based on PSD2 Payment Initiation Servies
|
|
15
|
+
559: "SOFORT Banking", // E-commerce. For DE, AT, CH, PL, BE and ES. Only EUR.
|
|
16
|
+
577: "SOFORT Banking", // Digital Services. For DE, AT, CH, PL, BE and ES. Only EUR.
|
|
17
|
+
595: "SOFORT Banking", // High Risk. For DE, AT, CH, PL, BE and ES. Only EUR.
|
|
18
|
+
694: "Giropay", // For DE. Not all local banks support Giropay. (Depricated)
|
|
19
|
+
1978: "WeChat Pay e-commerce", // For CN.
|
|
20
|
+
2074: "WeChat Quickpay", // For CN.
|
|
21
|
+
2062: "EPS Überweisung", // For AT. Only EUR.
|
|
22
|
+
2080: "Alipay", // For CN.
|
|
23
|
+
2151: "Przelewy24", // For PL. Only PLN.
|
|
24
|
+
2271: "Multibanco", // For PT. Only EUR.
|
|
25
|
+
2379: "Payconiq", // For BE and LU. Only EUR.
|
|
26
|
+
2718: "Trustly", // For SE, FI, DE, NL, UK, EE, LV, LT, DK, PL, NO, ES, CZ, BE, AT and SK. Local currencies.
|
|
27
|
+
2856: "Blik", // For PL.
|
|
28
|
+
3558: "MobilePay", // For DK & FI
|
|
29
|
+
2907: "AliPay PLUS", // For CN.
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Card Not Present payments
|
|
33
|
+
*/
|
|
34
|
+
exports.cnpPaymentMethods = {
|
|
35
|
+
706: "Visa / Mastercard",
|
|
36
|
+
709: "Visa / Mastercard", // High risk
|
|
37
|
+
3141: "Visa",
|
|
38
|
+
3138: "Mastercard",
|
|
39
|
+
707: "PostePay",
|
|
40
|
+
708: "PostePay", // High risk
|
|
41
|
+
2268: "Carte Bancaire",
|
|
42
|
+
712: "Maestro",
|
|
43
|
+
715: "Maestro", // High risk
|
|
44
|
+
1705: "American Express",
|
|
45
|
+
1939: "Dankort",
|
|
46
|
+
1945: "Nexi",
|
|
47
|
+
2277: "Apple Pay",
|
|
48
|
+
2558: "Google Pay",
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* In-Person Payments (Card Present)
|
|
52
|
+
*/
|
|
53
|
+
exports.inPersonPaymentMethods = {
|
|
54
|
+
1013: "Bancontact",
|
|
55
|
+
1002: "Visa Electron",
|
|
56
|
+
1003: "V Pay",
|
|
57
|
+
1009: "Maestro",
|
|
58
|
+
1052: "Visa Debit",
|
|
59
|
+
1053: "Mastercard Debit",
|
|
60
|
+
2002: "Visa",
|
|
61
|
+
2003: "Mastercard",
|
|
62
|
+
2004: "American Express",
|
|
63
|
+
2005: "Diners/Discover",
|
|
64
|
+
2007: "JCB",
|
|
65
|
+
2008: "UnionPay",
|
|
66
|
+
2009: "Monizze",
|
|
67
|
+
2012: "CMFC",
|
|
68
|
+
2014: "Basic Card",
|
|
69
|
+
3003: "Sodexo Card",
|
|
70
|
+
3004: "Edenred",
|
|
71
|
+
3013: "CCV Card",
|
|
72
|
+
3014: "Travelcard",
|
|
73
|
+
3020: "Company cards",
|
|
74
|
+
3021: "Wordline WL",
|
|
75
|
+
3100: "Equens WL",
|
|
76
|
+
3200: "Yourgift",
|
|
77
|
+
3300: "Giftcard",
|
|
78
|
+
};
|
|
79
|
+
/**
|
|
80
|
+
* BNPL & Installments
|
|
81
|
+
*/
|
|
82
|
+
exports.bnplPaymentMethods = {
|
|
83
|
+
2561: "Riverty",
|
|
84
|
+
1672: "Billink", // For NL.
|
|
85
|
+
1717: "Klarna", // For NL, BE, DE, SE, NO, FI, DK, AT, UK & US
|
|
86
|
+
1813: "iDEAL In3", // For NL. Only EUR.
|
|
87
|
+
3192: "In3 Business", // For NL businesses
|
|
88
|
+
1987: "SprayPay", // For NL. Only EUR.
|
|
89
|
+
2107: "CreditClick",
|
|
90
|
+
2931: "NOTYD", // For NL businesses
|
|
91
|
+
3552: "AlmaPAY", // For NL, BE, DE, AT, LU, FR, ES, IT, PT & IE
|
|
92
|
+
};
|
|
93
|
+
/**
|
|
94
|
+
* Alternative payment methods
|
|
95
|
+
*/
|
|
96
|
+
exports.alternativePaymentMethods = {
|
|
97
|
+
136: "Bank Transfer (SCT)", // Only SEPA countries.
|
|
98
|
+
137: "SEPA Direct Debit", // Only SEPA countries.
|
|
99
|
+
138: "PayPal", // Not collecting funds
|
|
100
|
+
1903: "Amazon Pay", //
|
|
101
|
+
553: "Paysafecard", // For NL, BE, DE, AR, AU, BG, CA, CY, DK, FI, FR, GR, HU, EI, IT, KW, HR, LV, LT, LU, MT, MX, NO, AT, PE, PL, PT, RO, SL, SK, ES, CZ, TR, UR, US, UK, SE, CH.
|
|
102
|
+
1600: "Telephone payments", // For NL. Only EUR.
|
|
103
|
+
};
|
|
104
|
+
/**
|
|
105
|
+
* Combined all payment methods
|
|
106
|
+
*/
|
|
107
|
+
exports.paymentMethodMap = {
|
|
108
|
+
...exports.regionalPaymentMethods,
|
|
109
|
+
...exports.cnpPaymentMethods,
|
|
110
|
+
...exports.inPersonPaymentMethods,
|
|
111
|
+
...exports.bnplPaymentMethods,
|
|
112
|
+
...exports.alternativePaymentMethods,
|
|
113
|
+
};
|
|
114
|
+
/**
|
|
115
|
+
* SubID's of iDEAL banks
|
|
116
|
+
*/
|
|
117
|
+
exports.subIdsIdealBanks = {
|
|
118
|
+
1: "ABN AMRO", // ABNANL2A
|
|
119
|
+
2: "Rabobank", // RABONL2U
|
|
120
|
+
4: "ING Bank", // INGBNL2A
|
|
121
|
+
8: "ASN Bank", // ASNBNL21
|
|
122
|
+
5: "SNS Bank", // SNSBNL2A
|
|
123
|
+
9: "RegioBank", // RBRBNL21
|
|
124
|
+
10: "Triodos Bank", // TRIONL2U
|
|
125
|
+
11: "Van Lanschot Bankiers", // FVLBNL22
|
|
126
|
+
12: "Knab", // KNABNL2H
|
|
127
|
+
5080: "bunq", // BUNQNL2A
|
|
128
|
+
5084: "Revolut", // REVONL2A
|
|
129
|
+
23355: "N26", // NTSBDEB1
|
|
130
|
+
23358: "yoursafe", // BITSNL2A
|
|
131
|
+
23361: "Nationale Nederlanden", // NNBANL2G
|
|
132
|
+
};
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudE1ldGhvZE1hcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9wcm92aWRlcnMvcGF5L3V0aWxzL3BheW1lbnRNZXRob2RNYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7R0FHRzs7O0FBRUg7O0dBRUc7QUFDVSxRQUFBLHNCQUFzQixHQUEyQjtJQUM1RCxFQUFFLEVBQUUsT0FBTyxFQUFFLDBDQUEwQztJQUN2RCxHQUFHLEVBQUUsWUFBWSxFQUFFLG1CQUFtQjtJQUN0QyxJQUFJLEVBQUUsYUFBYSxFQUFFLHdEQUF3RDtJQUM3RSxHQUFHLEVBQUUsZ0JBQWdCLEVBQUUsdURBQXVEO0lBQzlFLEdBQUcsRUFBRSxnQkFBZ0IsRUFBRSw2REFBNkQ7SUFDcEYsR0FBRyxFQUFFLGdCQUFnQixFQUFFLHNEQUFzRDtJQUM3RSxHQUFHLEVBQUUsU0FBUyxFQUFFLDREQUE0RDtJQUM1RSxJQUFJLEVBQUUsdUJBQXVCLEVBQUUsVUFBVTtJQUN6QyxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsVUFBVTtJQUNuQyxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsb0JBQW9CO0lBQzdDLElBQUksRUFBRSxRQUFRLEVBQUUsVUFBVTtJQUMxQixJQUFJLEVBQUUsWUFBWSxFQUFFLG9CQUFvQjtJQUN4QyxJQUFJLEVBQUUsWUFBWSxFQUFFLG9CQUFvQjtJQUN4QyxJQUFJLEVBQUUsVUFBVSxFQUFFLDJCQUEyQjtJQUM3QyxJQUFJLEVBQUUsU0FBUyxFQUFFLDJGQUEyRjtJQUM1RyxJQUFJLEVBQUUsTUFBTSxFQUFFLFVBQVU7SUFDeEIsSUFBSSxFQUFFLFdBQVcsRUFBRSxjQUFjO0lBQ2pDLElBQUksRUFBRSxhQUFhLEVBQUUsVUFBVTtDQUNoQyxDQUFBO0FBRUQ7O0dBRUc7QUFDVSxRQUFBLGlCQUFpQixHQUEyQjtJQUN2RCxHQUFHLEVBQUUsbUJBQW1CO0lBQ3hCLEdBQUcsRUFBRSxtQkFBbUIsRUFBRSxZQUFZ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
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
7
|
+
const core_flows_1 = require("@medusajs/medusa/core-flows");
|
|
8
|
+
const pay_provider_1 = __importDefault(require("../../providers/pay/services/pay-provider"));
|
|
9
|
+
/**
|
|
10
|
+
* Pay. needs order information to validate and/or verify with after pay payment
|
|
11
|
+
* solutions. Therefore, Medusa payment sessions are ignored, but then we need to
|
|
12
|
+
* create the Pay. order payment here in the order created flow.
|
|
13
|
+
*/
|
|
14
|
+
// @ts-ignore
|
|
15
|
+
core_flows_1.completeCartWorkflow.hooks.orderCreated(async ({ order_id, cart_id }, { container }) => {
|
|
16
|
+
const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
|
|
17
|
+
const paymentModuleService = container.resolve(utils_1.Modules.PAYMENT);
|
|
18
|
+
const configModule = container.resolve(utils_1.ContainerRegistrationKeys.CONFIG_MODULE);
|
|
19
|
+
const payProviderOptions = configModule.modules
|
|
20
|
+
.payment.options.providers.find((p) => p.id === "pay")
|
|
21
|
+
.options;
|
|
22
|
+
const { data: [order], } = await query.graph({
|
|
23
|
+
entity: "order",
|
|
24
|
+
fields: [
|
|
25
|
+
"id",
|
|
26
|
+
"display_id",
|
|
27
|
+
"total",
|
|
28
|
+
"currency_code",
|
|
29
|
+
"subtotal",
|
|
30
|
+
"tax_total",
|
|
31
|
+
"discount_total",
|
|
32
|
+
"discount_subtotal",
|
|
33
|
+
"discount_tax_total",
|
|
34
|
+
"gift_card_total",
|
|
35
|
+
"gift_card_tax_total",
|
|
36
|
+
"shipping_total",
|
|
37
|
+
"shipping_subtotal",
|
|
38
|
+
"shipping_tax_total",
|
|
39
|
+
"original_total",
|
|
40
|
+
"original_subtotal",
|
|
41
|
+
"original_tax_total",
|
|
42
|
+
"item_total",
|
|
43
|
+
"item_subtotal",
|
|
44
|
+
"item_tax_total",
|
|
45
|
+
"original_item_total",
|
|
46
|
+
"original_item_subtotal",
|
|
47
|
+
"original_item_tax_total",
|
|
48
|
+
"items.*",
|
|
49
|
+
"customer.*",
|
|
50
|
+
"shipping_address.*",
|
|
51
|
+
"billing_address.*",
|
|
52
|
+
"sales_channel.*",
|
|
53
|
+
"payment_collections.*",
|
|
54
|
+
"payment_collections.payment_sessions.*",
|
|
55
|
+
],
|
|
56
|
+
filters: { id: order_id },
|
|
57
|
+
}, {
|
|
58
|
+
throwIfKeyNotFound: true,
|
|
59
|
+
});
|
|
60
|
+
// Check if there is a Pay. payment pending, if so update payment status to
|
|
61
|
+
// pending and update the Pay. order information
|
|
62
|
+
let payPaymentSession;
|
|
63
|
+
for (const pc of order.payment_collections ?? []) {
|
|
64
|
+
if (!pc?.payment_sessions)
|
|
65
|
+
continue;
|
|
66
|
+
const paymentSession = pc.payment_sessions.find((p) => p.provider_id.startsWith("pp_pay"));
|
|
67
|
+
if (paymentSession) {
|
|
68
|
+
payPaymentSession = paymentSession;
|
|
69
|
+
break;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
if (!!payPaymentSession) {
|
|
73
|
+
await paymentModuleService.updatePaymentCollections(payPaymentSession.payment_collection_id, {
|
|
74
|
+
status: utils_1.PaymentCollectionStatus.NOT_PAID,
|
|
75
|
+
});
|
|
76
|
+
const payProviderService = new pay_provider_1.default(container, payProviderOptions);
|
|
77
|
+
const updatedPaymentSession = await paymentModuleService.updatePaymentSession({
|
|
78
|
+
id: payPaymentSession.id,
|
|
79
|
+
data: {
|
|
80
|
+
...(payPaymentSession.data ?? {}),
|
|
81
|
+
payload: payProviderService.createPayOrderPayload(order, payPaymentSession.data?.session_id, payPaymentSession.data
|
|
82
|
+
?.paymentMethodInput),
|
|
83
|
+
},
|
|
84
|
+
currency_code: payPaymentSession.currency_code,
|
|
85
|
+
amount: payPaymentSession.amount,
|
|
86
|
+
});
|
|
87
|
+
if (updatedPaymentSession.payment?.id) {
|
|
88
|
+
await paymentModuleService.updatePayment({
|
|
89
|
+
id: updatedPaymentSession.payment.id,
|
|
90
|
+
// @ts-ignore
|
|
91
|
+
data: updatedPaymentSession.data,
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItY3JlYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvaG9va3Mvb3JkZXItY3JlYXRlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHFEQUlrQztBQUNsQyw0REFBZ0U7QUFTaEUsNkZBQTBFO0FBVzFFOzs7O0dBSUc7QUFDSCxhQUFhO0FBQ2IsaUNBQW9CLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FDckMsS0FBSyxFQUFFLEVBQUMsUUFBUSxFQUFFLE9BQU8sRUFBQyxFQUFFLEVBQUMsU0FBUyxFQUErQixFQUFFLEVBQUU7SUFDdkUsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxpQ0FBeUIsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUNoRSxNQUFNLG9CQUFvQixHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQzVDLGVBQU8sQ0FBQyxPQUFPLENBQ2hCLENBQUE7SUFDRCxNQUFNLFlBQVksR0FBRyxTQUFTLENBQUMsT0FBTyxDQUNwQyxpQ0FBeUIsQ0FBQyxhQUFhLENBQ3hDLENBQUE7SUFFRCxNQUFNLGtCQUFrQixHQUFJLFlBQVksQ0FBQyxPQUFRO1NBQzlDLE9BQWdCLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssS0FBSyxDQUFDO1NBQ2hFLE9BQTBCLENBQUE7SUFFN0IsTUFBTSxFQUNKLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUNkLEdBQStCLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FDL0M7UUFDRSxNQUFNLEVBQUUsT0FBTztRQUNmLE1BQU0sRUFBRTtZQUNOLElBQUk7WUFDSixZQUFZO1lBQ1osT0FBTztZQUNQLGVBQWU7WUFDZixVQUFVO1lBQ1YsV0FBVztZQUNYLGdCQUFnQjtZQUNoQixtQkFBbUI7WUFDbkIsb0JBQW9CO1lBQ3BCLGlCQUFp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
|