【问题标题】:How to create checkout session for payment intent?如何为付款意图创建结帐会话?
【发布时间】:2022-01-08 09:34:13
【问题描述】:

我正在使用stripe 在我的系统中创建支付集成,在创建payment intent 之后,我想为此支付创建checkout session,之后我想从此结帐中检索url 属性并发送给用户。

但我不知道如何将创建的付款意图“连接”到结帐会话。

现在我以这种方式创建付款意图:

    const paymentIntent = await stripe.paymentIntents.create(
      {
        amount: 500,
        currency: "usd",
        customer: customerId
      },
      {
        stripeAccount: ""
      }
    );

和结帐会话:

    const session = await stripe.checkout.sessions.create({
      success_url: "",
      cancel_url: "",
      mode: "payment",
      customer: customerId,
      payment_method_types: ["card"]
    });

问题在于,我不知道如何根据在付款意图之前创建的结帐会话。

感谢您的帮助!

【问题讨论】:

    标签: javascript node.js typescript stripe-payments


    【解决方案1】:

    结帐会话本身将创建一个 PaymentIntent。您可以使用checkout.sessions.create 调用的line_items.price_data.unit_amount[1]、line_items.price_data.currency[2] 和customer[3] 参数创建等效的 PaymentIntent。如果您想在他们的帐户上创建 Session/PaymentIntent,请务必将 stripeAccount 参数传递给您的 Session 创建调用。

    [1]https://stripe.com/docs/api/checkout/sessions/create#create_checkout_session-line_items-price_data-unit_amount

    [2]https://stripe.com/docs/api/checkout/sessions/create#create_checkout_session-line_items-price_data-currency

    [3]https://stripe.com/docs/api/checkout/sessions/create#create_checkout_session-customer

    【讨论】:

    • 好的,谢谢,但还有一个关于此的问题,如何使用mode=setup 创建结帐并同时向客户收取费用?现在我无法在创建结帐时设置mode=setup,因为我必须添加 price_data
    • 或者是在以后的付款中保存付款方式的方法?
    • Checkout 无法在设置模式下向客户收费。在付款模式下,您可以设置payment_intent_data.setup_future_usage 保存付款方式并将其附加给您的客户。将setup_future_usage 设置为on_session 将简单地保存付款方式,off_session 将保存付款方式并针对会话外付款(如订阅自动续订)进行优化(如果您需要该功能)。 stripe.com/docs/api/checkout/sessions/…
    猜你喜欢
    • 2022-01-09
    • 2021-08-17
    • 1970-01-01
    • 2020-09-16
    • 2020-12-25
    • 2020-12-01
    • 1970-01-01
    • 2021-03-30
    • 2020-03-14
    相关资源
    最近更新 更多