您可以根据客户 ID 重定向结帐会话吗?

问题描述 投票:0回答:1

我正在使用 Stripes 的“仅限一项订阅”功能。它创建并将客户重定向到门户会话,但它使用电子邮件而不是用于生成结帐会话的客户 ID。

我有一项通过条带提供订阅的服务。当客户创建帐户时,它会自动生成条带客户 ID 并为该用户存储它。当他们去订阅时,后端服务器会使用他们的客户 ID 生成结帐会话。

我想使用 stripe 的“仅限一次订阅”功能,因为它很方便并且消除了一些潜在的麻烦。如果订阅的用户点击结账链接,系统会将他们重定向到计费门户,在那里他们可以管理订阅。我的问题是,它似乎依赖于与客户 ID 关联的电子邮件,而不是客户 ID 本身。

这是一个问题,因为同一电子邮件可以用于多个客户,并且它似乎会选择该电子邮件最近生成的客户 ID,而不是与结账会话绑定的客户 ID。有没有办法确保为重定向生成的门户会话特定于结帐会话的客户 ID。我不希望客户使用与我的服务相同的电子邮件来处理 stripe,而且我不想在内部管理所有这些。

我的替代方案似乎是让后端根据客户 ID(如果可能的话)生成门户会话链接,以代替结帐会话链接(如果用户已订阅)。这并不完美,并且实际上不能处理用户尝试订阅两次的情况。

stripe-payments
1个回答
0
投票

是的,这是可能的。

  1. 创建 CheckoutSession 时指定 customer。如果您尚未创建客户,请先创建
  2. success_url
    末尾附加 ?session_id={CHECKOUT_SESSION_ID}。 Stripe 会将实际的结账会话 ID 替换为
    {CHECKOUT_SESSION_ID}
  3. 当您的客户完成结账并重定向到
    success_url
    时,您的服务器可以从 URL 的查询参数中检索结账会话 ID
  4. 根据 Checkout Session ID,您的服务器可以检索 Checkout Session 对象,获取其客户,并返回自定义的成功页面。

您可以阅读此doc以了解有关如何自定义结账重定向行为的更多信息。

© www.soinside.com 2019 - 2024. All rights reserved.