invoice.created 的日期时间,即使在 Stripe 中也是如此
The date-time of invoice.created even in Stripe
有没有办法确定事件 invoice.created
发生的确切日期和时间,给定发票?
例如:
inv = Stripe::Invoice.retrieve(....)
# when did `invoice.created ` occurred for "inv"?
据我所知,period_end
反映了 invoice.payment_succeeded
的日期时间。我想我可以用 period_end
减去 1 小时(如文档所述),但 1 小时不是准确时间,我在某处读到它是几个小时,更重要的是可能有失败的尝试向用户收费,因此它们之间可能会有额外的 延迟 ,所以仅减去 1 小时并不能给我 invoice.created
的确切时间
这里最简单的解决方案是使用 webhook 监听 invoice.created
事件并将 created
值(或至少是事件 ID)存储在您的数据库中。
您是正确的,发票将在一小时后关闭,但只有在所有 webhook 成功向请求返回 200
响应代码后才会关闭。否则,webhook 将每隔 3 天每小时重新发送一次,直到在发票关闭之前成功 [1].
否则您可以使用 List Events API 并使用 created
参数按日期过滤事件,并且 type
您可以在其中放置 invoice.created
并允许您找到事后事件并检索 created
值。
您还可以查看 Invoice 对象上的 webhooks_delivered_at
字段,但如果您的 webhook 在首次交付时由于某种原因失败,那将不起作用。
有没有办法确定事件 invoice.created
发生的确切日期和时间,给定发票?
例如:
inv = Stripe::Invoice.retrieve(....)
# when did `invoice.created ` occurred for "inv"?
据我所知,period_end
反映了 invoice.payment_succeeded
的日期时间。我想我可以用 period_end
减去 1 小时(如文档所述),但 1 小时不是准确时间,我在某处读到它是几个小时,更重要的是可能有失败的尝试向用户收费,因此它们之间可能会有额外的 延迟 ,所以仅减去 1 小时并不能给我 invoice.created
这里最简单的解决方案是使用 webhook 监听 invoice.created
事件并将 created
值(或至少是事件 ID)存储在您的数据库中。
您是正确的,发票将在一小时后关闭,但只有在所有 webhook 成功向请求返回 200
响应代码后才会关闭。否则,webhook 将每隔 3 天每小时重新发送一次,直到在发票关闭之前成功 [1].
否则您可以使用 List Events API 并使用 created
参数按日期过滤事件,并且 type
您可以在其中放置 invoice.created
并允许您找到事后事件并检索 created
值。
您还可以查看 Invoice 对象上的 webhooks_delivered_at
字段,但如果您的 webhook 在首次交付时由于某种原因失败,那将不起作用。