【问题标题】:Find invoice.payment_succeeded against subscription id根据订阅 ID 查找 invoice.payment_succeeded
【发布时间】:2019-12-28 18:07:37
【问题描述】:

我的网站关闭了一周,并且在这一周内完成了很少的订阅分期付款。但我的网站没有捕捉到这一点(使用 invoice.payment_succeeded 的网络挂钩)。

我查询了我的数据库并拥有订阅 ID。 但是我如何获得触发 invoice.payment_succeeded 的事件。这样我就可以将相同的方法传递给 web-hook 方法并且数据库将被更新。

  • 首先我使用订阅 ID 进行查询。 https://api.stripe.com/v1/subscriptions/sub_XXXXXX我得到发票ID

  • 第二次我使用发票 ID 进行查询。 https://api.stripe.com/v1/invoices/in_XXXXXX 并得到 ​​p>

       "status_transitions": {
           "finalized_at": 1565706891,
           "marked_uncollectible_at": null,
           "paid_at": 1565706893,
           "voided_at": null
        },
    

    这表明已付款。

  • 然后我用付费日期(时间戳)查询第三次

https://api.stripe.com/v1/events?created=1565706893&type=invoice.payment_succeeded

并在该日期为 invoice.payment_succeeded 响应触发事件。

但有时,我找不到在“paid_at”期间创建的任何事件:1565706893,值。 我在这里想念什么。或者是否有任何替代解决方案可以使用订阅 ID 查找类型 invoice.payment_succeeded 的事件 ID。

【问题讨论】:

  • 嗨,Paul,使用 Stripe 的 /v1/events 列表 API 是正确的。您需要提供两个参数 1.` type` -> 指定为invoice.payment_succeeded 2. 要缩小事件范围,请使用created 范围。注意 created 是一个可以指定 {gt, lt} 的范围。但是,在您的查询中,您只指定了一个时间点。默认情况下,每个 API 调用列表返回 10 个事件,您需要执行分页来提取所有页面的数据。 (Stripe-PHP 支持 stripe.com/docs/api/pagination/auto?lang=php 等自动分页)

标签: php stripe-payments payment-gateway


【解决方案1】:

https://api.stripe.com/v1/subscriptions/sub_XXXXXX 只会获取 latest_invoice id。您确定您使用了正确的发票 ID。

如果您只想关联事件 id https://api.stripe.com/v1/events?related_object= SUBSCRIPTIONID&type=invoice.payment_succeeded,您也可以试试这个

您可以在此处找到为特定订阅创建的所有成功事件。希望对你有帮助。(不知道是不是官方的,没找到,但你可以试试)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-08
    • 2017-11-22
    • 2017-06-06
    • 2022-01-01
    • 1970-01-01
    • 2020-01-30
    • 1970-01-01
    • 2014-06-13
    相关资源
    最近更新 更多