条带内计费周期结束时何时按月计费

时间:2018-10-26 23:27:10

标签: python stripe-payments webhooks

我有一个订阅计划,每个用户计划每月收费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'
        )

1 个答案:

答案 0 :(得分:1)

如果您想将订单项手动添加到发票,则可以进行测试。想法是让您的客户试用几分钟。创建的第一个发票是用于试用的,您可以忽略该发票以及所有相关事件。几分钟后,试用期结束后,将创建新的发票并将invoice.created事件发送到您的端点。那将使您能够修改新发票并添加本月要收取的额外金额/费用。

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

但是,如果确实要报告过度使用情况,则可以使用此处记录的计量计费和使用记录:https://stripe.com/docs/billing/subscriptions/metered-billing