Stripe 会话仅适用于连接的帐户,但不适用于平台帐户

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

在使用 Stripe Connect 的 Stripe 平台应用程序中,我们有一个用于该平台的 Stripe 帐户,并且有一个用作连接帐户的测试帐户。在我们的服务器代码中,使用平台 API 密钥启动会话并将 RequestOptions 中的 StripeAccount 设置为连接的帐户。测试付款完成,然后将用户重定向到包含 sessionId 作为查询参数的 SuccessUrl。 successURL 位于平台网站上,并且具有可以访问平台 API 密钥(而不是连接的帐户 API 密钥)的后端。 当我们尝试使用平台的 API 密钥检索会话以在数据库中标记成功支付时,Stripe 会说“没有这样的 checkout.session”。如果我们尝试使用平台 API 密钥列出所有会话,则会返回零。但是,在我们的测试中,我们发现,如果我们使用连接帐户中的 API 密钥来检索会话或列出所有结帐会话,我们可以检索结帐会话并列出所有结帐会话。平台如何使用平台的 API 密钥以及成功 URL 中的会话 ID 来处理结帐会话的完成?我们是否应该作为 SuccessUrl 模板的一部分发送一些值,以便平台可以处理它作为会话完成的一部分?

stripe-payments
1个回答
0
投票

您应该使用您的平台密钥和设置为连接帐户 ID 的 Stripe-Account 选项来调用 CheckoutSession 检索端点。

如果您需要知道传入的成功 URL 命中是针对哪个帐户,请考虑类似的方法

  • 创建 CheckoutSession 时将帐户 ID 放入
    successURL
    中,然后在点击 URL 时即可提取它
  • 将 CheckoutSession ID 放入服务器中也包含帐户 ID 的数据库/键值存储中,并进行检查
  • 在 SuccessURL 中放入一些值,例如“&order_id=1234”,然后您可以在数据库中查找该值,订单上下文的一部分是帐户 ID
© www.soinside.com 2019 - 2024. All rights reserved.