在本地主机上进行自动帐户创建系统的条带集成测试

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

我的任务是创建一个 Stripe 集成解决方案,该解决方案涉及通过 Stripe 从捐赠中获取某些信息,并考虑在捐赠成功完成后能够创建帐户所需的所有事件,或者联系用户并解释其捐赠原因失败的。要求如下:

  • 如果立即捐赠成功,请记下他们的电子邮件、姓名和捐赠金额,并在我们的网站上为他们创建一个帐户。
  • 如果捐赠是异步的并且成功,请执行与上述相同的操作。
  • 如果捐赠是异步的并且失败,请向用户发送一封电子邮件,其中包含捐赠失败的详细信息。

我们不会获取除所列要求所需的任何类型的财务信息或任何其他 PII。以下是我知道我们的 webhook 需要监听的事件:

  • payment_intent.succeeded
  • checkout.session.completed
  • checkout.session.async_payment_succeeded
  • checkout.session.async_payment_failed

相当简单;然而,他们的文档中有大量信息,其中绝大多数对于这样的系统来说是无用的。最重要的是,我的公司刚刚建立了一个新的开发环境,我需要使用它来开发这个系统。不幸的是,它的设置不是很好,因为我们都不是专业的系统管理员。

到目前为止,我已经创建了 webhook、付款链接(立即购买按钮),并尽我所知在开发机器上设置了 CLI(诚然,这并不是那么好,但我遵循了 Stripe 的教程整个情况下的一切)。但我知道它至少部分有效。不过,我只知道它有效,因为我在尝试让 CLI 触发事件无济于事一周后感到沮丧,然后做了一些捏造。我在我们的实时服务器的一个僻静部分创建了一个快速测试页面(我知道,我是一个叛逆者,但我确实有一个理由!)只是测试以确保我没有任何 PHP 错误,并且webhook 完美运行。我什至在测试现场站点上的 Webhook 以及让开发机器监听其自己的 Webhook 时在开发机器上看到了一些响应。因此,实时站点的 Webhook 转发到开发计算机的 Webhook。但是,当仅涉及开发计算机上的 Webhook 时,触发的事件不会得到任何类型的响应。

在开发机器上,我登录并开始聆听,完全按照教程所述操作:

stripe login -i
<I put in the api key>
stripe listen --skip-verify --forward-to http://localhost:42424/path/to/webhook.php
stripe trigger payment_intent.succeeded

我从未收到任何响应或任何表明事件已成功触发的信息。我已经与 Stripe 的支持人员进行了交谈,但到目前为止他们还没有提供任何帮助。正如我上面所说,我唯一一次收到响应是在我测试实时站点的 webhook 时,它也转发到了本地主机。这些回复看起来像这样:

2023-10-25 13:28:11   --> payment_intent.succeeded [evt_...]
2023-10-25 13:28:11            [ERROR] Failed to POST: Post "http://localhost:42424/path/to/webhook.php": dial tcp 127.0.0.1:42424: connect: connection refused

因此,在这种情况下,我真的只有几个问题需要了解此类事情的人提供帮助:

  • 除了上面提到的事件之外,我还需要监听更多的事件吗?
  • 任何人都可以帮助我解决 Stripe CLI 无法正常工作的原因吗?
php stripe-payments e-commerce webhooks
1个回答
0
投票

除了上面提到的事件之外,我还需要监听更多的事件吗?

你不应该需要,不。

任何人都可以帮助我解决 Stripe CLI 无法正常工作的原因吗?

您的 webhook 处理程序的

42424
地址上是否有在端口
http://localhost:42424/path/to/webhook.php
上运行的服务器?不确定这是有意还是无意,但你有
42424
而不是
4242
。您的 CLI 监听器还在运行吗?

如果是这样,我会转储您的网络日志以查看连接被拒绝的原因。 Stripe 似乎正确转发了您的 Webhook,但由于某种原因,您的服务器拒绝接受网络请求。

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