stripe:在已保存的卡上创建 30 天的试用订阅费用,但允许用户立即升级并开始收费?

use*_*709 2 javascript node.js stripe-payments

因此,在用户创建帐户之前,我想保存他们的信用卡以收取 30 天试用期的订阅费用,并且如果用户需要,能够立即向卡收取订阅费用。

所以我的逻辑是

1)创建客户

2) 添加客户的付款详细信息

3) 创建 30 天试用期的订阅

4) 在用户升级操作时激活订阅

我不清楚4)如何可能。我在 3) 得到消息,30 天后,他们就开始订阅了。但是,如果客户想在试用期结束前立即开始使用完整版本,我该如何收取订阅费用呢?

const stripe = require('stripe')('sk_test_asdfasdf');
(async () => {
  // Create a Customer:
stripe.customers.create({
  email: 'jenny.rosen@example.com',
  payment_method: 'pm_1FWS6ZClCIKljWvsVCvkdyWg',
  invoice_settings: {
    default_payment_method: 'pm_1FWS6ZClCIKljWvsVCvkdyWg',
  },
}, function(err, customer) {
  // asynchronously called
});

//create subscription
stripe.subscriptions.create({
  customer: 'cus_4fdAW5ftNQow1a',
  items: [
    {
      plan: 'plan_CBXbz9i7AIOTzr',
    },
  ],
  expand: ['latest_invoice.payment_intent'],
}, function(err, subscription) {
    // asynchronously called
  }
);

})();
Run Code Online (Sandbox Code Playgroud)

小智 6

我会很快插话,希望能让你朝着正确的方向前进;这听起来像是安装意图的一个例子。您可以收集付款详细信息,以便稍后收费。由于审判一开始不会产生任何费用,所以一切都很好。无论您如何制定从订阅的试用状态切换到活动状态的逻辑,您都需要更新订阅结束日期以结束试用。

这里很好地总结了这一点,在大多数情况下,除了更新订阅和设置参数之外trial_end

https://stripe.com/docs/ payments/save-and-reuse

有关更新订阅的 API 文档条目:

https://stripe.com/docs/api/subscriptions/update#update_subscription-Trial_end

试用结束后,无论是“自然”还是通过明确设置结束时间戳,都应发送发票或通过默认付款方式收取费用,具体取决于您的设置。就用户体验而言,在这里以良好的流程工作不会有什么坏处;例如,在实际关闭之前,有一个确认步骤让客户知道他们将被收取 X 金额。

以下是其他有用的文档: