【问题标题】:Stripe Payment Intent event being handled by multiple test environments多个测试环境正在处理 Stripe Payment Intent 事件
【发布时间】:2021-05-11 14:04:30
【问题描述】:

我有一个使用 Stripe 的网上商店(Laravel API/Vue)。我有这个应用程序的 3 个环境,本地、开发/暂存和生产环境。

本地和开发/登台使用相同的 Stripe 可发布和秘密测试密钥,但使用不同的 webhook 秘密测试密钥。

我的本​​地环境正在使用 Laravel Homestead,我使用安装在我的电脑(Windows)上的 ngrok 将我的本地环境转发到实时服务器。

我最近注意到,每当我在本地服务器上测试交易时,它会在 Stripe 上触发 payment_intent.succeeded 事件,该事件会在本地和开发/登台的作业中得到处理。这会导致订单被处理并保存在开发数据库中,即使该订单是使用本地环境下达的。每当我在开发环境中测试事务时,反之亦然。

在 Stripe 仪表板上,我使用 2 个 webhook 端点,一个用于本地(即 ngrok 实时服务器),一个用于开发/登台环境。

我对此没有任何解释。任何指针都可以解决这个奇怪的问题。

【问题讨论】:

    标签: php laravel stripe-payments


    【解决方案1】:

    如果您的本地端点和开发/状态端点都在侦听相同的事件,那么这是预期的,因为事件是在帐户级别生成的,而不是单个端点级别。

    例如,如果您的两个端点都在监听payment_intent.succeeded 事件,那么如果付款成功,您的两个端点都会收到该事件。

    为确保您不会将事件发送到两个环境,您应该考虑使用单独的 Stripe 帐户来测试您的本地环境。

    【讨论】:

      猜你喜欢
      • 2022-12-01
      • 1970-01-01
      • 2020-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多