Добавляйте электронную почту клиента в Stripe Checkout ТОЛЬКО в том случае, если она существует

#javascript #node.js #stripe-payments #javascript-objects

Вопрос:

Как я могу передать «customer_email» в Stripe Checkout, только если он существует. Если его не существует, я вообще не хочу передавать электронное письмо/ свойство.

У меня есть случай, когда, если пользователь вошел в систему, его customer_email передается в функцию; в противном случае я не хочу добавлять свойство customer_email.

Случай входа в систему: пусть CustomerEmail = «example@example.com»; Случай выхода из системы: пусть пользовательская почта;

customer_email: Почта клиента ? Пользовательская почта: null

По сути, возможно ли динамически передавать свойство/ ключ в объект на основе его существования?

Возможно ли это?

 let customerEmail;

const session = await stripe.checkout.sessions.create({
      payment_method_types: [
        "card"
      ],
      payment_method_options: {
        wechat_pay: {
          client: "web",
        },
      },
      line_items: [
        {
          price: priceId,
          quantity: 1,
          description: priceName,
        },
      ],
      mode: "payment",
      allow_promotion_codes: true,
      locale: "auto"
      },
      customer_email: customerEmail ? customerEmail: null,
      success_url:
        "http://google.com/session_id={CHECKOUT_SESSION_ID}",
      cancel_url: "http://google.com/",
    });

    res.redirect(303, session.url);
  });
 

Спасибо.

Ответ №1:

Ты можешь сделать что-то вроде этого

 var strip_param = {
    payment_method_types: [
        "card"
    ],
    payment_method_options: {
        wechat_pay: {
            client: "web",
        },
    },
    line_items: [
        {
            price: priceId,
            quantity: 1,
            description: priceName,
        },
    ],
    mode: "payment",
    allow_promotion_codes: true,
    locale: "auto",
    success_url: "http://google.com/session_id={CHECKOUT_SESSION_ID}",
    cancel_url: "http://google.com/",
};

if(customerEmail){
    strip_param = {...strip_param, customer_email: customerEmail}
}

const session = await stripe.checkout.sessions.create(strip_param);
 

Комментарии:

1. Это также может быть сделано в соответствии с ...( customerEmail ? {customer_email: customerEmail} : {})