【发布时间】:2021-09-15 17:55:04
【问题描述】:
我设置了三个站点。我的本地开发 (dev) 环境,一个测试/qa 站点,用于更广泛地验证更改,然后是生产 (prod)。
对于开发人员,开发环境是在 Macbook Pro 和 MAMP Pro 上运行的 Codeigniter 4。在这里测试 Stripe,我正在使用 Stripe 命令行并使用“listen --forward-to”选项进行转发 webhook。这工作得很好。
对于 prod,环境是 Linux 上的 Codeigniter 4,在基于云的虚拟服务器上运行 LAMP 堆栈。我还没有将 Stripe 代码移到 prod,因为它没有经过全面测试/验证。但我怀疑它会很好,因为那里的一切都是可见的并且可供所有网络流量使用。问题在于测试......
为了测试,环境是 Linux 上的 Codeigniter 4,在基于云的虚拟服务器上运行 LAMP 堆栈。为了在我们验证时防止窥探(和机器人)测试服务器,我在测试站点所在的根目录中设置了 htaccess 密码。
在 Stripe 中,我为测试服务器 URL 设置了一个 webhook,其中 webhook 代码将被触发。当我尝试从 Stripe 开发人员仪表板发送测试 webhook 事件时,我收到所有事件返回的错误 401。 htaccess 身份验证是否阻止了 webhook 被看到?
如果是这样...我有什么选择?
- 在测试服务器上安装 Stripe Cmd Line 并将其设置为“listen --forward-to”到正确的 URL?
- 如果是这样,有没有办法将其设置为后台进程,使其始终运行?出于验证目的,此测试服务器的正常运行时间预期应与我们的 prod 服务器相同。
- 或者,有没有办法设置 webhook 的身份验证?
- 其他?
感谢任何指导。
【问题讨论】:
-
看看这个httpstatuses.com/401。
-
@Grumpy -- 是的......我知道状态 401 是什么。我的问题的要点是 htaccess 是否是导致 401 的原因......如果是这样,解决它的正确方法是什么。通过设置另一个持久监听进程或是否可以通过 Stripe 设置身份验证。
-
“htaccess 身份验证是否会阻止 webhook 被看到?” - “看到”是一种奇怪的措辞,但是是的,它当然会回答如果没有通过有效凭据,则请求 401 Forbidden。 “有没有办法设置 webhook 的身份验证?” - 在您配置 webhook 设置的地方检查 stripe,它们是否提供任何方式来提供 HTTP 身份验证凭据。如果他们不这样做 - 那么您将为此特定 URL 创建一个例外,以便 无需 凭据即可访问它。
标签: php stripe-payments webhooks codeigniter-4