我正在使用 Stripes 的“仅限一项订阅”功能。它创建并将客户重定向到门户会话,但它使用电子邮件而不是用于生成结帐会话的客户 ID。
我有一项通过条带提供订阅的服务。当客户创建帐户时,它会自动生成条带客户 ID 并为该用户存储它。当他们去订阅时,后端服务器会使用他们的客户 ID 生成结帐会话。
我想使用 stripe 的“仅限一次订阅”功能,因为它很方便并且消除了一些潜在的麻烦。如果订阅的用户点击结账链接,系统会将他们重定向到计费门户,在那里他们可以管理订阅。我的问题是,它似乎依赖于与客户 ID 关联的电子邮件,而不是客户 ID 本身。
这是一个问题,因为同一电子邮件可以用于多个客户,并且它似乎会选择该电子邮件最近生成的客户 ID,而不是与结账会话绑定的客户 ID。有没有办法确保为重定向生成的门户会话特定于结帐会话的客户 ID。我不希望客户使用与我的服务相同的电子邮件来处理 stripe,而且我不想在内部管理所有这些。
我的替代方案似乎是让后端根据客户 ID(如果可能的话)生成门户会话链接,以代替结帐会话链接(如果用户已订阅)。这并不完美,并且实际上不能处理用户尝试订阅两次的情况。
是的,这是可能的。
success_url末尾附加
?session_id={CHECKOUT_SESSION_ID}
。 Stripe 会将实际的结账会话 ID 替换为 {CHECKOUT_SESSION_ID}
success_url
时,您的服务器可以从 URL 的查询参数中检索结账会话 ID 您可以阅读此doc以了解有关如何自定义结账重定向行为的更多信息。