使用 Stripe Express 结帐元素进行订阅

问题描述 投票:0回答:1

我想知道我是否可以使用stripe Express checkout element进行订阅?

我使用红宝石

基于文档,其中一种模式使其看起来可行:

const elements = stripe.elements({
  mode: 'payment', // This can be `subscription`
  amount: 1099,
  currency: 'usd',
  appearance,
})

我有订阅价格的查找键。我希望在此处确认付款方式后可以在某个地方使用它:

const handleError = (error) => {
  const messageContainer = document.querySelector('#error-message');
  messageContainer.textContent = error.message;
}

expressCheckoutElement.on('confirm', async (event) => {
  const {error: submitError} = await elements.submit();
  if (submitError) {
    handleError(submitError);
    return;
  }

  // Create the PaymentIntent and obtain clientSecret
  const res = await fetch('/create-intent', {
    method: 'POST',
  });
  const {client_secret: clientSecret} = await res.json();

  const {error} = await stripe.confirmPayment({
    // `elements` instance used to create the Express Checkout Element
    elements,
    // `clientSecret` from the created PaymentIntent
    clientSecret,
    confirmParams: {
      return_url: 'https://example.com/order/123/complete',
    },
  });

  if (error) {
    // This point is only reached if there's an immediate error when
    // confirming the payment. Show the error to your customer (for example, payment details incomplete)
    handleError(error);
  } else {
    // The payment UI automatically closes with a success animation.
    // Your customer is redirected to your `return_url`.
  }
});

我想在 return_url 创建订阅。但根据提供的文件,这只是一次性付款。

因此,如果我这样做(不使用订阅价格 ID,只是在返回 URL 处创建客户的订阅)。它们将收取两项费用,一项是快速结帐时的一次性付款,另一项是创建订阅时的一次性付款。

有什么帮助吗?

javascript ruby-on-rails stripe-payments
1个回答
0
投票

您可以使用他们的 Express Checkout Element 进行订阅。正如您在客户端站点上提到的,您将指定订阅模式。

const options = {
    mode: 'subscription',
    amount: 1000,
    currency: 'usd',
    setupFutureUsage: 'off_session', 
  };

您还可以在客户端的确认调用中传递返回网址:

 const {error} = await stripe.confirmSetup({
    elements,
    confirmParams: {
      return_url: 'https://example.com/order/123/complete',
    },
  }); 

在服务器端,您可以使用类似于其他集成路径的

本节
stripe.subscriptions.create方法。我将其与订阅集成,当他们在文档中说“付款”时,他们可能将其用作更广泛的术语,而不是说它仅适用于“付款模式”。

© www.soinside.com 2019 - 2024. All rights reserved.