You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过API查询Stripe客户订阅升级/降级的变更日期?

查询Stripe订阅升级/降级的准确变更日期

以下是几种可靠的查询方式,完全通过Stripe API实现,适合定期同步场景:

1. 订阅历史记录(最精准)

Stripe订阅对象自带history属性,记录了所有订阅变更的关键信息,包括变更时间、类型和前后状态。

  • 调用API获取订阅详情时,必须通过expand[]=history参数展开该字段
  • 每条历史记录的created字段就是变更发生的Unix时间戳,type字段会标记为subscription_update,同时previous_attributes和current_attributes会明确显示价格/套餐的变更内容,完美对应升级/降级操作

Go库调用示例:

import (
    "github.com/stripe/stripe-go/v78/subscription"
)

params := &stripe.SubscriptionParams{}
params.AddExpand("history")
sub, err := subscription.Get("sub_your_subscription_id", params)
if err != nil {
    // 处理错误逻辑
}

// 遍历历史记录,筛选升级/降级相关的变更
for _, entry := range sub.History {
    if entry.Type == "subscription_update" {
        // entry.Created 就是变更的Unix时间戳,可转换为具体日期
        // entry.PreviousAttributes、entry.CurrentAttributes 可验证变更内容
    }
}

2. 发票的 prorate 细节

升级/降级操作通常会生成带有 prorate(按比例计费)的发票,通过发票可以定位变更时间:

  • 找到订阅关联的latest_invoice,在发票的lines.data中筛选proration: true的条目
  • 查看该条目对应的proration_details.subscription_proration_date,这个字段就是订阅变更生效的日期(立即生效则是操作时间,延迟生效则是下个计费周期起始时间)

3. 事件API批量查询

通过Stripe Events API筛选customer.subscription.updated事件,适合批量同步多个订阅的变更记录:

  • 调用ListEvents接口,设置参数:
    • type: customer.subscription.updated
    • created[gte]和created[lte]指定查询时间范围
    • data.object.id: 目标订阅ID(可选,单订阅查询)
  • 每个事件的created字段就是变更发生的时间,data.object包含变更后的订阅状态,可验证是否为升级/降级操作

内容的提问来源于stack exchange,提问作者ashemez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 00:25:07