条带发票对象:具有 current_period_end 用例的发票事件对象

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

我正在开发一款基于订阅、按月计费的产品。 这会生成并更新包含到期日期的产品密钥。

目前我正在回复“customer.subscription.created”和“invoice. payment_succeeded” 对于这两个事件,我使用“current_period_end”-(unix 时间以秒为单位) 来更新我的产品密钥到期日期。

在创建的试用版中,我希望“current_period_end”是试用期结束时间。 在 payment_succeeded 上,我预计“current_period_end”到月底(这在测试中看起来是正确的

我的问题是

  • 使用发票对象中的一些其他数据来获取跟踪结束与 payment_succeeded 事件上下文相比是否更好
  • 我是否完全以错误的方式看待这个问题?我是否应该通过其他一些条带库/函数查找数据,而不是依赖于发票对象。

注意: 这里的目标是“绝对”确保通过 stripe 为所有客户操作准确设置到期日期。如果有最佳实践/策略的指南,欢迎链接。 参考资料:

    事件类型
  • 发票对象

未来读者请注意: 我建议使用此方法来测试订阅,因为我发现模拟奇异事件调用包含质量较差的数据/空值。

stripe-payments webhooks
1个回答
1
投票

您提到使用

current_period_end

来确定您的产品到期日期。我假设您指的是订阅

属性
,因为发票对象没有具有该名称的属性。 问题

即使是因试用期而生成的发票也会触发
    invoice.payment_succeeded
  • 事件。金额仅为
    0
    。您可以使用
    amount
    值以及
    billing_reason
    来识别与试用期相关的发票(试用将有金额 0 和原因
    subscription_create
    )。
    我不清楚您正在跟踪的产品到期日期在集成中有何作用。但是,您描述的方法将跟踪当前计费周期的结束情况。我猜您想跟踪如果客户下一次付款不成功,客户何时将失去对产品的访问权限,在这种情况下,此方法将起作用。话虽这么说,有大量
  • 特定于订阅的 Webhook 事件
  • 。公共文档描述的内容与您想要实现的目标几乎相同here
© www.soinside.com 2019 - 2024. All rights reserved.