@unchainedshop/plugins 2.11.3 → 2.11.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.
@@ -13,6 +13,8 @@ const Stripe = {
13
13
  },
14
14
  actions: (params) => {
15
15
  const { modules } = params.context;
16
+ const descriptorPrefix = params.config.find(({ key }) => key === 'descriptorPrefix')?.value;
17
+ console.log({ descriptorPrefix });
16
18
  const adapterActions = {
17
19
  ...PaymentAdapter.actions(params),
18
20
  configurationError() {
@@ -54,14 +56,14 @@ const Stripe = {
54
56
  const { orderPayment, order, paymentProviderId } = params.paymentContext;
55
57
  if (orderPayment) {
56
58
  const pricing = await modules.orders.pricingSheet(order);
57
- const paymentIntent = await createOrderPaymentIntent({ order, orderPayment, pricing }, transactionContext);
59
+ const paymentIntent = await createOrderPaymentIntent({ order, orderPayment, pricing, descriptorPrefix }, transactionContext);
58
60
  return paymentIntent.client_secret;
59
61
  }
60
62
  const userId = order?.userId || params.paymentContext?.userId;
61
63
  const user = await modules.users.findUserById(userId);
62
64
  const email = modules.users.primaryEmail(user)?.address;
63
65
  const name = user.profile.displayName || user.username || email;
64
- const paymentIntent = await createRegistrationIntent({ userId, name, email, paymentProviderId }, transactionContext);
66
+ const paymentIntent = await createRegistrationIntent({ userId, name, email, paymentProviderId, descriptorPrefix }, transactionContext);
65
67
  return paymentIntent.client_secret;
66
68
  },
67
69
  charge: async ({ paymentIntentId, paymentCredentials }) => {
@@ -75,7 +77,7 @@ const Stripe = {
75
77
  const pricing = await modules.orders.pricingSheet(order);
76
78
  const paymentIntentObject = paymentIntentId
77
79
  ? await stripe.paymentIntents.retrieve(paymentIntentId)
78
- : await createOrderPaymentIntent({ orderPayment, order, pricing }, {
80
+ : await createOrderPaymentIntent({ orderPayment, order, pricing, descriptorPrefix }, {
79
81
  customer: paymentCredentials.meta?.customer,
80
82
  confirm: true,
81
83
  payment_method: paymentCredentials.token,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/payment/stripe/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/payment/stripe/index.ts"],"names":[],"mappings":"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"}
@@ -8,15 +8,17 @@ export declare const upsertCustomer: ({ userId, name, email }: {
8
8
  userId: any;
9
9
  name: any;
10
10
  email: any;
11
- }) => Promise<Stripe.Customer>;
12
- export declare const createRegistrationIntent: ({ userId, name, email, paymentProviderId }: {
13
- userId: any;
14
- name: any;
15
- email: any;
16
- paymentProviderId: any;
17
- }, options?: {}) => Promise<Stripe.Response<Stripe.SetupIntent>>;
18
- export declare const createOrderPaymentIntent: ({ order, orderPayment, pricing, }: {
11
+ }) => Promise<string>;
12
+ export declare const createRegistrationIntent: ({ userId, name, email, paymentProviderId, descriptorPrefix, }: {
13
+ userId: string;
14
+ name: string;
15
+ email: string;
16
+ paymentProviderId: string;
17
+ descriptorPrefix?: string;
18
+ }, options?: Record<string, any>) => Promise<Stripe.Response<Stripe.SetupIntent>>;
19
+ export declare const createOrderPaymentIntent: ({ order, orderPayment, pricing, descriptorPrefix, }: {
19
20
  order: Order;
20
21
  orderPayment: OrderPayment;
21
22
  pricing: IOrderPricingSheet;
22
- }, options?: {}) => Promise<Stripe.Response<Stripe.PaymentIntent>>;
23
+ descriptorPrefix?: string;
24
+ }, options?: Record<string, any>) => Promise<Stripe.Response<Stripe.PaymentIntent>>;
@@ -3,12 +3,12 @@ const { STRIPE_SECRET, STRIPE_WEBHOOK_ENVIRONMENT, EMAIL_WEBSITE_NAME } = proces
3
3
  const stripe = new Stripe(STRIPE_SECRET, {
4
4
  apiVersion: '2024-04-10',
5
5
  });
6
+ const environment = STRIPE_WEBHOOK_ENVIRONMENT ?? null;
6
7
  export default stripe;
7
8
  export const upsertCustomer = async ({ userId, name, email }) => {
8
9
  try {
9
10
  const { data } = await stripe.customers.search({ query: `metadata["userId"]:"${userId}"` });
10
11
  const existingCustomer = data[0];
11
- const environment = STRIPE_WEBHOOK_ENVIRONMENT ?? null;
12
12
  if (existingCustomer.name !== name ||
13
13
  existingCustomer.email !== email ||
14
14
  existingCustomer.metadata.environment !== environment) {
@@ -20,9 +20,9 @@ export const upsertCustomer = async ({ userId, name, email }) => {
20
20
  name,
21
21
  email,
22
22
  });
23
- return updatedCustomer;
23
+ return updatedCustomer.id;
24
24
  }
25
- return existingCustomer;
25
+ return existingCustomer.id;
26
26
  }
27
27
  catch (e) {
28
28
  const customer = await stripe.customers.create({
@@ -33,43 +33,48 @@ export const upsertCustomer = async ({ userId, name, email }) => {
33
33
  name,
34
34
  email,
35
35
  });
36
- return customer;
36
+ return customer.id;
37
37
  }
38
38
  };
39
- export const createRegistrationIntent = async ({ userId, name, email, paymentProviderId }, options = {}) => {
40
- const customer = await upsertCustomer({ userId, name, email });
39
+ export const createRegistrationIntent = async ({ userId, name, email, paymentProviderId, descriptorPrefix, }, options = {}) => {
40
+ const description = `${descriptorPrefix || EMAIL_WEBSITE_NAME || 'Unchained'} ${userId}${email ? ` (#${email})` : ''}`;
41
+ const customer = options?.customer || (await upsertCustomer({ userId, name, email }));
41
42
  const setupIntent = await stripe.setupIntents.create({
42
- customer: customer.id,
43
+ description,
44
+ customer,
43
45
  metadata: {
44
46
  userId,
45
47
  paymentProviderId,
46
- environment: STRIPE_WEBHOOK_ENVIRONMENT ?? null,
48
+ environment,
47
49
  },
48
50
  usage: 'off_session',
49
51
  ...options,
50
52
  });
51
53
  return setupIntent;
52
54
  };
53
- export const createOrderPaymentIntent = async ({ order, orderPayment, pricing, }, options = {}) => {
55
+ export const createOrderPaymentIntent = async ({ order, orderPayment, pricing, descriptorPrefix, }, options = {}) => {
56
+ const description = `${descriptorPrefix || EMAIL_WEBSITE_NAME || 'Unchained'} ${order._id}${order.orderNumber ? ` (#${order.orderNumber})` : ''}`;
54
57
  const name = [order.billingAddress?.firstName, order.billingAddress?.lastName].filter(Boolean).join(' ') ||
55
58
  order.billingAddress?.company;
56
- const customer = await upsertCustomer({
57
- userId: order.userId,
58
- name,
59
- email: order.contact?.emailAddress,
60
- });
61
- const reference = EMAIL_WEBSITE_NAME || 'Unchained';
59
+ const customer = options?.customer ||
60
+ (await upsertCustomer({
61
+ userId: order.userId,
62
+ name,
63
+ email: order.contact?.emailAddress,
64
+ }));
62
65
  const { currency, amount } = pricing.total({ useNetPrice: false });
63
66
  const paymentIntent = await stripe.paymentIntents.create({
64
67
  amount: Math.round(amount),
65
68
  currency: currency.toLowerCase(),
66
- description: `${reference}${STRIPE_WEBHOOK_ENVIRONMENT ? ` (${STRIPE_WEBHOOK_ENVIRONMENT})` : ''}: ${order._id}${order.orderNumber ? ` (#${order.orderNumber})` : ''}`,
69
+ description,
67
70
  statement_descriptor_suffix: order._id,
68
71
  setup_future_usage: 'off_session', // Verify your integration in this guide by including this parameter
69
- customer: customer.id,
72
+ customer,
70
73
  metadata: {
74
+ userId: order.userId,
71
75
  orderPaymentId: orderPayment._id,
72
- environment: STRIPE_WEBHOOK_ENVIRONMENT ?? null,
76
+ orderId: order._id,
77
+ environment,
73
78
  },
74
79
  ...options,
75
80
  });
@@ -1 +1 @@
1
- {"version":3,"file":"stripe.js","sourceRoot":"","sources":["../../../src/payment/stripe/stripe.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stripe.js","sourceRoot":"","sources":["../../../src/payment/stripe/stripe.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unchainedshop/plugins",
3
- "version": "2.11.3",
3
+ "version": "2.11.4",
4
4
  "main": "lib/plugins-index.js",
5
5
  "types": "lib/plugins-index.d.ts",
6
6
  "exports": {
@@ -21,6 +21,8 @@ const Stripe: IPaymentAdapter = {
21
21
  actions: (params) => {
22
22
  const { modules } = params.context;
23
23
 
24
+ const descriptorPrefix = params.config.find(({ key }) => key === 'descriptorPrefix')?.value;
25
+ console.log({ descriptorPrefix });
24
26
  const adapterActions = {
25
27
  ...PaymentAdapter.actions(params),
26
28
 
@@ -71,7 +73,7 @@ const Stripe: IPaymentAdapter = {
71
73
  if (orderPayment) {
72
74
  const pricing = await modules.orders.pricingSheet(order);
73
75
  const paymentIntent = await createOrderPaymentIntent(
74
- { order, orderPayment, pricing },
76
+ { order, orderPayment, pricing, descriptorPrefix },
75
77
  transactionContext,
76
78
  );
77
79
  return paymentIntent.client_secret;
@@ -83,7 +85,7 @@ const Stripe: IPaymentAdapter = {
83
85
  const name = user.profile.displayName || user.username || email;
84
86
 
85
87
  const paymentIntent = await createRegistrationIntent(
86
- { userId, name, email, paymentProviderId },
88
+ { userId, name, email, paymentProviderId, descriptorPrefix },
87
89
  transactionContext,
88
90
  );
89
91
  return paymentIntent.client_secret;
@@ -104,7 +106,7 @@ const Stripe: IPaymentAdapter = {
104
106
  const paymentIntentObject = paymentIntentId
105
107
  ? await stripe.paymentIntents.retrieve(paymentIntentId)
106
108
  : await createOrderPaymentIntent(
107
- { orderPayment, order, pricing },
109
+ { orderPayment, order, pricing, descriptorPrefix },
108
110
  {
109
111
  customer: paymentCredentials.meta?.customer,
110
112
  confirm: true,
@@ -1,6 +1,6 @@
1
1
  import { Order } from '@unchainedshop/types/orders.js';
2
2
  import { OrderPayment } from '@unchainedshop/types/orders.payments.js';
3
- import { IOrderPricingSheet, OrderPricingCalculation } from '@unchainedshop/types/orders.pricing.js';
3
+ import { IOrderPricingSheet } from '@unchainedshop/types/orders.pricing.js';
4
4
  import Stripe from 'stripe';
5
5
 
6
6
  const { STRIPE_SECRET, STRIPE_WEBHOOK_ENVIRONMENT, EMAIL_WEBSITE_NAME } = process.env;
@@ -9,13 +9,14 @@ const stripe = new Stripe(STRIPE_SECRET, {
9
9
  apiVersion: '2024-04-10',
10
10
  });
11
11
 
12
+ const environment = STRIPE_WEBHOOK_ENVIRONMENT ?? null;
13
+
12
14
  export default stripe;
13
15
 
14
- export const upsertCustomer = async ({ userId, name, email }) => {
16
+ export const upsertCustomer = async ({ userId, name, email }): Promise<string> => {
15
17
  try {
16
18
  const { data } = await stripe.customers.search({ query: `metadata["userId"]:"${userId}"` });
17
19
  const existingCustomer = data[0];
18
- const environment = STRIPE_WEBHOOK_ENVIRONMENT ?? null;
19
20
 
20
21
  if (
21
22
  existingCustomer.name !== name ||
@@ -30,10 +31,10 @@ export const upsertCustomer = async ({ userId, name, email }) => {
30
31
  name,
31
32
  email,
32
33
  });
33
- return updatedCustomer;
34
+ return updatedCustomer.id;
34
35
  }
35
36
 
36
- return existingCustomer;
37
+ return existingCustomer.id;
37
38
  } catch (e) {
38
39
  const customer = await stripe.customers.create({
39
40
  metadata: {
@@ -43,21 +44,36 @@ export const upsertCustomer = async ({ userId, name, email }) => {
43
44
  name,
44
45
  email,
45
46
  });
46
- return customer;
47
+ return customer.id;
47
48
  }
48
49
  };
49
50
 
50
51
  export const createRegistrationIntent = async (
51
- { userId, name, email, paymentProviderId },
52
- options = {},
52
+ {
53
+ userId,
54
+ name,
55
+ email,
56
+ paymentProviderId,
57
+ descriptorPrefix,
58
+ }: {
59
+ userId: string;
60
+ name: string;
61
+ email: string;
62
+ paymentProviderId: string;
63
+ descriptorPrefix?: string;
64
+ },
65
+ options: Record<string, any> = {},
53
66
  ) => {
54
- const customer = await upsertCustomer({ userId, name, email });
67
+ const description = `${descriptorPrefix || EMAIL_WEBSITE_NAME || 'Unchained'} ${userId}${email ? ` (#${email})` : ''}`;
68
+ const customer = options?.customer || (await upsertCustomer({ userId, name, email }));
69
+
55
70
  const setupIntent = await stripe.setupIntents.create({
56
- customer: customer.id,
71
+ description,
72
+ customer,
57
73
  metadata: {
58
74
  userId,
59
75
  paymentProviderId,
60
- environment: STRIPE_WEBHOOK_ENVIRONMENT ?? null,
76
+ environment,
61
77
  },
62
78
  usage: 'off_session',
63
79
  ...options,
@@ -70,31 +86,42 @@ export const createOrderPaymentIntent = async (
70
86
  order,
71
87
  orderPayment,
72
88
  pricing,
73
- }: { order: Order; orderPayment: OrderPayment; pricing: IOrderPricingSheet },
74
- options = {},
89
+ descriptorPrefix,
90
+ }: {
91
+ order: Order;
92
+ orderPayment: OrderPayment;
93
+ pricing: IOrderPricingSheet;
94
+ descriptorPrefix?: string;
95
+ },
96
+ options: Record<string, any> = {},
75
97
  ) => {
98
+ const description = `${descriptorPrefix || EMAIL_WEBSITE_NAME || 'Unchained'} ${order._id}${order.orderNumber ? ` (#${order.orderNumber})` : ''}`;
99
+
76
100
  const name =
77
101
  [order.billingAddress?.firstName, order.billingAddress?.lastName].filter(Boolean).join(' ') ||
78
102
  order.billingAddress?.company;
79
103
 
80
- const customer = await upsertCustomer({
81
- userId: order.userId,
82
- name,
83
- email: order.contact?.emailAddress,
84
- });
104
+ const customer =
105
+ options?.customer ||
106
+ (await upsertCustomer({
107
+ userId: order.userId,
108
+ name,
109
+ email: order.contact?.emailAddress,
110
+ }));
85
111
 
86
- const reference = EMAIL_WEBSITE_NAME || 'Unchained';
87
112
  const { currency, amount } = pricing.total({ useNetPrice: false });
88
113
  const paymentIntent = await stripe.paymentIntents.create({
89
114
  amount: Math.round(amount),
90
115
  currency: currency.toLowerCase(),
91
- description: `${reference}${STRIPE_WEBHOOK_ENVIRONMENT ? ` (${STRIPE_WEBHOOK_ENVIRONMENT})` : ''}: ${order._id}${order.orderNumber ? ` (#${order.orderNumber})` : ''}`,
116
+ description,
92
117
  statement_descriptor_suffix: order._id,
93
118
  setup_future_usage: 'off_session', // Verify your integration in this guide by including this parameter
94
- customer: customer.id,
119
+ customer,
95
120
  metadata: {
121
+ userId: order.userId,
96
122
  orderPaymentId: orderPayment._id,
97
- environment: STRIPE_WEBHOOK_ENVIRONMENT ?? null,
123
+ orderId: order._id,
124
+ environment,
98
125
  },
99
126
  ...options,
100
127
  });