Stripe Webhook 事件 - 匹配客户 ID?

Posted

技术标签:

【中文标题】Stripe Webhook 事件 - 匹配客户 ID?【英文标题】:Stripe Webhook Events - Matching Customer IDs? 【发布时间】:2021-06-11 08:24:07 【问题描述】:

我正在使用stripe listen --forward-to ... 在本地测试订阅产品并触发事件。我相信我的端点设置正确,因为它可以侦听和接收事件。

问题:事件中的客户 ID 不匹配。

例如customer.created中的id是cus_J6l***Yu0

customer.subscription.created中的id是cus_J6l***yVb

另外,customer.subscription.createdcustomer.subscription.updated 中的订阅 ID 不匹配。分别为sub_J6l***ikYsub_J6l***ufT

我不清楚如何将这些事件相互关联。在生产环境中,我可以让许多不同的客户同时创建订阅。我的期望是有一个键可以关联客户和他们创建的订阅(或订阅和订阅更新)。

【问题讨论】:

【参考方案1】:

每个Subscription 完全由一个Customer 拥有,请参阅https://stripe.com/docs/api/subscriptions/object#subscription_object-customer。但是,Customer 可以有一个或多个Subscription,这可能解释了为什么您会看到订阅 ID 不同,即针对不同的Subscription 触发事件但针对相同的Customer。要查看给定CustomerSubscriptions 的完整列表,请参阅https://stripe.com/docs/api/customers/object#customer_object-subscriptions(注意这是一个expandable 字段)。

【讨论】:

这个答案是正确的。一个客户拥有每个订阅,但一个客户可以拥有多个订阅。 ID 会匹配,只是飞行中的对象比预期的要多。

以上是关于Stripe Webhook 事件 - 匹配客户 ID?的主要内容,如果未能解决你的问题,请参考以下文章

如何在Stripe PHP和webhook中使用好事件,比较收到的付款数量并取消订阅

为啥 Stripe 事件不会触发并且不会被 webhook 接收?

Stripe webhook 错误:未找到与有效负载的预期签名匹配的签名

如何让 Stripe 手动将事件重新发送到 webhook

为幂等性保留 Stripe webhook 事件记录多长时间?

Stripe 订阅 webhook 缺少元数据和 client_reference_id