php - 多个测试环境正在处理 Stripe Payment Intent 事件
问题描述
我有一个使用 Stripe 的网上商店(Laravel API/Vue)。我有这个应用程序的 3 个环境,本地、开发/登台和生产。
本地和开发/登台使用相同的 Stripe 可发布和秘密测试密钥,但使用不同的 webhook 秘密测试密钥。
我的本地环境使用 Laravel Homestead,我使用安装在我的电脑(Windows)上的 ngrok 将我的本地环境转发到实时服务器。
我最近注意到,每当我在本地服务器上测试触发payment_intent.succeeded
Stripe 事件的事务时,该事件都会在本地和开发/登台的作业中得到处理。这会导致订单被处理并保存在开发数据库中,即使该订单是使用本地环境下达的。每当我在开发环境中测试事务时,反之亦然。
在 Stripe 仪表板上,我使用 2 个 webhook 端点,一个用于本地(即 ngrok 实时服务器),一个用于开发/登台环境。
我对此没有任何解释。任何指针都可以解决这个奇怪的问题。
解决方案
如果您的本地和开发/状态端点都在侦听相同的事件,那么这是预期的,因为事件是在帐户级别而不是单个端点级别生成的。
例如,如果您的两个端点都在监听该payment_intent.succeeded
事件,那么如果付款成功,您的两个端点都将收到该事件。
为了绝对确保您不会将事件发送到两个环境,您应该考虑使用单独的 Stripe 帐户来测试您的本地环境。
推荐阅读
- python - 从txt文件中获取最后10行并排序
- ansible - Playbook 无法从角色内的循环变量中找到“{{ item }}”
- c++ - 停止 Visual Studio 2019 突出显示光标下单词的出现
- android - 将照片保存到 DCIM 并检索回来时,Android 会丢失 ExifInterface 信息 - api 26
- javascript - 将 python 控制台应用程序转换为 Web 应用程序的最简单方法
- matplotlib - Seaborn kdeplot 更改标题
- javascript - 如果对象 id 在其他对象 id 中有自己的属性,则更改数组中的对象值
- css - 使线性模糊对卡片做出反应
- ksh - 如何在使用 KSH 脚本开发的应用程序中将请求从 GET 转换为 POST?
- django-modeladmin - 从 ModelAdmin 操作访问相关模型字段以导出到 excel