我目前正在尝试仅使用客户端流程实施新的Beta Stripe结帐,并且正在努力如何最好地将Stripe客户与数据库中的用户进行匹配,并检索有关订阅的信息,例如结束日期等
从文档中,我可以知道,使用新的checkout_beta.session_succeeded
Webhook端点,我可以传递一个client_reference_id
参数,这将成为我的customer_id。该端点还提供了订阅的ID。因此,我可以查询订阅API,以提供所需的数据。
但是,webhook在此之前已经使用我需要的所有信息调用了customer.subscription.created
事件,除了它不包含我的reference_id,只是对条带customer_id
的引用。
调用一个我已经收到信息的API似乎很愚蠢,但是除了stripe_customer_id之外,我无法将它们匹配:
a)使用subscription_id调用Stripe API或
b)创建自己的间歇性数据库表来存储stripe_customer_id和订阅信息,然后在checkout_beta.session_succeeded
方法上将customer_id与client_reference_id匹配,然后相应地更新我的用户表。
这里是否有最佳方法或指南?我在想也许应该有一个单独的user_subscription表,而不是现在与用户一起存储它,但这将需要对许多现有的sql查询进行一些重写。