我知道我可以将
client_reference_id
设置为结帐会话,但我需要根据 webhook 事件上的条带数据来识别我的系统用户:charge.succeeded
、customer.subscription.deleted
和 charge.failed
但这些事件似乎不存储 client_reference_id
我可以简单地使用 stripe 客户 id 将我的系统用户链接到任何 webhook 中的 stripe事件然后我也会
为了避免复杂性,即使在结帐 Webhooks 上也忽略 client_reference_id
管理,以避免复杂性,问题是:客户是否可以删除其 id(由客户或 stripe 而不是开发人员)或在 stripe 生命周期中进行更改?(first_subscription > posterior payments > cancel subscription > resubiscribe
)
即使取消订阅,
customer.id
在订阅的整个生命周期中也不会更改。请记住,客户与订阅紧密结合,因此删除客户将导致其订阅被取消。
之所以
charge.succeeded
、customer.subscription.deleted
和 charge.failed
没有 client_reference_id
,是因为该属性特定于 Stripe Checkout,而不是费用和订阅。
作为依赖
customer.id
的替代方案,您可能需要考虑使用 metadata
属性来存储相关客户信息。更具体地说,请查看下面链接的文档中的“间接设置元数据”部分。
获取
client_reference_id
的另一种方法是 list
所有 Checkout 会话,迭代 Checkout 对象并查找 client_reference_id
。请参阅下面链接的 API 参考指南。
相关链接: