@enomshop/paystack 1.0.2 → 1.0.4
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/src/api/store/orders/[id]/paystack-payment/route.js +2 -2
- package/.medusa/server/src/index.js +1 -9
- package/.medusa/server/src/jobs/sync-paystack-payments.js +2 -2
- package/.medusa/server/src/providers/paystack/index.js +11 -0
- package/README.md +100 -25
- package/package.json +1 -1
|
@@ -32,7 +32,7 @@ async function POST(req, res) {
|
|
|
32
32
|
}
|
|
33
33
|
// 4. Create a new payment session for the partial amount
|
|
34
34
|
const paymentSession = await paymentModule.createPaymentSession(paymentCollection.id, {
|
|
35
|
-
provider_id: "
|
|
35
|
+
provider_id: "pp_paystack",
|
|
36
36
|
amount: amount,
|
|
37
37
|
currency_code: order.currency_code,
|
|
38
38
|
data: {
|
|
@@ -52,4 +52,4 @@ async function POST(req, res) {
|
|
|
52
52
|
res.status(500).json({ message: error.message });
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL29yZGVycy9baWRdL3BheXN0YWNrLXBheW1lbnQvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFHQSxvQkE4REM7QUFoRUQscURBQW9EO0FBRTdDLEtBQUssVUFBVSxJQUFJLENBQUMsR0FBa0IsRUFBRSxHQUFtQjtJQUNoRSxNQUFNLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUM7SUFDcEMsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxHQUFHLEdBQUcsQ0FBQyxJQUtyRCxDQUFDO0lBRUYsTUFBTSxXQUFXLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsZUFBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JELE1BQU0sYUFBYSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGVBQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUV6RCxJQUFJLENBQUM7UUFDSCxvREFBb0Q7UUFDcEQsTUFBTSxLQUFLLEdBQUcsTUFBTSxXQUFXLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRTtZQUN0RCxTQUFTLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSw4QkFBOEIsQ0FBQztTQUNuRSxDQUFDLENBQUM7UUFFSCxpRUFBaUU7UUFDakUsTUFBTSxhQUFhLEdBQUcsS0FBSyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFFM0MsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ25CLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsNERBQTRELEVBQUUsQ0FBQyxDQUFDO1FBQ3pHLENBQUM7UUFFRCxNQUFNLGlCQUFpQixHQUFJLEtBQWEsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xFLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3ZCLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsNENBQTRDLEVBQUUsQ0FBQyxDQUFDO1FBQ3pGLENBQUM7UUFFRCxxQ0FBcUM7UUFDckMsTUFBTSxRQUFRLEdBQUcsaUJBQWlCLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQztRQUNsRCxNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDcEcsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLGNBQWMsQ0FBQztRQUU5RCxJQUFJLE1BQU0sR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO1lBQzlCLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7Z0JBQzFCLE9BQU8sRUFBRSwwREFBMEQsZ0JBQWdCLGdCQUFnQixNQUFNLEVBQUU7YUFDNUcsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELHlEQUF5RDtRQUN6RCxNQUFNLGNBQWMsR0FBRyxNQUFNLGFBQWEsQ0FBQyxvQkFBb0IsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEVBQUU7WUFDcEYsV0FBVyxFQUFFLGFBQWE7WUFDMUIsTUFBTSxFQUFFLE1BQU07WUFDZCxhQUFhLEVBQUUsS0FBSyxDQUFDLGFBQWE7WUFDbEMsSUFBSSxFQUFFO2dCQUNKLEtBQUssRUFBRSxhQUFhLEVBQUUsd0NBQXdDO2dCQUM5RCxRQUFRLEVBQUUsS0FBSyxDQUFDLEVBQUU7Z0JBQ2xCLFVBQVUsRUFBRSxJQUFJO2dCQUNoQixZQUFZO2dCQUNaLEdBQUcsUUFBUTthQUNaO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDbkIsT0FBTyxFQUFFLHNDQUFzQztZQUMvQyxlQUFlLEVBQUUsY0FBYztTQUNoQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQUMsT0FBTyxLQUFVLEVBQUUsQ0FBQztRQUNwQixHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUNuRCxDQUFDO0FBQ0gsQ0FBQyJ9
|
|
@@ -1,11 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
|
|
7
|
-
const paystack_payment_processor_1 = __importDefault(require("./services/paystack-payment-processor"));
|
|
8
|
-
exports.default = (0, utils_1.ModuleProvider)(utils_1.Modules.PAYMENT, {
|
|
9
|
-
services: [paystack_payment_processor_1.default],
|
|
10
|
-
});
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxxREFBb0U7QUFFcEUsdUdBQTZFO0FBRTdFLGtCQUFlLElBQUEsc0JBQWMsRUFBQyxlQUFPLENBQUMsT0FBTyxFQUFFO0lBQzdDLFFBQVEsRUFBRSxDQUFDLG9DQUF3QixDQUFDO0NBQ3JDLENBQUMsQ0FBQyJ9
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
|
|
@@ -16,7 +16,7 @@ async function syncPaystackPayments(container) {
|
|
|
16
16
|
try {
|
|
17
17
|
// @ts-ignore
|
|
18
18
|
const payments = await paymentModuleService.listPayments({
|
|
19
|
-
id: "
|
|
19
|
+
id: "pp_paystack",
|
|
20
20
|
});
|
|
21
21
|
// 2. Filter for pending payments that are OLDER than 15 minutes
|
|
22
22
|
// This prevents race conditions with incoming webhooks
|
|
@@ -67,4 +67,4 @@ exports.config = {
|
|
|
67
67
|
name: "sync-paystack-payments",
|
|
68
68
|
schedule: "*/15 * * * *", // Runs every 15 minutes
|
|
69
69
|
};
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luYy1wYXlzdGFjay1wYXltZW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9qb2JzL3N5bmMtcGF5c3RhY2stcGF5bWVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBT0EsdUNBaUVDO0FBdkVELHFEQUFvRDtBQUNwRCwrREFBdUM7QUFFdkMsaURBQWlEO0FBQ2pELE1BQU0sS0FBSyxHQUFHLENBQUMsRUFBVSxFQUFFLEVBQUUsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBRWpFLEtBQUssVUFBVSxvQkFBb0IsQ0FBQyxTQUEwQjtJQUMzRSxNQUFNLG9CQUFvQixHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsZUFBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hFLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFM0MsTUFBTSxDQUFDLElBQUksQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO0lBRWpELElBQUksQ0FBQztRQUNMLGFBQWE7UUFDYixNQUFNLFFBQVEsR0FBRyxNQUFNLG9CQUFvQixDQUFDLFlBQVksQ0FBQztZQUN2RCxFQUFFLEVBQUUsYUFBYTtTQUNsQixDQUFDLENBQUM7UUFFRCxnRUFBZ0U7UUFDaEUsdURBQXVEO1FBQ3ZELE1BQU0saUJBQWlCLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFFaEUsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FDckMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUNKLENBQUMsQ0FBQyxDQUFDLFdBQVc7WUFDZCxDQUFDLENBQUMsQ0FBQyxXQUFXO1lBQ2QsQ0FBQyxDQUFDLFVBQVUsSUFBSSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsVUFBaUIsQ0FBQyxHQUFHLGlCQUFpQixDQUNwRSxDQUFDO1FBRUYsSUFBSSxlQUFlLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2pDLE1BQU0sQ0FBQyxJQUFJLENBQUMsMkNBQTJDLENBQUMsQ0FBQztZQUN6RCxPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxlQUFlLENBQUMsTUFBTSw0QkFBNEIsQ0FBQyxDQUFDO1FBRXpFLDZCQUE2QjtRQUM3QixNQUFNLFFBQVEsR0FBRyxJQUFJLGtCQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtQkFBNkIsQ0FBQyxDQUFDO1FBRXpFLEtBQUssTUFBTSxPQUFPLElBQUksZUFBZSxFQUFFLENBQUM7WUFDdEMsSUFBSSxDQUFDO2dCQUNILE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxJQUFJLEVBQUUsYUFBdUIsQ0FBQztnQkFDcEQsSUFBSSxDQUFDLEtBQUs7b0JBQUUsU0FBUztnQkFFckIsNkNBQTZDO2dCQUM3QyxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxHQUFHLE1BQU0sUUFBUSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBRWxFLElBQUksTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssU0FBUyxFQUFFLENBQUM7b0JBQ3hDLE1BQU0sQ0FBQyxJQUFJLENBQUMscUJBQXFCLE9BQU8sQ0FBQyxFQUFFLHFCQUFxQixDQUFDLENBQUM7b0JBRWxFLG1DQUFtQztvQkFDbkMsTUFBTSxvQkFBb0IsQ0FBQyxjQUFjLENBQUM7d0JBQ3hDLFVBQVUsRUFBRSxPQUFPLENBQUMsRUFBRTt3QkFDdEIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNO3FCQUN2QixDQUFDLENBQUM7Z0JBQ0wsQ0FBQztxQkFBTSxJQUFJLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssUUFBUSxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssV0FBVyxDQUFDLEVBQUUsQ0FBQztvQkFDL0UsTUFBTSxDQUFDLElBQUksQ0FBQyxzQ0FBc0MsT0FBTyxDQUFDLEVBQUUscUJBQXFCLENBQUMsQ0FBQztvQkFDbkYsMEVBQTBFO29CQUMxRSx3REFBd0Q7Z0JBQzFELENBQUM7Z0JBRUQsNEVBQTRFO2dCQUM1RSxNQUFNLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUVuQixDQUFDO1lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztnQkFDZixNQUFNLENBQUMsS0FBSyxDQUFDLGtDQUFrQyxPQUFPLENBQUMsRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDdkUsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLE1BQU0sQ0FBQyxLQUFLLENBQUMsMENBQTBDLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDbEUsQ0FBQztBQUNILENBQUM7QUFFWSxRQUFBLE1BQU0sR0FBRztJQUNwQixJQUFJLEVBQUUsd0JBQXdCO0lBQzlCLFFBQVEsRUFBRSxjQUFjLEVBQUUsd0JBQXdCO0NBQ25ELENBQUMifQ==
|
|
@@ -0,0 +1,11 @@
|
|
|
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 paystack_payment_processor_1 = __importDefault(require("../../services/paystack-payment-processor"));
|
|
8
|
+
exports.default = (0, utils_1.ModuleProvider)(utils_1.Modules.PAYMENT, {
|
|
9
|
+
services: [paystack_payment_processor_1.default],
|
|
10
|
+
});
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvcHJvdmlkZXJzL3BheXN0YWNrL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEscURBQW9FO0FBQ3BFLDJHQUFpRjtBQUVqRixrQkFBZSxJQUFBLHNCQUFjLEVBQUMsZUFBTyxDQUFDLE9BQU8sRUFBRTtJQUM3QyxRQUFRLEVBQUUsQ0FBQyxvQ0FBd0IsQ0FBQztDQUNyQyxDQUFDLENBQUMifQ==
|
package/README.md
CHANGED
|
@@ -20,14 +20,28 @@ A robust, production-ready Paystack payment integration for **MedusaJS v2**. Thi
|
|
|
20
20
|
|
|
21
21
|
## 🚀 1. Backend Installation & Integration
|
|
22
22
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
23
|
+
# @enomshop/paystack
|
|
24
|
+
|
|
25
|
+
A full-featured **Medusa v2** payment plugin for [Paystack](https://paystack.com/). This plugin provides a seamless integration for accepting payments in Africa (Kenya, Nigeria, Ghana, South Africa, etc.) and globally.
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## Features
|
|
30
|
+
|
|
31
|
+
* **Medusa v2 Ready:** Optimized for the Medusa v2 architecture and module system.
|
|
32
|
+
* **Integrated Admin UI:** Adds a custom Paystack management link to your Medusa Admin sidebar.
|
|
33
|
+
* **Webhook Support:** Robust handling of Paystack events to keep order statuses in sync.
|
|
34
|
+
* **Multi-Currency:** Native support for `KES`, `NGN`, `GHS`, `ZAR`, `USD`, and more.
|
|
35
|
+
* **Partial Payments:** Includes logic for handling flexible payment sessions.
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## Installation
|
|
40
|
+
|
|
41
|
+
Install the package using yarn:
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
yarn add @enomshop/paystack
|
|
31
45
|
|
|
32
46
|
### Step 2: Environment Variables
|
|
33
47
|
Add your Paystack Secret Key to your backend `.env` file:
|
|
@@ -44,24 +58,13 @@ import { loadEnv, defineConfig } from "@medusajs/framework/utils"
|
|
|
44
58
|
loadEnv(process.env.NODE_ENV || "development", process.cwd())
|
|
45
59
|
|
|
46
60
|
module.exports = defineConfig({
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
http: {
|
|
50
|
-
storeCors: process.env.STORE_CORS!,
|
|
51
|
-
adminCors: process.env.ADMIN_CORS!,
|
|
52
|
-
authCors: process.env.AUTH_CORS!,
|
|
53
|
-
jwtSecret: process.env.JWT_SECRET || "supersecret",
|
|
54
|
-
cookieSecret: process.env.COOKIE_SECRET || "supersecret",
|
|
55
|
-
},
|
|
56
|
-
},
|
|
57
|
-
modules: [
|
|
58
|
-
{
|
|
61
|
+
modules: {
|
|
62
|
+
[Modules.PAYMENT]: {
|
|
59
63
|
resolve: "@medusajs/payment",
|
|
60
64
|
options: {
|
|
61
|
-
providers:
|
|
65
|
+
providers:[
|
|
62
66
|
{
|
|
63
|
-
resolve: "
|
|
64
|
-
id: "paystack",
|
|
67
|
+
resolve: "@enomshop/paystack/providers/paystack",
|
|
65
68
|
options: {
|
|
66
69
|
secret_key: process.env.PAYSTACK_SECRET_KEY,
|
|
67
70
|
debug: process.env.NODE_ENV !== "production",
|
|
@@ -70,7 +73,79 @@ module.exports = defineConfig({
|
|
|
70
73
|
],
|
|
71
74
|
},
|
|
72
75
|
},
|
|
76
|
+
[Modules.CACHE]: {
|
|
77
|
+
resolve: "@medusajs/cache-redis",
|
|
78
|
+
options: {
|
|
79
|
+
redisUrl: process.env.CACHE_REDIS_URL || "redis://localhost:6379",
|
|
80
|
+
},
|
|
81
|
+
},
|
|
82
|
+
[Modules.EVENT_BUS]: {
|
|
83
|
+
resolve: "@medusajs/event-bus-redis",
|
|
84
|
+
options: {
|
|
85
|
+
redisUrl: process.env.EVENTS_REDIS_URL || "redis://localhost:6379",
|
|
86
|
+
jobOptions: {
|
|
87
|
+
removeOnComplete: { age: 3600, count: 1000 },
|
|
88
|
+
removeOnFail: { age: 3600, count: 1000 },
|
|
89
|
+
},
|
|
90
|
+
},
|
|
91
|
+
},
|
|
92
|
+
[Modules.WORKFLOW_ENGINE]: {
|
|
93
|
+
resolve: "@medusajs/workflow-engine-redis",
|
|
94
|
+
options: {
|
|
95
|
+
redis: {
|
|
96
|
+
redisUrl: process.env.WE_REDIS_URL || "redis://localhost:6379",
|
|
97
|
+
},
|
|
98
|
+
},
|
|
99
|
+
},
|
|
100
|
+
[Modules.LOCKING]: {
|
|
101
|
+
resolve: "@medusajs/locking",
|
|
102
|
+
options: {
|
|
103
|
+
providers:[
|
|
104
|
+
{
|
|
105
|
+
resolve: "@medusajs/locking-redis",
|
|
106
|
+
id: "redis",
|
|
107
|
+
is_default: true,
|
|
108
|
+
options: {
|
|
109
|
+
redisUrl: process.env.LOCKING_REDIS_URL || "redis://localhost:6379",
|
|
110
|
+
},
|
|
111
|
+
},
|
|
112
|
+
],
|
|
113
|
+
},
|
|
114
|
+
},
|
|
115
|
+
"documents": {
|
|
116
|
+
resolve: "@enomshop/documents/modules/documents",
|
|
117
|
+
},
|
|
118
|
+
},
|
|
119
|
+
plugins:[
|
|
120
|
+
{
|
|
121
|
+
resolve: "@enomshop/documents",
|
|
122
|
+
options: {}
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
resolve: "@enomshop/bulk-edit",
|
|
126
|
+
options: {}
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
resolve: "@enomshop/paystack",
|
|
130
|
+
options: {}
|
|
131
|
+
}
|
|
73
132
|
],
|
|
133
|
+
admin: {
|
|
134
|
+
disable: process.env.DISABLE_MEDUSA_ADMIN === "true",
|
|
135
|
+
backendUrl: process.env.MEDUSA_BACKEND_URL || "http://localhost:9000",
|
|
136
|
+
},
|
|
137
|
+
projectConfig: {
|
|
138
|
+
redisUrl: process.env.REDIS_URL || "redis://localhost:6379",
|
|
139
|
+
workerMode: process.env.MEDUSA_WORKER_MODE as "shared" | "worker" | "server",
|
|
140
|
+
databaseUrl: process.env.DATABASE_URL || "postgres://postgres@localhost/medusa-store",
|
|
141
|
+
http: {
|
|
142
|
+
storeCors: process.env.STORE_CORS!,
|
|
143
|
+
adminCors: process.env.ADMIN_CORS!,
|
|
144
|
+
authCors: process.env.AUTH_CORS!,
|
|
145
|
+
jwtSecret: process.env.JWT_SECRET || "63595ddd-829e-44ac-a1b0-b7ddd546c0",
|
|
146
|
+
cookieSecret: process.env.COOKIE_SECRET || "df878bfa-c052-4424-a7fd-d4kddkdbf5b",
|
|
147
|
+
}
|
|
148
|
+
}
|
|
74
149
|
})
|
|
75
150
|
```
|
|
76
151
|
|
|
@@ -100,12 +175,12 @@ const handleStandardCheckout = async (cartId, email) => {
|
|
|
100
175
|
|
|
101
176
|
// 2. Select Paystack as the payment session
|
|
102
177
|
const { cart } = await medusaClient.carts.setPaymentSession(cartId, {
|
|
103
|
-
provider_id: "
|
|
178
|
+
provider_id: "pp_paystack",
|
|
104
179
|
});
|
|
105
180
|
|
|
106
181
|
// 3. Get the Paystack authorization URL from the session data
|
|
107
182
|
const paystackSession = cart.payment_collection.payment_sessions.find(
|
|
108
|
-
(s) => s.provider_id === "
|
|
183
|
+
(s) => s.provider_id === "pp_paystack"
|
|
109
184
|
);
|
|
110
185
|
|
|
111
186
|
const authUrl = paystackSession.data.paystackTxAuthorizationUrl;
|