在使用 Stripe Connect 代表客户收款的平台上,当进行测试模式付款交易时,Stripe 会调用实时模式 Webhook。我希望它调用测试模式 webhooks 进行测试付款。
我们有一个简单的本土售票平台,允许人们注册帐户并出售活动门票。该平台使用 Stripe 处理付款,并为我们的客户设置 Stripe 连接帐户(Stripe 称之为)。我们的平台监听来自 Stripe 的 webhook 调用来处理支付结果。我为实时模式和测试模式并行设置了 webhook。
(如果您不知道这是如何工作的...票务平台有一个主要的 Stripe 账户,然后我们客户的账户连接到该账户。当发生付款时,平台会对平台的 API 进行调用Stripe 账户,指定接收付款的客户账户,资金转到后者的平台账户中设置的 Webhooks。)
我的问题是,当客户端接受付款并且 Stripe 触发 Webhook 时,无论付款是实时模式还是测试模式,它似乎都在使用实时模式 Webhook。我已确定付款是测试付款:
PaymentIntent
时使用了正确的测试模式 API 密钥。但是,Stripe 仍在为这些测试交易调用实时模式 Webhook。
这是预期的行为吗?有没有办法说服它使用测试模式 webhooks?
Stripe 在其 Connect webhook 文档中明确指出了这一点
对于 Connect webhook,需要注意的是,虽然只有测试 webhook 会发送到您的开发 webhook URL,但实时和测试 webhook 都将发送到您的生产 webhook URL。这是因为您可以在生产应用程序下执行实时交易和测试交易。因此,我们建议您在接收事件 Webhook 时检查 livemode 值,以了解应采取什么操作(如果有)。
您应该遵循建议并检查
Webhook 事件对象上的
livemode
值以确定它是实时还是测试模式事件。