【问题标题】:When to charge for monthly usage at end of billing cycle in stripe何时在条带计费周期结束时按月收取使用费
【发布时间】:2019-03-31 17:27:20
【问题描述】:

我有一个订阅计划,每个用户计划每月收费 10 美元 + 数据“超额”费用。换句话说,它类似于(不是无限的)手机数据计划。

我应该在什么时候在周期结束时添加每月数据使用量?

根据Subscription lifestyle documentation here,它说invoice.created 事件发生在invoice.payment_succeededcharge.succeeded 之前大约一个小时。但是,似乎几乎不可能对此进行测试,因为每当首次为订阅创建发票时,所有 webhook 事件似乎都会同时触发。应该如何处理?请注意,我只想在循环结束时更新一次metered usage amount

我的代码目前是这样的:

def stripe_webhook(request):

    if event_type == 'invoice.created':

        subscription_item_id = [item['subscription_item'] for item in stripe_data_obj['lines']['data'] if item['plan']['usage_type'] == 'metered'][0]

        data_usage = user.get_data_usage(start_date, end_date)
        usage = stripe.UsageRecord.create(
          quantity=data_usage,
          timestamp=int(time.time()),
          subscription_item=subscription_item_id,
          action = 'set'
        )

【问题讨论】:

    标签: python stripe-payments webhooks


    【解决方案1】:

    如果您想手动将行项目添加到发票中,那么您绝对可以对此进行测试。我们的想法是让您的客户试用几分钟。创建的第一张发票用于试用,您可以忽略该发票和所有相关事件。几分钟后,当试用期结束时,将创建一个新发票,并将一个 invoice.created 事件发送到您的端点。那将允许您修改新发票并添加本月收取的额外金额/费用。

    为此,您将使用创建订阅API 并将trial_end 参数作为代表未来几分钟的unix 时间戳传递。

    另外,如果您真的想报告过度使用情况,您可以使用此处记录的计量计费和使用记录:https://stripe.com/docs/billing/subscriptions/metered-billing

    【讨论】:

      猜你喜欢
      • 2020-09-19
      • 2015-05-22
      • 2011-07-20
      • 2021-12-01
      • 1970-01-01
      • 2012-01-25
      • 2018-06-13
      • 2020-07-13
      • 2020-01-17
      相关资源
      最近更新 更多