@easypayment/medusa-payment-paypal 0.9.16 → 0.9.17
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/api/store/paypal/capture-order/route.d.ts.map +1 -1
- package/.medusa/server/src/api/store/paypal/capture-order/route.js +8 -58
- 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 +17 -43
- package/.medusa/server/src/api/store/paypal/create-order/route.js.map +1 -1
- package/.medusa/server/src/modules/paypal/utils/payment-session.d.ts +35 -0
- package/.medusa/server/src/modules/paypal/utils/payment-session.d.ts.map +1 -0
- package/.medusa/server/src/modules/paypal/utils/payment-session.js +78 -0
- package/.medusa/server/src/modules/paypal/utils/payment-session.js.map +1 -0
- package/package.json +1 -1
- package/src/api/store/paypal/capture-order/route.ts +8 -71
- package/src/api/store/paypal/create-order/route.ts +25 -47
- package/src/modules/paypal/utils/payment-session.ts +104 -0
|
@@ -308,9 +308,6 @@ function AdvancedCardPaymentsTab() {
|
|
|
308
308
|
)
|
|
309
309
|
] }) });
|
|
310
310
|
}
|
|
311
|
-
function PayPalGooglePayPage() {
|
|
312
|
-
return /* @__PURE__ */ jsxRuntime.jsx(reactRouterDom.Navigate, { to: "/settings/paypal/connection", replace: true });
|
|
313
|
-
}
|
|
314
311
|
function PayPalApplePayPage() {
|
|
315
312
|
return /* @__PURE__ */ jsxRuntime.jsx(reactRouterDom.Navigate, { to: "/settings/paypal/connection", replace: true });
|
|
316
313
|
}
|
|
@@ -898,6 +895,12 @@ function PayPalConnectionPage() {
|
|
|
898
895
|
` })
|
|
899
896
|
] });
|
|
900
897
|
}
|
|
898
|
+
function PayPalGooglePayPage() {
|
|
899
|
+
return /* @__PURE__ */ jsxRuntime.jsx(reactRouterDom.Navigate, { to: "/settings/paypal/connection", replace: true });
|
|
900
|
+
}
|
|
901
|
+
function PayPalPayLaterMessagingPage() {
|
|
902
|
+
return /* @__PURE__ */ jsxRuntime.jsx(reactRouterDom.Navigate, { to: "/settings/paypal/connection", replace: true });
|
|
903
|
+
}
|
|
901
904
|
const COLOR_OPTIONS = [
|
|
902
905
|
{ value: "gold", label: "Gold (Recommended)" },
|
|
903
906
|
{ value: "blue", label: "Blue" },
|
|
@@ -1105,9 +1108,6 @@ function PayPalSettingsTab() {
|
|
|
1105
1108
|
)
|
|
1106
1109
|
] }) });
|
|
1107
1110
|
}
|
|
1108
|
-
function PayPalPayLaterMessagingPage() {
|
|
1109
|
-
return /* @__PURE__ */ jsxRuntime.jsx(reactRouterDom.Navigate, { to: "/settings/paypal/connection", replace: true });
|
|
1110
|
-
}
|
|
1111
1111
|
const widgetModule = { widgets: [] };
|
|
1112
1112
|
const routeModule = {
|
|
1113
1113
|
routes: [
|
|
@@ -1123,10 +1123,6 @@ const routeModule = {
|
|
|
1123
1123
|
Component: AdvancedCardPaymentsTab,
|
|
1124
1124
|
path: "/settings/paypal/advanced-card-payments"
|
|
1125
1125
|
},
|
|
1126
|
-
{
|
|
1127
|
-
Component: PayPalGooglePayPage,
|
|
1128
|
-
path: "/settings/paypal/google-pay"
|
|
1129
|
-
},
|
|
1130
1126
|
{
|
|
1131
1127
|
Component: PayPalApplePayPage,
|
|
1132
1128
|
path: "/settings/paypal/apple-pay"
|
|
@@ -1136,12 +1132,16 @@ const routeModule = {
|
|
|
1136
1132
|
path: "/settings/paypal/connection"
|
|
1137
1133
|
},
|
|
1138
1134
|
{
|
|
1139
|
-
Component:
|
|
1140
|
-
path: "/settings/paypal/
|
|
1135
|
+
Component: PayPalGooglePayPage,
|
|
1136
|
+
path: "/settings/paypal/google-pay"
|
|
1141
1137
|
},
|
|
1142
1138
|
{
|
|
1143
1139
|
Component: PayPalPayLaterMessagingPage,
|
|
1144
1140
|
path: "/settings/paypal/pay-later-messaging"
|
|
1141
|
+
},
|
|
1142
|
+
{
|
|
1143
|
+
Component: PayPalSettingsTab,
|
|
1144
|
+
path: "/settings/paypal/paypal-settings"
|
|
1145
1145
|
}
|
|
1146
1146
|
]
|
|
1147
1147
|
};
|
|
@@ -307,9 +307,6 @@ function AdvancedCardPaymentsTab() {
|
|
|
307
307
|
)
|
|
308
308
|
] }) });
|
|
309
309
|
}
|
|
310
|
-
function PayPalGooglePayPage() {
|
|
311
|
-
return /* @__PURE__ */ jsx(Navigate, { to: "/settings/paypal/connection", replace: true });
|
|
312
|
-
}
|
|
313
310
|
function PayPalApplePayPage() {
|
|
314
311
|
return /* @__PURE__ */ jsx(Navigate, { to: "/settings/paypal/connection", replace: true });
|
|
315
312
|
}
|
|
@@ -897,6 +894,12 @@ function PayPalConnectionPage() {
|
|
|
897
894
|
` })
|
|
898
895
|
] });
|
|
899
896
|
}
|
|
897
|
+
function PayPalGooglePayPage() {
|
|
898
|
+
return /* @__PURE__ */ jsx(Navigate, { to: "/settings/paypal/connection", replace: true });
|
|
899
|
+
}
|
|
900
|
+
function PayPalPayLaterMessagingPage() {
|
|
901
|
+
return /* @__PURE__ */ jsx(Navigate, { to: "/settings/paypal/connection", replace: true });
|
|
902
|
+
}
|
|
900
903
|
const COLOR_OPTIONS = [
|
|
901
904
|
{ value: "gold", label: "Gold (Recommended)" },
|
|
902
905
|
{ value: "blue", label: "Blue" },
|
|
@@ -1104,9 +1107,6 @@ function PayPalSettingsTab() {
|
|
|
1104
1107
|
)
|
|
1105
1108
|
] }) });
|
|
1106
1109
|
}
|
|
1107
|
-
function PayPalPayLaterMessagingPage() {
|
|
1108
|
-
return /* @__PURE__ */ jsx(Navigate, { to: "/settings/paypal/connection", replace: true });
|
|
1109
|
-
}
|
|
1110
1110
|
const widgetModule = { widgets: [] };
|
|
1111
1111
|
const routeModule = {
|
|
1112
1112
|
routes: [
|
|
@@ -1122,10 +1122,6 @@ const routeModule = {
|
|
|
1122
1122
|
Component: AdvancedCardPaymentsTab,
|
|
1123
1123
|
path: "/settings/paypal/advanced-card-payments"
|
|
1124
1124
|
},
|
|
1125
|
-
{
|
|
1126
|
-
Component: PayPalGooglePayPage,
|
|
1127
|
-
path: "/settings/paypal/google-pay"
|
|
1128
|
-
},
|
|
1129
1125
|
{
|
|
1130
1126
|
Component: PayPalApplePayPage,
|
|
1131
1127
|
path: "/settings/paypal/apple-pay"
|
|
@@ -1135,12 +1131,16 @@ const routeModule = {
|
|
|
1135
1131
|
path: "/settings/paypal/connection"
|
|
1136
1132
|
},
|
|
1137
1133
|
{
|
|
1138
|
-
Component:
|
|
1139
|
-
path: "/settings/paypal/
|
|
1134
|
+
Component: PayPalGooglePayPage,
|
|
1135
|
+
path: "/settings/paypal/google-pay"
|
|
1140
1136
|
},
|
|
1141
1137
|
{
|
|
1142
1138
|
Component: PayPalPayLaterMessagingPage,
|
|
1143
1139
|
path: "/settings/paypal/pay-later-messaging"
|
|
1140
|
+
},
|
|
1141
|
+
{
|
|
1142
|
+
Component: PayPalSettingsTab,
|
|
1143
|
+
path: "/settings/paypal/paypal-settings"
|
|
1144
1144
|
}
|
|
1145
1145
|
]
|
|
1146
1146
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../../../src/api/store/paypal/capture-order/route.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../../../src/api/store/paypal/capture-order/route.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAmH7E,wBAAsB,IAAI,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,cAAc,2BAgIjE"}
|
|
@@ -5,7 +5,7 @@ const utils_1 = require("@medusajs/framework/utils");
|
|
|
5
5
|
const crypto_1 = require("crypto");
|
|
6
6
|
const paypal_auth_1 = require("../../../../modules/paypal/utils/paypal-auth");
|
|
7
7
|
const paypal_fetch_1 = require("../../../../modules/paypal/utils/paypal-fetch");
|
|
8
|
-
const
|
|
8
|
+
const payment_session_1 = require("../../../../modules/paypal/utils/payment-session");
|
|
9
9
|
const BN_CODE = "MBJTechnolabs_SI_SPB";
|
|
10
10
|
const PAYPAL_ORDER_ID_RE = /^[A-Z0-9]{10,25}$/;
|
|
11
11
|
function resolveIdempotencyKey(req, suffix, fallback) {
|
|
@@ -19,64 +19,15 @@ function resolveIdempotencyKey(req, suffix, fallback) {
|
|
|
19
19
|
}
|
|
20
20
|
return fallback || `pp-${suffix}-${(0, crypto_1.randomUUID)()}`;
|
|
21
21
|
}
|
|
22
|
-
async function findPayPalSessionForCart(cartId, scope) {
|
|
23
|
-
try {
|
|
24
|
-
const query = scope.resolve("query");
|
|
25
|
-
const { data: carts } = await query.graph({
|
|
26
|
-
entity: "cart",
|
|
27
|
-
fields: [
|
|
28
|
-
"id",
|
|
29
|
-
"payment_collection.payment_sessions.id",
|
|
30
|
-
"payment_collection.payment_sessions.data",
|
|
31
|
-
"payment_collection.payment_sessions.status",
|
|
32
|
-
"payment_collection.payment_sessions.provider_id",
|
|
33
|
-
"payment_collection.payment_sessions.created_at",
|
|
34
|
-
],
|
|
35
|
-
filters: { id: cartId },
|
|
36
|
-
});
|
|
37
|
-
const cart = carts?.[0];
|
|
38
|
-
const sessions = cart?.payment_collection?.payment_sessions || [];
|
|
39
|
-
const session = sessions
|
|
40
|
-
.filter((s) => (0, provider_ids_1.isPayPalProviderId)(s.provider_id))
|
|
41
|
-
.sort((a, b) => new Date(b.created_at || 0).getTime() - new Date(a.created_at || 0).getTime())[0];
|
|
42
|
-
if (!session)
|
|
43
|
-
return null;
|
|
44
|
-
return {
|
|
45
|
-
session_id: session.id,
|
|
46
|
-
session_data: (session.data || {}),
|
|
47
|
-
session_status: session.status,
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
catch (e) {
|
|
51
|
-
console.warn("[PayPal] findPayPalSessionForCart failed:", e?.message);
|
|
52
|
-
return null;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
async function updatePayPalSessionData(sessionId, extraData, scope) {
|
|
56
|
-
try {
|
|
57
|
-
const paymentModule = scope.resolve(utils_1.Modules.PAYMENT);
|
|
58
|
-
const [existing] = await paymentModule.listPaymentSessions({ id: [sessionId] }, { take: 1 });
|
|
59
|
-
const mergedData = { ...(existing?.data || {}), ...extraData };
|
|
60
|
-
await paymentModule.updatePaymentSession({
|
|
61
|
-
id: sessionId,
|
|
62
|
-
data: mergedData,
|
|
63
|
-
amount: existing?.amount,
|
|
64
|
-
currency_code: existing?.currency_code,
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
catch (e) {
|
|
68
|
-
console.error("[PayPal] updatePayPalSessionData failed:", e?.message);
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
22
|
async function attachPayPalCaptureToSession(cartId, orderId, capture, scope) {
|
|
72
23
|
try {
|
|
73
|
-
const session = await findPayPalSessionForCart(cartId, scope);
|
|
24
|
+
const session = await (0, payment_session_1.findPayPalSessionForCart)(cartId, scope);
|
|
74
25
|
if (!session) {
|
|
75
26
|
console.warn("[PayPal] attachPayPalCaptureToSession: no session found for cart", cartId);
|
|
76
27
|
return;
|
|
77
28
|
}
|
|
78
29
|
const captureId = capture?.purchase_units?.[0]?.payments?.captures?.[0]?.id || capture?.id;
|
|
79
|
-
await updatePayPalSessionData(session.session_id, {
|
|
30
|
+
await (0, payment_session_1.updatePayPalSessionData)(session.session_id, {
|
|
80
31
|
paypal: {
|
|
81
32
|
...((session.session_data || {}).paypal || {}),
|
|
82
33
|
order_id: orderId,
|
|
@@ -90,13 +41,13 @@ async function attachPayPalCaptureToSession(cartId, orderId, capture, scope) {
|
|
|
90
41
|
}
|
|
91
42
|
async function attachPayPalAuthorizationToSession(cartId, orderId, authorization, scope) {
|
|
92
43
|
try {
|
|
93
|
-
const session = await findPayPalSessionForCart(cartId, scope);
|
|
44
|
+
const session = await (0, payment_session_1.findPayPalSessionForCart)(cartId, scope);
|
|
94
45
|
if (!session) {
|
|
95
46
|
console.warn("[PayPal] attachPayPalAuthorizationToSession: no session found for cart", cartId);
|
|
96
47
|
return;
|
|
97
48
|
}
|
|
98
49
|
const authorizationId = authorization?.purchase_units?.[0]?.payments?.authorizations?.[0]?.id;
|
|
99
|
-
await updatePayPalSessionData(session.session_id, {
|
|
50
|
+
await (0, payment_session_1.updatePayPalSessionData)(session.session_id, {
|
|
100
51
|
paypal: {
|
|
101
52
|
...((session.session_data || {}).paypal || {}),
|
|
102
53
|
order_id: orderId,
|
|
@@ -110,7 +61,7 @@ async function attachPayPalAuthorizationToSession(cartId, orderId, authorization
|
|
|
110
61
|
}
|
|
111
62
|
async function getExistingCapture(cartId, orderId, scope) {
|
|
112
63
|
try {
|
|
113
|
-
const session = await findPayPalSessionForCart(cartId, scope);
|
|
64
|
+
const session = await (0, payment_session_1.findPayPalSessionForCart)(cartId, scope);
|
|
114
65
|
if (!session)
|
|
115
66
|
return null;
|
|
116
67
|
const paypalData = (session.session_data || {}).paypal || {};
|
|
@@ -150,9 +101,8 @@ async function POST(req, res) {
|
|
|
150
101
|
// order_id MUST be the one this cart's session created (stored by
|
|
151
102
|
// create-order). This prevents capturing an arbitrary, caller-supplied
|
|
152
103
|
// order_id against the merchant account.
|
|
153
|
-
const session = await findPayPalSessionForCart(cartId, scope);
|
|
154
|
-
const sessionOrderId =
|
|
155
|
-
session?.session_data?.order_id || "");
|
|
104
|
+
const session = await (0, payment_session_1.findPayPalSessionForCart)(cartId, scope);
|
|
105
|
+
const sessionOrderId = (0, payment_session_1.getStoredPayPalOrderId)(session?.session_data);
|
|
156
106
|
if (!session || !sessionOrderId) {
|
|
157
107
|
return res.status(409).json({
|
|
158
108
|
message: "No PayPal order is associated with this cart's payment session",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route.js","sourceRoot":"","sources":["../../../../../../../src/api/store/paypal/capture-order/route.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"route.js","sourceRoot":"","sources":["../../../../../../../src/api/store/paypal/capture-order/route.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../../../src/api/store/paypal/create-order/route.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../../../src/api/store/paypal/create-order/route.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAqF7E,wBAAsB,IAAI,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,cAAc,2BAqYjE"}
|
|
@@ -7,7 +7,7 @@ const amounts_1 = require("../../../../modules/paypal/utils/amounts");
|
|
|
7
7
|
const currencies_1 = require("../../../../modules/paypal/utils/currencies");
|
|
8
8
|
const paypal_auth_1 = require("../../../../modules/paypal/utils/paypal-auth");
|
|
9
9
|
const paypal_fetch_1 = require("../../../../modules/paypal/utils/paypal-fetch");
|
|
10
|
-
const
|
|
10
|
+
const payment_session_1 = require("../../../../modules/paypal/utils/payment-session");
|
|
11
11
|
const BN_CODE = "MBJTechnolabs_SI_SPB";
|
|
12
12
|
function resolveIdempotencyKey(req, suffix, fallback) {
|
|
13
13
|
const header = req.headers["idempotency-key"] ||
|
|
@@ -20,52 +20,26 @@ function resolveIdempotencyKey(req, suffix, fallback) {
|
|
|
20
20
|
}
|
|
21
21
|
return fallback || `pp-${suffix}-${(0, crypto_1.randomUUID)()}`;
|
|
22
22
|
}
|
|
23
|
+
// Persist the PayPal order id onto the cart's PayPal payment session so that
|
|
24
|
+
// capture-order can bind the capture to the order this cart created. Resolved
|
|
25
|
+
// through the Payment module service (the previous direct-container resolve of
|
|
26
|
+
// "payment_collection"/"payment_session" did not exist in the request scope, so
|
|
27
|
+
// the id was silently never stored and every capture failed fail-closed).
|
|
23
28
|
async function attachPayPalOrderToSession(req, cartId, orderId) {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
const pc = await paymentCollectionService.retrieveByCartId(cartId).catch(() => null);
|
|
28
|
-
if (!pc?.id) {
|
|
29
|
-
return;
|
|
30
|
-
}
|
|
31
|
-
const sessions = await paymentSessionService.list({ payment_collection_id: pc.id });
|
|
32
|
-
const paypalSession = sessions?.find((s) => (0, provider_ids_1.isPayPalProviderId)(s.provider_id));
|
|
33
|
-
if (!paypalSession) {
|
|
34
|
-
return;
|
|
35
|
-
}
|
|
36
|
-
await paymentSessionService.update(paypalSession.id, {
|
|
37
|
-
amount: paypalSession.amount,
|
|
38
|
-
data: {
|
|
39
|
-
...(paypalSession.data || {}),
|
|
40
|
-
paypal: {
|
|
41
|
-
...((paypalSession.data || {}).paypal || {}),
|
|
42
|
-
order_id: orderId,
|
|
43
|
-
},
|
|
44
|
-
},
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
catch {
|
|
29
|
+
const session = await (0, payment_session_1.findPayPalSessionForCart)(cartId, req.scope);
|
|
30
|
+
if (!session) {
|
|
31
|
+
return;
|
|
48
32
|
}
|
|
33
|
+
await (0, payment_session_1.updatePayPalSessionData)(session.session_id, {
|
|
34
|
+
paypal: {
|
|
35
|
+
...(session.session_data.paypal || {}),
|
|
36
|
+
order_id: orderId,
|
|
37
|
+
},
|
|
38
|
+
}, req.scope);
|
|
49
39
|
}
|
|
50
40
|
async function getExistingPayPalOrderId(req, cartId) {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
const paymentSessionService = req.scope.resolve("payment_session");
|
|
54
|
-
const pc = await paymentCollectionService.retrieveByCartId(cartId).catch(() => null);
|
|
55
|
-
if (!pc?.id) {
|
|
56
|
-
return null;
|
|
57
|
-
}
|
|
58
|
-
const sessions = await paymentSessionService.list({ payment_collection_id: pc.id });
|
|
59
|
-
const paypalSession = sessions?.find((s) => (0, provider_ids_1.isPayPalProviderId)(s.provider_id));
|
|
60
|
-
if (!paypalSession) {
|
|
61
|
-
return null;
|
|
62
|
-
}
|
|
63
|
-
const paypalData = (paypalSession.data || {}).paypal || {};
|
|
64
|
-
return paypalData.order_id ? String(paypalData.order_id) : null;
|
|
65
|
-
}
|
|
66
|
-
catch {
|
|
67
|
-
return null;
|
|
68
|
-
}
|
|
41
|
+
const session = await (0, payment_session_1.findPayPalSessionForCart)(cartId, req.scope);
|
|
42
|
+
return (0, payment_session_1.getStoredPayPalOrderId)(session?.session_data);
|
|
69
43
|
}
|
|
70
44
|
function resolveReturnUrl(req) {
|
|
71
45
|
const configured = process.env.STOREFRONT_URL || process.env.STORE_URL;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route.js","sourceRoot":"","sources":["../../../../../../../src/api/store/paypal/create-order/route.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"route.js","sourceRoot":"","sources":["../../../../../../../src/api/store/paypal/create-order/route.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared PayPal payment-session helpers.
|
|
3
|
+
*
|
|
4
|
+
* `create-order` and `capture-order` must agree on (a) which payment session
|
|
5
|
+
* belongs to a cart and (b) how the PayPal order id is stored/read on it —
|
|
6
|
+
* otherwise the capture's fail-closed binding (the order id stored by
|
|
7
|
+
* create-order must equal the one being captured) can never be satisfied.
|
|
8
|
+
* Keeping the logic here, resolved through the Payment module service
|
|
9
|
+
* (`Modules.PAYMENT`), guarantees both routes use the same, correct path.
|
|
10
|
+
*/
|
|
11
|
+
export type PayPalCartSession = {
|
|
12
|
+
session_id: string;
|
|
13
|
+
session_data: Record<string, any>;
|
|
14
|
+
session_status: string;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Resolve the cart's active PayPal payment session (wallet or card). When a
|
|
18
|
+
* cart has more than one PayPal session, the most recently created one wins —
|
|
19
|
+
* both create-order and capture-order rely on this same selection so they
|
|
20
|
+
* always read and write the same session.
|
|
21
|
+
*/
|
|
22
|
+
export declare function findPayPalSessionForCart(cartId: string, scope: any): Promise<PayPalCartSession | null>;
|
|
23
|
+
/**
|
|
24
|
+
* Read the PayPal order id stored on a session's `data`. Accepts both the
|
|
25
|
+
* canonical `data.paypal.order_id` and the legacy top-level `data.order_id`.
|
|
26
|
+
* Returns null when none is present.
|
|
27
|
+
*/
|
|
28
|
+
export declare function getStoredPayPalOrderId(sessionData?: Record<string, any> | null): string | null;
|
|
29
|
+
/**
|
|
30
|
+
* Shallow-merge `extraData` into a payment session's `data`, preserving the
|
|
31
|
+
* session's amount/currency. Callers that update the nested `paypal` object are
|
|
32
|
+
* responsible for spreading its existing keys (see `getStoredPayPalOrderId`).
|
|
33
|
+
*/
|
|
34
|
+
export declare function updatePayPalSessionData(sessionId: string, extraData: Record<string, any>, scope: any): Promise<void>;
|
|
35
|
+
//# sourceMappingURL=payment-session.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payment-session.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/paypal/utils/payment-session.ts"],"names":[],"mappings":"AAIA;;;;;;;;;GASG;AAEH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACjC,cAAc,EAAE,MAAM,CAAA;CACvB,CAAA;AAED;;;;;GAKG;AACH,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,GAAG,GACT,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAmCnC;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,GACvC,MAAM,GAAG,IAAI,CAIf;AAED;;;;GAIG;AACH,wBAAsB,uBAAuB,CAC3C,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC9B,KAAK,EAAE,GAAG,GACT,OAAO,CAAC,IAAI,CAAC,CAcf"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.findPayPalSessionForCart = findPayPalSessionForCart;
|
|
4
|
+
exports.getStoredPayPalOrderId = getStoredPayPalOrderId;
|
|
5
|
+
exports.updatePayPalSessionData = updatePayPalSessionData;
|
|
6
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
7
|
+
const provider_ids_1 = require("./provider-ids");
|
|
8
|
+
/**
|
|
9
|
+
* Resolve the cart's active PayPal payment session (wallet or card). When a
|
|
10
|
+
* cart has more than one PayPal session, the most recently created one wins —
|
|
11
|
+
* both create-order and capture-order rely on this same selection so they
|
|
12
|
+
* always read and write the same session.
|
|
13
|
+
*/
|
|
14
|
+
async function findPayPalSessionForCart(cartId, scope) {
|
|
15
|
+
try {
|
|
16
|
+
const query = scope.resolve("query");
|
|
17
|
+
const { data: carts } = await query.graph({
|
|
18
|
+
entity: "cart",
|
|
19
|
+
fields: [
|
|
20
|
+
"id",
|
|
21
|
+
"payment_collection.payment_sessions.id",
|
|
22
|
+
"payment_collection.payment_sessions.data",
|
|
23
|
+
"payment_collection.payment_sessions.status",
|
|
24
|
+
"payment_collection.payment_sessions.provider_id",
|
|
25
|
+
"payment_collection.payment_sessions.created_at",
|
|
26
|
+
],
|
|
27
|
+
filters: { id: cartId },
|
|
28
|
+
});
|
|
29
|
+
const cart = carts?.[0];
|
|
30
|
+
const sessions = cart?.payment_collection?.payment_sessions || [];
|
|
31
|
+
const session = sessions
|
|
32
|
+
.filter((s) => (0, provider_ids_1.isPayPalProviderId)(s.provider_id))
|
|
33
|
+
.sort((a, b) => new Date(b.created_at || 0).getTime() - new Date(a.created_at || 0).getTime())[0];
|
|
34
|
+
if (!session)
|
|
35
|
+
return null;
|
|
36
|
+
return {
|
|
37
|
+
session_id: session.id,
|
|
38
|
+
session_data: (session.data || {}),
|
|
39
|
+
session_status: session.status,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
catch (e) {
|
|
43
|
+
console.warn("[PayPal] findPayPalSessionForCart failed:", e?.message);
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Read the PayPal order id stored on a session's `data`. Accepts both the
|
|
49
|
+
* canonical `data.paypal.order_id` and the legacy top-level `data.order_id`.
|
|
50
|
+
* Returns null when none is present.
|
|
51
|
+
*/
|
|
52
|
+
function getStoredPayPalOrderId(sessionData) {
|
|
53
|
+
const paypal = (sessionData?.paypal || {});
|
|
54
|
+
const id = String(paypal.order_id || sessionData?.order_id || "");
|
|
55
|
+
return id || null;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Shallow-merge `extraData` into a payment session's `data`, preserving the
|
|
59
|
+
* session's amount/currency. Callers that update the nested `paypal` object are
|
|
60
|
+
* responsible for spreading its existing keys (see `getStoredPayPalOrderId`).
|
|
61
|
+
*/
|
|
62
|
+
async function updatePayPalSessionData(sessionId, extraData, scope) {
|
|
63
|
+
try {
|
|
64
|
+
const paymentModule = scope.resolve(utils_1.Modules.PAYMENT);
|
|
65
|
+
const [existing] = await paymentModule.listPaymentSessions({ id: [sessionId] }, { take: 1 });
|
|
66
|
+
const mergedData = { ...(existing?.data || {}), ...extraData };
|
|
67
|
+
await paymentModule.updatePaymentSession({
|
|
68
|
+
id: sessionId,
|
|
69
|
+
data: mergedData,
|
|
70
|
+
amount: existing?.amount,
|
|
71
|
+
currency_code: existing?.currency_code,
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
catch (e) {
|
|
75
|
+
console.error("[PayPal] updatePayPalSessionData failed:", e?.message);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=payment-session.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payment-session.js","sourceRoot":"","sources":["../../../../../../src/modules/paypal/utils/payment-session.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
import type { MedusaRequest, MedusaResponse } from "@medusajs/framework/http"
|
|
2
|
-
import type {
|
|
3
|
-
import { ContainerRegistrationKeys
|
|
2
|
+
import type { Logger } from "@medusajs/framework/types"
|
|
3
|
+
import { ContainerRegistrationKeys } from "@medusajs/framework/utils"
|
|
4
4
|
import { randomUUID } from "crypto"
|
|
5
5
|
import type PayPalModuleService from "../../../../modules/paypal/service"
|
|
6
6
|
import { getPayPalApiBase } from "../../../../modules/paypal/utils/paypal-auth"
|
|
7
7
|
import { paypalFetch } from "../../../../modules/paypal/utils/paypal-fetch"
|
|
8
|
-
import {
|
|
8
|
+
import {
|
|
9
|
+
findPayPalSessionForCart,
|
|
10
|
+
getStoredPayPalOrderId,
|
|
11
|
+
updatePayPalSessionData,
|
|
12
|
+
} from "../../../../modules/paypal/utils/payment-session"
|
|
9
13
|
|
|
10
14
|
const BN_CODE = "MBJTechnolabs_SI_SPB"
|
|
11
15
|
|
|
@@ -29,70 +33,6 @@ function resolveIdempotencyKey(req: MedusaRequest, suffix: string, fallback: str
|
|
|
29
33
|
return fallback || `pp-${suffix}-${randomUUID()}`
|
|
30
34
|
}
|
|
31
35
|
|
|
32
|
-
async function findPayPalSessionForCart(
|
|
33
|
-
cartId: string,
|
|
34
|
-
scope: any
|
|
35
|
-
): Promise<{
|
|
36
|
-
session_id: string
|
|
37
|
-
session_data: Record<string, any>
|
|
38
|
-
session_status: string
|
|
39
|
-
} | null> {
|
|
40
|
-
try {
|
|
41
|
-
const query = scope.resolve("query")
|
|
42
|
-
const { data: carts } = await query.graph({
|
|
43
|
-
entity: "cart",
|
|
44
|
-
fields: [
|
|
45
|
-
"id",
|
|
46
|
-
"payment_collection.payment_sessions.id",
|
|
47
|
-
"payment_collection.payment_sessions.data",
|
|
48
|
-
"payment_collection.payment_sessions.status",
|
|
49
|
-
"payment_collection.payment_sessions.provider_id",
|
|
50
|
-
"payment_collection.payment_sessions.created_at",
|
|
51
|
-
],
|
|
52
|
-
filters: { id: cartId },
|
|
53
|
-
})
|
|
54
|
-
const cart = carts?.[0]
|
|
55
|
-
const sessions = cart?.payment_collection?.payment_sessions || []
|
|
56
|
-
const session = sessions
|
|
57
|
-
.filter((s: any) => isPayPalProviderId(s.provider_id))
|
|
58
|
-
.sort(
|
|
59
|
-
(a: any, b: any) =>
|
|
60
|
-
new Date(b.created_at || 0).getTime() - new Date(a.created_at || 0).getTime()
|
|
61
|
-
)[0]
|
|
62
|
-
|
|
63
|
-
if (!session) return null
|
|
64
|
-
|
|
65
|
-
return {
|
|
66
|
-
session_id: session.id,
|
|
67
|
-
session_data: (session.data || {}) as Record<string, any>,
|
|
68
|
-
session_status: session.status,
|
|
69
|
-
}
|
|
70
|
-
} catch (e: any) {
|
|
71
|
-
console.warn("[PayPal] findPayPalSessionForCart failed:", e?.message)
|
|
72
|
-
return null
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
async function updatePayPalSessionData(
|
|
77
|
-
sessionId: string,
|
|
78
|
-
extraData: Record<string, any>,
|
|
79
|
-
scope: any
|
|
80
|
-
): Promise<void> {
|
|
81
|
-
try {
|
|
82
|
-
const paymentModule = scope.resolve(Modules.PAYMENT) as IPaymentModuleService
|
|
83
|
-
const [existing] = await paymentModule.listPaymentSessions({ id: [sessionId] }, { take: 1 })
|
|
84
|
-
const mergedData = { ...(existing?.data || {}), ...extraData }
|
|
85
|
-
await (paymentModule as any).updatePaymentSession({
|
|
86
|
-
id: sessionId,
|
|
87
|
-
data: mergedData,
|
|
88
|
-
amount: existing?.amount,
|
|
89
|
-
currency_code: existing?.currency_code,
|
|
90
|
-
})
|
|
91
|
-
} catch (e: any) {
|
|
92
|
-
console.error("[PayPal] updatePayPalSessionData failed:", e?.message)
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
|
|
96
36
|
async function attachPayPalCaptureToSession(
|
|
97
37
|
cartId: string,
|
|
98
38
|
orderId: string,
|
|
@@ -202,10 +142,7 @@ export async function POST(req: MedusaRequest, res: MedusaResponse) {
|
|
|
202
142
|
// create-order). This prevents capturing an arbitrary, caller-supplied
|
|
203
143
|
// order_id against the merchant account.
|
|
204
144
|
const session = await findPayPalSessionForCart(cartId, scope)
|
|
205
|
-
const sessionOrderId =
|
|
206
|
-
(session?.session_data?.paypal as Record<string, unknown>)?.order_id ||
|
|
207
|
-
session?.session_data?.order_id || ""
|
|
208
|
-
)
|
|
145
|
+
const sessionOrderId = getStoredPayPalOrderId(session?.session_data)
|
|
209
146
|
if (!session || !sessionOrderId) {
|
|
210
147
|
return res.status(409).json({
|
|
211
148
|
message: "No PayPal order is associated with this cart's payment session",
|
|
@@ -10,7 +10,11 @@ import {
|
|
|
10
10
|
import { getPayPalApiBase } from "../../../../modules/paypal/utils/paypal-auth"
|
|
11
11
|
import { paypalFetch } from "../../../../modules/paypal/utils/paypal-fetch"
|
|
12
12
|
import type PayPalModuleService from "../../../../modules/paypal/service"
|
|
13
|
-
import {
|
|
13
|
+
import {
|
|
14
|
+
findPayPalSessionForCart,
|
|
15
|
+
getStoredPayPalOrderId,
|
|
16
|
+
updatePayPalSessionData,
|
|
17
|
+
} from "../../../../modules/paypal/utils/payment-session"
|
|
14
18
|
|
|
15
19
|
const BN_CODE = "MBJTechnolabs_SI_SPB"
|
|
16
20
|
|
|
@@ -32,61 +36,35 @@ function resolveIdempotencyKey(req: MedusaRequest, suffix: string, fallback: str
|
|
|
32
36
|
return fallback || `pp-${suffix}-${randomUUID()}`
|
|
33
37
|
}
|
|
34
38
|
|
|
39
|
+
// Persist the PayPal order id onto the cart's PayPal payment session so that
|
|
40
|
+
// capture-order can bind the capture to the order this cart created. Resolved
|
|
41
|
+
// through the Payment module service (the previous direct-container resolve of
|
|
42
|
+
// "payment_collection"/"payment_session" did not exist in the request scope, so
|
|
43
|
+
// the id was silently never stored and every capture failed fail-closed).
|
|
35
44
|
async function attachPayPalOrderToSession(
|
|
36
45
|
req: MedusaRequest,
|
|
37
46
|
cartId: string,
|
|
38
47
|
orderId: string
|
|
39
48
|
) {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
const pc = await paymentCollectionService.retrieveByCartId(cartId).catch(() => null)
|
|
45
|
-
if (!pc?.id) {
|
|
46
|
-
return
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
const sessions = await paymentSessionService.list({ payment_collection_id: pc.id })
|
|
50
|
-
const paypalSession = sessions?.find((s: any) => isPayPalProviderId(s.provider_id))
|
|
51
|
-
if (!paypalSession) {
|
|
52
|
-
return
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
await paymentSessionService.update(paypalSession.id, {
|
|
56
|
-
amount: paypalSession.amount,
|
|
57
|
-
data: {
|
|
58
|
-
...(paypalSession.data || {}),
|
|
59
|
-
paypal: {
|
|
60
|
-
...((paypalSession.data || {}).paypal || {}),
|
|
61
|
-
order_id: orderId,
|
|
62
|
-
},
|
|
63
|
-
},
|
|
64
|
-
})
|
|
65
|
-
} catch {
|
|
49
|
+
const session = await findPayPalSessionForCart(cartId, req.scope)
|
|
50
|
+
if (!session) {
|
|
51
|
+
return
|
|
66
52
|
}
|
|
53
|
+
await updatePayPalSessionData(
|
|
54
|
+
session.session_id,
|
|
55
|
+
{
|
|
56
|
+
paypal: {
|
|
57
|
+
...(session.session_data.paypal || {}),
|
|
58
|
+
order_id: orderId,
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
req.scope
|
|
62
|
+
)
|
|
67
63
|
}
|
|
68
64
|
|
|
69
65
|
async function getExistingPayPalOrderId(req: MedusaRequest, cartId: string) {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
const paymentSessionService = req.scope.resolve("payment_session") as any
|
|
73
|
-
|
|
74
|
-
const pc = await paymentCollectionService.retrieveByCartId(cartId).catch(() => null)
|
|
75
|
-
if (!pc?.id) {
|
|
76
|
-
return null
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
const sessions = await paymentSessionService.list({ payment_collection_id: pc.id })
|
|
80
|
-
const paypalSession = sessions?.find((s: any) => isPayPalProviderId(s.provider_id))
|
|
81
|
-
if (!paypalSession) {
|
|
82
|
-
return null
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
const paypalData = (paypalSession.data || {}).paypal || {}
|
|
86
|
-
return paypalData.order_id ? String(paypalData.order_id) : null
|
|
87
|
-
} catch {
|
|
88
|
-
return null
|
|
89
|
-
}
|
|
66
|
+
const session = await findPayPalSessionForCart(cartId, req.scope)
|
|
67
|
+
return getStoredPayPalOrderId(session?.session_data)
|
|
90
68
|
}
|
|
91
69
|
|
|
92
70
|
function resolveReturnUrl(req: MedusaRequest) {
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import type { IPaymentModuleService } from "@medusajs/framework/types"
|
|
2
|
+
import { Modules } from "@medusajs/framework/utils"
|
|
3
|
+
import { isPayPalProviderId } from "./provider-ids"
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Shared PayPal payment-session helpers.
|
|
7
|
+
*
|
|
8
|
+
* `create-order` and `capture-order` must agree on (a) which payment session
|
|
9
|
+
* belongs to a cart and (b) how the PayPal order id is stored/read on it —
|
|
10
|
+
* otherwise the capture's fail-closed binding (the order id stored by
|
|
11
|
+
* create-order must equal the one being captured) can never be satisfied.
|
|
12
|
+
* Keeping the logic here, resolved through the Payment module service
|
|
13
|
+
* (`Modules.PAYMENT`), guarantees both routes use the same, correct path.
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
export type PayPalCartSession = {
|
|
17
|
+
session_id: string
|
|
18
|
+
session_data: Record<string, any>
|
|
19
|
+
session_status: string
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Resolve the cart's active PayPal payment session (wallet or card). When a
|
|
24
|
+
* cart has more than one PayPal session, the most recently created one wins —
|
|
25
|
+
* both create-order and capture-order rely on this same selection so they
|
|
26
|
+
* always read and write the same session.
|
|
27
|
+
*/
|
|
28
|
+
export async function findPayPalSessionForCart(
|
|
29
|
+
cartId: string,
|
|
30
|
+
scope: any
|
|
31
|
+
): Promise<PayPalCartSession | null> {
|
|
32
|
+
try {
|
|
33
|
+
const query = scope.resolve("query")
|
|
34
|
+
const { data: carts } = await query.graph({
|
|
35
|
+
entity: "cart",
|
|
36
|
+
fields: [
|
|
37
|
+
"id",
|
|
38
|
+
"payment_collection.payment_sessions.id",
|
|
39
|
+
"payment_collection.payment_sessions.data",
|
|
40
|
+
"payment_collection.payment_sessions.status",
|
|
41
|
+
"payment_collection.payment_sessions.provider_id",
|
|
42
|
+
"payment_collection.payment_sessions.created_at",
|
|
43
|
+
],
|
|
44
|
+
filters: { id: cartId },
|
|
45
|
+
})
|
|
46
|
+
const cart = carts?.[0]
|
|
47
|
+
const sessions = cart?.payment_collection?.payment_sessions || []
|
|
48
|
+
const session = sessions
|
|
49
|
+
.filter((s: any) => isPayPalProviderId(s.provider_id))
|
|
50
|
+
.sort(
|
|
51
|
+
(a: any, b: any) =>
|
|
52
|
+
new Date(b.created_at || 0).getTime() - new Date(a.created_at || 0).getTime()
|
|
53
|
+
)[0]
|
|
54
|
+
|
|
55
|
+
if (!session) return null
|
|
56
|
+
|
|
57
|
+
return {
|
|
58
|
+
session_id: session.id,
|
|
59
|
+
session_data: (session.data || {}) as Record<string, any>,
|
|
60
|
+
session_status: session.status,
|
|
61
|
+
}
|
|
62
|
+
} catch (e: any) {
|
|
63
|
+
console.warn("[PayPal] findPayPalSessionForCart failed:", e?.message)
|
|
64
|
+
return null
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Read the PayPal order id stored on a session's `data`. Accepts both the
|
|
70
|
+
* canonical `data.paypal.order_id` and the legacy top-level `data.order_id`.
|
|
71
|
+
* Returns null when none is present.
|
|
72
|
+
*/
|
|
73
|
+
export function getStoredPayPalOrderId(
|
|
74
|
+
sessionData?: Record<string, any> | null
|
|
75
|
+
): string | null {
|
|
76
|
+
const paypal = (sessionData?.paypal || {}) as Record<string, unknown>
|
|
77
|
+
const id = String(paypal.order_id || sessionData?.order_id || "")
|
|
78
|
+
return id || null
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Shallow-merge `extraData` into a payment session's `data`, preserving the
|
|
83
|
+
* session's amount/currency. Callers that update the nested `paypal` object are
|
|
84
|
+
* responsible for spreading its existing keys (see `getStoredPayPalOrderId`).
|
|
85
|
+
*/
|
|
86
|
+
export async function updatePayPalSessionData(
|
|
87
|
+
sessionId: string,
|
|
88
|
+
extraData: Record<string, any>,
|
|
89
|
+
scope: any
|
|
90
|
+
): Promise<void> {
|
|
91
|
+
try {
|
|
92
|
+
const paymentModule = scope.resolve(Modules.PAYMENT) as IPaymentModuleService
|
|
93
|
+
const [existing] = await paymentModule.listPaymentSessions({ id: [sessionId] }, { take: 1 })
|
|
94
|
+
const mergedData = { ...(existing?.data || {}), ...extraData }
|
|
95
|
+
await (paymentModule as any).updatePaymentSession({
|
|
96
|
+
id: sessionId,
|
|
97
|
+
data: mergedData,
|
|
98
|
+
amount: existing?.amount,
|
|
99
|
+
currency_code: existing?.currency_code,
|
|
100
|
+
})
|
|
101
|
+
} catch (e: any) {
|
|
102
|
+
console.error("[PayPal] updatePayPalSessionData failed:", e?.message)
|
|
103
|
+
}
|
|
104
|
+
}
|