@easypayment/medusa-payment-paypal 0.9.14 → 0.9.16
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/admin/index.js +12 -12
- package/.medusa/server/src/admin/index.mjs +12 -12
- package/.medusa/server/src/admin/routes/settings/paypal/connection/page.js.map +1 -1
- package/.medusa/server/src/api/store/paypal/capture-order/route.d.ts.map +1 -1
- package/.medusa/server/src/api/store/paypal/capture-order/route.js +27 -12
- package/.medusa/server/src/api/store/paypal/capture-order/route.js.map +1 -1
- package/.medusa/server/src/api/store/paypal/create-order/route.d.ts.map +1 -1
- package/.medusa/server/src/api/store/paypal/create-order/route.js +83 -56
- package/.medusa/server/src/api/store/paypal/create-order/route.js.map +1 -1
- package/.medusa/server/src/api/store/paypal/webhook/route.d.ts.map +1 -1
- package/.medusa/server/src/api/store/paypal/webhook/route.js +2 -1
- package/.medusa/server/src/api/store/paypal/webhook/route.js.map +1 -1
- package/.medusa/server/src/api/store/paypal-complete/route.d.ts.map +1 -1
- package/.medusa/server/src/api/store/paypal-complete/route.js +37 -32
- package/.medusa/server/src/api/store/paypal-complete/route.js.map +1 -1
- package/.medusa/server/src/jobs/paypal-webhook-retry.d.ts.map +1 -1
- package/.medusa/server/src/jobs/paypal-webhook-retry.js +42 -1
- package/.medusa/server/src/jobs/paypal-webhook-retry.js.map +1 -1
- package/.medusa/server/src/modules/paypal/clients/paypal-seller.client.d.ts.map +1 -1
- package/.medusa/server/src/modules/paypal/clients/paypal-seller.client.js +5 -4
- package/.medusa/server/src/modules/paypal/clients/paypal-seller.client.js.map +1 -1
- package/.medusa/server/src/modules/paypal/payment-provider/card-service.d.ts.map +1 -1
- package/.medusa/server/src/modules/paypal/payment-provider/card-service.js +13 -10
- package/.medusa/server/src/modules/paypal/payment-provider/card-service.js.map +1 -1
- package/.medusa/server/src/modules/paypal/payment-provider/service.d.ts.map +1 -1
- package/.medusa/server/src/modules/paypal/payment-provider/service.js +10 -9
- package/.medusa/server/src/modules/paypal/payment-provider/service.js.map +1 -1
- package/.medusa/server/src/modules/paypal/payment-provider/webhook-utils.d.ts +12 -0
- package/.medusa/server/src/modules/paypal/payment-provider/webhook-utils.d.ts.map +1 -1
- package/.medusa/server/src/modules/paypal/payment-provider/webhook-utils.js +12 -0
- package/.medusa/server/src/modules/paypal/payment-provider/webhook-utils.js.map +1 -1
- package/.medusa/server/src/modules/paypal/service.d.ts +10 -1
- package/.medusa/server/src/modules/paypal/service.d.ts.map +1 -1
- package/.medusa/server/src/modules/paypal/service.js +71 -21
- package/.medusa/server/src/modules/paypal/service.js.map +1 -1
- package/.medusa/server/src/modules/paypal/utils/amounts.d.ts +9 -1
- package/.medusa/server/src/modules/paypal/utils/amounts.d.ts.map +1 -1
- package/.medusa/server/src/modules/paypal/utils/amounts.js +17 -5
- package/.medusa/server/src/modules/paypal/utils/amounts.js.map +1 -1
- package/.medusa/server/src/modules/paypal/utils/paypal-auth.d.ts +0 -8
- package/.medusa/server/src/modules/paypal/utils/paypal-auth.d.ts.map +1 -1
- package/.medusa/server/src/modules/paypal/utils/paypal-auth.js +0 -22
- package/.medusa/server/src/modules/paypal/utils/paypal-auth.js.map +1 -1
- package/.medusa/server/src/modules/paypal/utils/paypal-fetch.d.ts +16 -0
- package/.medusa/server/src/modules/paypal/utils/paypal-fetch.d.ts.map +1 -0
- package/.medusa/server/src/modules/paypal/utils/paypal-fetch.js +31 -0
- package/.medusa/server/src/modules/paypal/utils/paypal-fetch.js.map +1 -0
- package/.medusa/server/src/modules/paypal/utils/secret-crypto.d.ts +14 -0
- package/.medusa/server/src/modules/paypal/utils/secret-crypto.d.ts.map +1 -0
- package/.medusa/server/src/modules/paypal/utils/secret-crypto.js +91 -0
- package/.medusa/server/src/modules/paypal/utils/secret-crypto.js.map +1 -0
- package/.medusa/server/src/modules/paypal/webhook-processor.d.ts.map +1 -1
- package/.medusa/server/src/modules/paypal/webhook-processor.js +29 -13
- package/.medusa/server/src/modules/paypal/webhook-processor.js.map +1 -1
- package/.medusa/server/src/subscribers/paypal-order-invoice.d.ts.map +1 -1
- package/.medusa/server/src/subscribers/paypal-order-invoice.js +5 -3
- package/.medusa/server/src/subscribers/paypal-order-invoice.js.map +1 -1
- package/README.md +12 -0
- package/package.json +5 -2
- package/src/admin/routes/settings/paypal/connection/page.tsx +1 -1
- package/src/api/store/paypal/capture-order/route.ts +39 -17
- package/src/api/store/paypal/create-order/route.ts +106 -64
- package/src/api/store/paypal/webhook/route.ts +2 -1
- package/src/api/store/paypal-complete/route.ts +58 -44
- package/src/jobs/paypal-webhook-retry.ts +51 -1
- package/src/modules/paypal/clients/paypal-seller.client.ts +6 -4
- package/src/modules/paypal/payment-provider/card-service.ts +13 -10
- package/src/modules/paypal/payment-provider/service.ts +10 -9
- package/src/modules/paypal/payment-provider/webhook-utils.ts +12 -0
- package/src/modules/paypal/service.ts +76 -21
- package/src/modules/paypal/utils/amounts.ts +17 -8
- package/src/modules/paypal/utils/paypal-auth.ts +0 -27
- package/src/modules/paypal/utils/paypal-fetch.ts +30 -0
- package/src/modules/paypal/utils/secret-crypto.ts +94 -0
- package/src/modules/paypal/webhook-processor.ts +32 -15
- package/src/subscribers/paypal-order-invoice.ts +6 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webhook-processor.js","sourceRoot":"","sources":["../../../../../src/modules/paypal/webhook-processor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"webhook-processor.js","sourceRoot":"","sources":["../../../../../src/modules/paypal/webhook-processor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paypal-order-invoice.d.ts","sourceRoot":"","sources":["../../../../src/subscribers/paypal-order-invoice.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"paypal-order-invoice.d.ts","sourceRoot":"","sources":["../../../../src/subscribers/paypal-order-invoice.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAQ3E,wBAA8B,yBAAyB,CAAC,EACtD,KAAK,EACL,SAAS,GACV,EAAE,cAAc,CAAC;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,iBA6JhC;AAED,eAAO,MAAM,MAAM,EAAE,gBAEpB,CAAA"}
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.config = void 0;
|
|
4
4
|
exports.default = paypalOrderInvoiceHandler;
|
|
5
5
|
const paypal_auth_1 = require("../modules/paypal/utils/paypal-auth");
|
|
6
|
+
const paypal_fetch_1 = require("../modules/paypal/utils/paypal-fetch");
|
|
6
7
|
const provider_ids_1 = require("../modules/paypal/utils/provider-ids");
|
|
7
8
|
const PATCHABLE_STATUSES = new Set(["CREATED", "APPROVED", "SAVED"]);
|
|
8
9
|
async function paypalOrderInvoiceHandler({ event, container, }) {
|
|
@@ -56,11 +57,12 @@ async function paypalOrderInvoiceHandler({ event, container, }) {
|
|
|
56
57
|
if (!invoiceId)
|
|
57
58
|
return;
|
|
58
59
|
const creds = await paypal.getActiveCredentials();
|
|
59
|
-
const
|
|
60
|
+
const base = (0, paypal_auth_1.getPayPalApiBase)(creds.environment);
|
|
61
|
+
const accessToken = await paypal.getAppAccessToken();
|
|
60
62
|
let paypalOrderStatus = "";
|
|
61
63
|
let currentInvoiceId = "";
|
|
62
64
|
try {
|
|
63
|
-
const statusResp = await
|
|
65
|
+
const statusResp = await (0, paypal_fetch_1.paypalFetch)(`${base}/v2/checkout/orders/${encodeURIComponent(paypalOrderId)}`, { headers: { Authorization: `Bearer ${accessToken}` } });
|
|
64
66
|
if (statusResp.ok) {
|
|
65
67
|
const currentOrder = await statusResp.json().catch(() => ({}));
|
|
66
68
|
paypalOrderStatus = String(currentOrder?.status || "").toUpperCase();
|
|
@@ -86,7 +88,7 @@ async function paypalOrderInvoiceHandler({ event, container, }) {
|
|
|
86
88
|
console.info(`[PayPal] invoice_id already "${invoiceId}" — skipping PATCH`);
|
|
87
89
|
return;
|
|
88
90
|
}
|
|
89
|
-
const patchResp = await
|
|
91
|
+
const patchResp = await (0, paypal_fetch_1.paypalFetch)(`${base}/v2/checkout/orders/${encodeURIComponent(paypalOrderId)}`, {
|
|
90
92
|
method: "PATCH",
|
|
91
93
|
headers: {
|
|
92
94
|
Authorization: `Bearer ${accessToken}`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paypal-order-invoice.js","sourceRoot":"","sources":["../../../../src/subscribers/paypal-order-invoice.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"paypal-order-invoice.js","sourceRoot":"","sources":["../../../../src/subscribers/paypal-order-invoice.ts"],"names":[],"mappings":"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"}
|
package/README.md
CHANGED
|
@@ -131,6 +131,10 @@ npx medusa db:migrate
|
|
|
131
131
|
|
|
132
132
|
Credentials are saved automatically. Prefer manual setup? Click **Insert credentials manually** and paste your Client ID and Secret from [developer.paypal.com](https://developer.paypal.com/dashboard/).
|
|
133
133
|
|
|
134
|
+
> **🔐 Encrypt secrets at rest (recommended for production).** Set `PAYPAL_ENCRYPTION_KEY` to any strong random string. The seller client secret and PayPal app access token are then stored AES‑256‑GCM‑encrypted in the database; without it they are stored in plaintext (the previous default). Encryption is transparent — existing plaintext credentials keep working and are upgraded to ciphertext the next time they are saved/refreshed.
|
|
135
|
+
>
|
|
136
|
+
> Keep this key safe and backed up: **if it is lost, stored credentials cannot be decrypted** and you must reconnect PayPal. Rotating the key requires re‑saving credentials.
|
|
137
|
+
|
|
134
138
|
---
|
|
135
139
|
|
|
136
140
|
### Step 4 — Enable providers in your region
|
|
@@ -167,6 +171,14 @@ See the [storefront integration & testing guide →](https://www.npmjs.com/packa
|
|
|
167
171
|
|
|
168
172
|
---
|
|
169
173
|
|
|
174
|
+
## 📊 Observability
|
|
175
|
+
|
|
176
|
+
- **Metrics** — operational counters (e.g. `create_order_success`, `capture_order_failed`, `webhook_success`, `webhook_dead_letter`) are persisted in the `paypal_metric` table.
|
|
177
|
+
- **Audit trail** — security/lifecycle events (credential changes, environment switches, webhook registration, capture/refund failures, alerts) are emitted as structured JSON log lines tagged `"log":"paypal_audit"`. In production, ship stdout to your log aggregator and filter on that tag. Sensitive fields (secrets, tokens) are redacted before logging.
|
|
178
|
+
- **Webhooks** — every received event is recorded in `paypal_webhook_event` with status (`processed` / `failed` / `dead_letter` / `ignored`), attempt count, and last error; failures are retried by the `paypal-webhook-retry` job.
|
|
179
|
+
|
|
180
|
+
---
|
|
181
|
+
|
|
170
182
|
## 📄 License
|
|
171
183
|
|
|
172
184
|
MIT © [Easy Payment](https://www.npmjs.com/package/@easypayment/medusa-payment-paypal)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@easypayment/medusa-payment-paypal",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.16",
|
|
4
4
|
"description": "PayPal integration for Medusa v2",
|
|
5
5
|
"author": "EasyPayment Plugins",
|
|
6
6
|
"license": "MIT",
|
|
@@ -36,6 +36,8 @@
|
|
|
36
36
|
"scripts": {
|
|
37
37
|
"build": "medusa plugin:build",
|
|
38
38
|
"develop": "medusa plugin:develop",
|
|
39
|
+
"test": "vitest run",
|
|
40
|
+
"test:watch": "vitest",
|
|
39
41
|
"prepublishOnly": "npm run build"
|
|
40
42
|
},
|
|
41
43
|
"devDependencies": {
|
|
@@ -47,7 +49,8 @@
|
|
|
47
49
|
"@medusajs/ui": "^4.0.0",
|
|
48
50
|
"@medusajs/icons": "2.12.5",
|
|
49
51
|
"@swc/core": "^1.5.7",
|
|
50
|
-
"typescript": "^5.6.2"
|
|
52
|
+
"typescript": "^5.6.2",
|
|
53
|
+
"vitest": "^2.0.5"
|
|
51
54
|
},
|
|
52
55
|
"peerDependencies": {
|
|
53
56
|
"@medusajs/admin-sdk": "^2.12.0",
|
|
@@ -89,7 +89,7 @@ export default function PayPalConnectionPage() {
|
|
|
89
89
|
const [onboardingInProgress, setOnboardingInProgress] = useState(false)
|
|
90
90
|
|
|
91
91
|
const initLoaderRef = useRef<HTMLDivElement>(null)
|
|
92
|
-
const paypalButtonRef = useRef<HTMLAnchorElement>(null)
|
|
92
|
+
const paypalButtonRef = useRef<HTMLAnchorElement | null>(null)
|
|
93
93
|
const errorLogRef = useRef<HTMLDivElement>(null)
|
|
94
94
|
const runIdRef = useRef(0)
|
|
95
95
|
const currentRunId = useRef(0)
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import type { MedusaRequest, MedusaResponse } from "@medusajs/framework/http"
|
|
2
|
-
import type { IPaymentModuleService } from "@medusajs/framework/types"
|
|
3
|
-
import { Modules } from "@medusajs/framework/utils"
|
|
2
|
+
import type { IPaymentModuleService, Logger } from "@medusajs/framework/types"
|
|
3
|
+
import { ContainerRegistrationKeys, Modules } from "@medusajs/framework/utils"
|
|
4
4
|
import { randomUUID } from "crypto"
|
|
5
5
|
import type PayPalModuleService from "../../../../modules/paypal/service"
|
|
6
|
-
import {
|
|
6
|
+
import { getPayPalApiBase } from "../../../../modules/paypal/utils/paypal-auth"
|
|
7
|
+
import { paypalFetch } from "../../../../modules/paypal/utils/paypal-fetch"
|
|
7
8
|
import { isPayPalProviderId } from "../../../../modules/paypal/utils/provider-ids"
|
|
8
9
|
|
|
9
10
|
const BN_CODE = "MBJTechnolabs_SI_SPB"
|
|
@@ -174,6 +175,8 @@ async function getExistingCapture(cartId: string, orderId: string, scope: any) {
|
|
|
174
175
|
|
|
175
176
|
export async function POST(req: MedusaRequest, res: MedusaResponse) {
|
|
176
177
|
const paypal = req.scope.resolve<PayPalModuleService>("paypal_onboarding")
|
|
178
|
+
const logger = req.scope.resolve<Logger>(ContainerRegistrationKeys.LOGGER)
|
|
179
|
+
const requestId = randomUUID()
|
|
177
180
|
const { scope } = req
|
|
178
181
|
let debugId: string | null = null
|
|
179
182
|
|
|
@@ -194,17 +197,24 @@ export async function POST(req: MedusaRequest, res: MedusaResponse) {
|
|
|
194
197
|
return res.status(400).json({ message: "Invalid order_id format" })
|
|
195
198
|
}
|
|
196
199
|
|
|
200
|
+
// Bind the capture to the cart's own PayPal session, fail-closed: the
|
|
201
|
+
// order_id MUST be the one this cart's session created (stored by
|
|
202
|
+
// create-order). This prevents capturing an arbitrary, caller-supplied
|
|
203
|
+
// order_id against the merchant account.
|
|
197
204
|
const session = await findPayPalSessionForCart(cartId, scope)
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
205
|
+
const sessionOrderId = String(
|
|
206
|
+
(session?.session_data?.paypal as Record<string, unknown>)?.order_id ||
|
|
207
|
+
session?.session_data?.order_id || ""
|
|
208
|
+
)
|
|
209
|
+
if (!session || !sessionOrderId) {
|
|
210
|
+
return res.status(409).json({
|
|
211
|
+
message: "No PayPal order is associated with this cart's payment session",
|
|
212
|
+
})
|
|
213
|
+
}
|
|
214
|
+
if (sessionOrderId !== orderId) {
|
|
215
|
+
return res.status(400).json({
|
|
216
|
+
message: "order_id does not match the payment session for this cart",
|
|
217
|
+
})
|
|
208
218
|
}
|
|
209
219
|
|
|
210
220
|
const existingCapture = await getExistingCapture(cartId, orderId, scope)
|
|
@@ -213,7 +223,10 @@ export async function POST(req: MedusaRequest, res: MedusaResponse) {
|
|
|
213
223
|
}
|
|
214
224
|
|
|
215
225
|
const creds = await paypal.getActiveCredentials()
|
|
216
|
-
|
|
226
|
+
// Cached app access token (single-flight refresh) — avoids an OAuth
|
|
227
|
+
// round-trip on every capture-order call.
|
|
228
|
+
const base = getPayPalApiBase(creds.environment)
|
|
229
|
+
const accessToken = await paypal.getAppAccessToken()
|
|
217
230
|
const settings = await paypal.getSettings().catch(() => ({}))
|
|
218
231
|
const data =
|
|
219
232
|
settings && typeof settings === "object" && "data" in settings
|
|
@@ -232,7 +245,7 @@ export async function POST(req: MedusaRequest, res: MedusaResponse) {
|
|
|
232
245
|
? `${base}/v2/checkout/orders/${safeOrderId}/authorize`
|
|
233
246
|
: `${base}/v2/checkout/orders/${safeOrderId}/capture`
|
|
234
247
|
|
|
235
|
-
const ppResp = await
|
|
248
|
+
const ppResp = await paypalFetch(endpoint, {
|
|
236
249
|
method: "POST",
|
|
237
250
|
headers: {
|
|
238
251
|
Authorization: `Bearer ${accessToken}`,
|
|
@@ -269,17 +282,26 @@ export async function POST(req: MedusaRequest, res: MedusaResponse) {
|
|
|
269
282
|
? res.json({ authorization: payload })
|
|
270
283
|
: res.json({ capture: payload })
|
|
271
284
|
} catch (e: any) {
|
|
285
|
+
const body = (req.body || {}) as Body
|
|
286
|
+
logger.error(
|
|
287
|
+
`[paypal] capture-order failed (request_id=${requestId}, cart_id=${
|
|
288
|
+
body.cart_id ?? "n/a"
|
|
289
|
+
}, order_id=${body.order_id ?? "n/a"}, debug_id=${debugId ?? "n/a"}): ${
|
|
290
|
+
e?.message ?? String(e)
|
|
291
|
+
}`,
|
|
292
|
+
e instanceof Error ? e : undefined
|
|
293
|
+
)
|
|
272
294
|
try {
|
|
273
|
-
const body = (req.body || {}) as Body
|
|
274
295
|
await paypal.recordAuditEvent("capture_order_failed", {
|
|
275
296
|
cart_id: body.cart_id,
|
|
276
297
|
order_id: body.order_id,
|
|
277
298
|
debug_id: debugId,
|
|
299
|
+
request_id: requestId,
|
|
278
300
|
message: e?.message || String(e),
|
|
279
301
|
})
|
|
280
302
|
await paypal.recordMetric("capture_order_failed")
|
|
281
303
|
} catch {
|
|
282
304
|
}
|
|
283
|
-
return res.status(500).json({ message: "Failed to capture PayPal order" })
|
|
305
|
+
return res.status(500).json({ message: "Failed to capture PayPal order", request_id: requestId })
|
|
284
306
|
}
|
|
285
307
|
}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import type { MedusaRequest, MedusaResponse } from "@medusajs/framework/http"
|
|
2
|
+
import type { Logger } from "@medusajs/framework/types"
|
|
3
|
+
import { ContainerRegistrationKeys } from "@medusajs/framework/utils"
|
|
2
4
|
import { randomUUID } from "crypto"
|
|
3
5
|
import { getCurrencyExponent } from "../../../../modules/paypal/utils/amounts"
|
|
4
6
|
import {
|
|
5
7
|
assertPayPalCurrencySupported,
|
|
6
8
|
normalizeCurrencyCode,
|
|
7
9
|
} from "../../../../modules/paypal/utils/currencies"
|
|
8
|
-
import {
|
|
10
|
+
import { getPayPalApiBase } from "../../../../modules/paypal/utils/paypal-auth"
|
|
11
|
+
import { paypalFetch } from "../../../../modules/paypal/utils/paypal-fetch"
|
|
9
12
|
import type PayPalModuleService from "../../../../modules/paypal/service"
|
|
10
13
|
import { isPayPalProviderId } from "../../../../modules/paypal/utils/provider-ids"
|
|
11
14
|
|
|
@@ -104,6 +107,8 @@ function resolveCancelUrl(req: MedusaRequest) {
|
|
|
104
107
|
|
|
105
108
|
export async function POST(req: MedusaRequest, res: MedusaResponse) {
|
|
106
109
|
const paypal = req.scope.resolve<PayPalModuleService>("paypal_onboarding")
|
|
110
|
+
const logger = req.scope.resolve<Logger>(ContainerRegistrationKeys.LOGGER)
|
|
111
|
+
const requestId = randomUUID()
|
|
107
112
|
let debugId: string | null = null
|
|
108
113
|
|
|
109
114
|
try {
|
|
@@ -296,87 +301,113 @@ export async function POST(req: MedusaRequest, res: MedusaResponse) {
|
|
|
296
301
|
|
|
297
302
|
const finalPurchaseItems = purchaseItemsRaw.map((item: any) => item.paypalItem)
|
|
298
303
|
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
304
|
+
// Reconcile rounding drift so the items we send sum to the cart subtotal.
|
|
305
|
+
if (finalPurchaseItems.length > 0) {
|
|
306
|
+
const diff = parseFloat((subtotalMajor - roundedItemSumFixed).toFixed(exponent))
|
|
307
|
+
if (Math.abs(diff) > 0.000001) {
|
|
308
|
+
finalPurchaseItems.push({
|
|
309
|
+
name: "Line Item Amount Offset",
|
|
310
|
+
quantity: "1",
|
|
311
|
+
unit_amount: {
|
|
312
|
+
currency_code: currency,
|
|
313
|
+
value: diff.toFixed(exponent),
|
|
314
|
+
},
|
|
315
|
+
})
|
|
316
|
+
}
|
|
317
|
+
}
|
|
302
318
|
|
|
303
|
-
|
|
319
|
+
// Only send line items (and an item_total) when we actually have them.
|
|
320
|
+
const sendItems = finalPurchaseItems.length > 0
|
|
321
|
+
|
|
322
|
+
// item_total MUST equal the exact sum of (unit_amount * quantity) of the
|
|
323
|
+
// items we send; otherwise PayPal rejects with ITEM_TOTAL_MISMATCH.
|
|
324
|
+
const itemsTotalMajor = sendItems
|
|
325
|
+
? parseFloat(
|
|
326
|
+
finalPurchaseItems
|
|
327
|
+
.reduce(
|
|
328
|
+
(sum: number, it: any) =>
|
|
329
|
+
sum + Number(it.unit_amount.value) * Number(it.quantity),
|
|
330
|
+
0
|
|
331
|
+
)
|
|
332
|
+
.toFixed(exponent)
|
|
333
|
+
)
|
|
334
|
+
: 0
|
|
304
335
|
|
|
305
|
-
|
|
306
|
-
finalPurchaseItems.push({
|
|
307
|
-
name: "Line Item Amount Offset",
|
|
308
|
-
quantity: "1",
|
|
309
|
-
unit_amount: {
|
|
310
|
-
currency_code: currency,
|
|
311
|
-
value: diff.toFixed(exponent),
|
|
312
|
-
},
|
|
313
|
-
})
|
|
314
|
-
}
|
|
336
|
+
const discountValue = discountMajor + giftCardMajor
|
|
315
337
|
|
|
338
|
+
// Build a breakdown only when we send line items. A breakdown whose
|
|
339
|
+
// item_total has no matching items (or items with no item_total) is
|
|
340
|
+
// rejected by PayPal, so with no items we send just the order total.
|
|
316
341
|
const breakdown: Record<string, any> = {}
|
|
317
|
-
if (
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
if (shippingMajor > 0) {
|
|
324
|
-
breakdown.shipping = {
|
|
325
|
-
currency_code: currency,
|
|
326
|
-
value: shippingMajor.toFixed(exponent),
|
|
327
|
-
}
|
|
328
|
-
}
|
|
329
|
-
if (taxMajor > 0) {
|
|
330
|
-
breakdown.tax_total = {
|
|
331
|
-
currency_code: currency,
|
|
332
|
-
value: taxMajor.toFixed(exponent),
|
|
342
|
+
if (sendItems) {
|
|
343
|
+
if (itemsTotalMajor > 0) {
|
|
344
|
+
breakdown.item_total = {
|
|
345
|
+
currency_code: currency,
|
|
346
|
+
value: itemsTotalMajor.toFixed(exponent),
|
|
347
|
+
}
|
|
333
348
|
}
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
currency_code: currency,
|
|
340
|
-
value: discountValue.toFixed(exponent),
|
|
349
|
+
if (shippingMajor > 0) {
|
|
350
|
+
breakdown.shipping = {
|
|
351
|
+
currency_code: currency,
|
|
352
|
+
value: shippingMajor.toFixed(exponent),
|
|
353
|
+
}
|
|
341
354
|
}
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
const breakdownSum = parseFloat(
|
|
345
|
-
(adjustedItemTotal + shippingMajor + taxMajor - discountValue).toFixed(exponent)
|
|
346
|
-
)
|
|
347
|
-
|
|
348
|
-
if (Math.abs(breakdownSum - totalMajor) > 0.000001) {
|
|
349
|
-
const gap = parseFloat((totalMajor - breakdownSum).toFixed(exponent))
|
|
350
|
-
|
|
351
|
-
if (gap > 0) {
|
|
355
|
+
if (taxMajor > 0) {
|
|
352
356
|
breakdown.tax_total = {
|
|
353
357
|
currency_code: currency,
|
|
354
|
-
value:
|
|
355
|
-
((Number(breakdown.tax_total?.value || 0) + gap).toFixed(exponent))
|
|
356
|
-
).toFixed(exponent),
|
|
358
|
+
value: taxMajor.toFixed(exponent),
|
|
357
359
|
}
|
|
358
|
-
}
|
|
359
|
-
|
|
360
|
+
}
|
|
361
|
+
if (discountValue > 0) {
|
|
362
|
+
breakdown.discount = {
|
|
360
363
|
currency_code: currency,
|
|
361
|
-
value:
|
|
364
|
+
value: discountValue.toFixed(exponent),
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
const breakdownSum = parseFloat(
|
|
369
|
+
(itemsTotalMajor + shippingMajor + taxMajor - discountValue).toFixed(exponent)
|
|
370
|
+
)
|
|
371
|
+
|
|
372
|
+
if (Math.abs(breakdownSum - totalMajor) > 0.000001) {
|
|
373
|
+
const gap = parseFloat((totalMajor - breakdownSum).toFixed(exponent))
|
|
374
|
+
|
|
375
|
+
if (gap > 0) {
|
|
376
|
+
breakdown.tax_total = {
|
|
377
|
+
currency_code: currency,
|
|
378
|
+
value: parseFloat(
|
|
379
|
+
((Number(breakdown.tax_total?.value || 0) + gap).toFixed(exponent))
|
|
380
|
+
).toFixed(exponent),
|
|
381
|
+
}
|
|
382
|
+
} else {
|
|
383
|
+
breakdown.shipping_discount = {
|
|
384
|
+
currency_code: currency,
|
|
385
|
+
value: Math.abs(gap).toFixed(exponent),
|
|
386
|
+
}
|
|
362
387
|
}
|
|
363
388
|
}
|
|
364
389
|
}
|
|
365
390
|
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
391
|
+
logger.debug(
|
|
392
|
+
`[paypal] create-order line items (request_id=${requestId}): send_item_details=${sendItemDetails}, cart_items=${lineItems.length}, sent_items=${finalPurchaseItems.length}, items_total=${itemsTotalMajor}, subtotal=${subtotalMajor}, total=${totalMajor}`
|
|
393
|
+
)
|
|
394
|
+
|
|
395
|
+
// Use the module's cached app access token (single-flight refresh, ~9h TTL)
|
|
396
|
+
// instead of minting a fresh OAuth token on every create-order call.
|
|
397
|
+
const base = getPayPalApiBase(creds.environment)
|
|
398
|
+
const accessToken = await paypal.getAppAccessToken()
|
|
371
399
|
|
|
372
|
-
|
|
400
|
+
// Deterministic-per-cart idempotency key for the PayPal call. Kept distinct
|
|
401
|
+
// from `requestId` (the log/response correlation id declared at the top of
|
|
402
|
+
// POST) so the two never shadow each other.
|
|
403
|
+
const paypalRequestId = resolveIdempotencyKey(req, "create-order", `pp-create-${cart.id}`)
|
|
373
404
|
|
|
374
|
-
const ppResp = await
|
|
405
|
+
const ppResp = await paypalFetch(`${base}/v2/checkout/orders`, {
|
|
375
406
|
method: "POST",
|
|
376
407
|
headers: {
|
|
377
408
|
Authorization: `Bearer ${accessToken}`,
|
|
378
409
|
"Content-Type": "application/json",
|
|
379
|
-
"PayPal-Request-Id":
|
|
410
|
+
"PayPal-Request-Id": paypalRequestId,
|
|
380
411
|
"PayPal-Partner-Attribution-Id": BN_CODE,
|
|
381
412
|
},
|
|
382
413
|
body: JSON.stringify({
|
|
@@ -384,6 +415,10 @@ export async function POST(req: MedusaRequest, res: MedusaResponse) {
|
|
|
384
415
|
purchase_units: [
|
|
385
416
|
{
|
|
386
417
|
reference_id: "default",
|
|
418
|
+
// Set custom_id on the purchase unit (not just the order) so PayPal
|
|
419
|
+
// propagates the cart id onto capture/refund webhook resources,
|
|
420
|
+
// letting webhooks resolve the session directly without a scan.
|
|
421
|
+
custom_id: cart.id,
|
|
387
422
|
invoice_id: invoiceId,
|
|
388
423
|
...(statementName ? { soft_descriptor: statementName.slice(0, 22) } : {}),
|
|
389
424
|
amount: {
|
|
@@ -434,11 +469,18 @@ export async function POST(req: MedusaRequest, res: MedusaResponse) {
|
|
|
434
469
|
}
|
|
435
470
|
return res.json({ id: order.id })
|
|
436
471
|
} catch (e: any) {
|
|
472
|
+
const body = (req.body || {}) as Body
|
|
473
|
+
logger.error(
|
|
474
|
+
`[paypal] create-order failed (request_id=${requestId}, cart_id=${
|
|
475
|
+
body.cart_id ?? "n/a"
|
|
476
|
+
}, debug_id=${debugId ?? "n/a"}): ${e?.message ?? String(e)}`,
|
|
477
|
+
e instanceof Error ? e : undefined
|
|
478
|
+
)
|
|
437
479
|
try {
|
|
438
|
-
const body = (req.body || {}) as Body
|
|
439
480
|
await paypal.recordAuditEvent("create_order_failed", {
|
|
440
481
|
cart_id: body.cart_id,
|
|
441
482
|
debug_id: debugId,
|
|
483
|
+
request_id: requestId,
|
|
442
484
|
message: e?.message || String(e),
|
|
443
485
|
})
|
|
444
486
|
await paypal.recordMetric("create_order_failed")
|
|
@@ -450,6 +492,6 @@ export async function POST(req: MedusaRequest, res: MedusaResponse) {
|
|
|
450
492
|
rawMessage.includes("PayPal is configured for")
|
|
451
493
|
const status = isCurrencyError ? 400 : 500
|
|
452
494
|
const message = isCurrencyError ? rawMessage : "Failed to create PayPal order"
|
|
453
|
-
return res.status(status).json({ message })
|
|
495
|
+
return res.status(status).json({ message, request_id: requestId })
|
|
454
496
|
}
|
|
455
497
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { MedusaRequest, MedusaResponse } from "@medusajs/framework/http"
|
|
2
2
|
import type PayPalModuleService from "../../../../modules/paypal/service"
|
|
3
|
+
import { paypalFetch } from "../../../../modules/paypal/utils/paypal-fetch"
|
|
3
4
|
import {
|
|
4
5
|
computeNextRetryAt,
|
|
5
6
|
isAllowedEventType,
|
|
@@ -158,7 +159,7 @@ async function verifyWebhookSignature(
|
|
|
158
159
|
throw new Error(`Missing required PayPal webhook headers: ${missing.join(", ")}`)
|
|
159
160
|
}
|
|
160
161
|
|
|
161
|
-
const resp = await
|
|
162
|
+
const resp = await paypalFetch(`${base}/v1/notifications/verify-webhook-signature`, {
|
|
162
163
|
method: "POST",
|
|
163
164
|
headers: {
|
|
164
165
|
Authorization: `Bearer ${accessToken}`,
|