为 Stripe Webhooks 实施租户验证

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

我目前正在开发 SaaS 应用程序,并使用 Stripe 进行支付处理。我的应用程序的性质是基于订阅的,这意味着客户需要为定期服务付费。为了维护多租户,我实现了一种基于模式的方法,并且每个传入请求都由称为“x-tenantid”的自定义租户属性进行标识。此属性使我们能够区分各种 API 调用者并执行特定于各自租户的数据库操作。

但是,我遇到了与 Stripe 的 webhooks 相关的挑战。我在应用程序中使用了 10 多个 Webhook,但似乎没有一种简单的方法可以在这些 Webhook 请求中包含自定义标头。这种限制促使我探索替代解决方案。

我考虑过的一个想法是将相关元数据存储在 Stripe 客户记录中。当触发 Webhook 时,我可以检索此元数据并使用它来建立租户上下文以进行进一步处理。我很想知道这种方法是否被认为是最佳实践,或者是否有更合适的解决方案。我们将非常感谢您的见解。

我认为通过在 Stripe 客户记录中存储元数据来在 Stripe Webhooks 中实现租户验证。我希望这种方法能够让我在触发 Webhook 时建立租户上下文,从而实现多租户支持。但是,我想知道这是否是推荐的做法,或者是否有更合适的解决方案。

java stripe-payments multi-tenant
1个回答
0
投票

我认为元数据是最好的主意。

您最初的 Webhooks 计划并非不可能,但存在问题:

其一 - 我认为每个 Stripe 账户的 Webhook 端点限制是 16 个。

这不一定是一个有问题的限制,因为您可能会要求房东为其业务创建一个 Stripe 帐户。
但这会将设置 Webhook 的责任转移给您的房东 - Stripe 不允许您代表连接的帐户创建 Webhook 端点。

您的两个选择是:
-让房东自己创建 Webhook 端点
- 请求他们的秘密 API 密钥来为他们做这件事

顺便说一句,我相信这就是 WooCommerce 的做事方式。
这样做的问题是,您的房东在提供密钥或设置网络钩子时会犯所有可以想象到的错误,所以我会站在最少让他们参与的一边。

这就是为什么我会推荐此应用程序使用元数据而不是 Webhooks。

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