在Stripe中创建订阅 - 我很困惑

时间:2015-01-04 09:49:47

标签: ruby-on-rails ruby stripe-payments

我为我的用户使用条带订阅,其中有一个计划,例如,每月10美元的100个API请求,这是一个标准价格。但是,如果用户使用了150个API请求,我会向他们收取10美元+ 3美元的费用。对于200多个请求,它是10美元+ 7美元。

说,我已于10月9日订阅了该用户。 11月9日,webhook事件invoice.created将由stripe调用。因此,如果用户使用了150个API请求,我必须在基本价格上多加3美元(根据Stripe文档https://support.stripe.com/questions/metered-subscription-billing,我只能在1小时内完成)。

  if even.type == 'invoice.created'
    Stripe::InvoiceItem.create(
      customer: stripe_customer_id,
      invoice: event.data.object.invoice
      amount: 300,
      currency: 'usd',
      description: 'additional price'
     )

问题:

  1. 事件invoice.created确实会在11月9日第一次被召唤吗?

  2. 10月9日至11月9日当前10美元的发票中是否会加上3美元的额外价格,还是会被添加到11月9日至12月9日的未来发票中?从文档来看,目前尚不清楚。

  3. 如何将元数据添加到$ 10的原始发票中?我可以在附加发票中添加元数据,但是如果用户使用了较少的100个API请求,则根本不需要创建附加发票,因此我不能依赖附加发票。

  4. 它说

  5.   

    在客户订阅之前创建任何发票项目   计划,然后通过更新客户创建订阅   订阅电话。

    • 但我在10月9日订阅了一次用户!如果一个月尚未过去,我怎样才能在之前或之前(10月9日)创建InvoiceItem,因此不知道用户有多少API调用(用户已在10月9日制作,显然,零API调用)?我只能在30天内创建InvoiceItems,因为当我知道在10美元的最高价格上收费多少时! 10月9日我不知道。我不明白吗?

1 个答案:

答案 0 :(得分:1)

每次创建发票时,您都会在webhook上收到活动invoice.created。因此,当您在11月9日订阅客户月度计划时,您将在11月9日,12月9日,1月9日等地举行此活动。

订阅的第一张发票(在您创建订阅时生成)始终立即关闭,因此无法在此时添加发票项目。如果您想要这样做(例如设置费用),您需要在创建订阅之前创建发票项。这样,它会自动添加到订阅客户时创建的第一张发票中。

在您的情况下,您希望根据客户在刚刚结束的月份中提出的API请求数量,为下一张发票添加费用。因此,在invoice.created事件中,您需要检测它是新月开始还是第一个月。如果是新月份,则需要决定是否必须向用户添加发票项目(基于API请求的数量)。

您无法从之前一个月向之前的发票添加元数据。您只需将发票项目添加到当前发票(对于正在开始的月份),并添加说明,指示额外行项目用于上个月的消费。