是否可以将localhost设置为Stripe webhook URL?

时间:2013-03-12 09:21:11

标签: php stripe-payments webhooks

我正在使用Stripe创建支付网关。

我想将我的localhost网址localhost/stripe/webhook.php设置为我的webhook网址。是否可以将localhost地址设置为webhook URL?这将用于创建在Stripe中每次成功收费时触发的邮件服务。

10 个答案:

答案 0 :(得分:21)

查看允许您在localhost上接收webhook的http://www.ultrahook.com

答案 1 :(得分:19)

如何使用ngrok并设置Stripe Webhooks网址

Source Link

  1. 首先下载ngrok并将其解压缩到您的计算机上
  2. 双击ngrok.exe
  3. 尝试在此终端提示符下键入 ngrok.exe http 80 以公开端口 80

  4. 例如,如果我们在localhost上有Stripe webhooks url就像这样 http://localhost/stripeproject/webhook.php

  5. 只需使用您的webhook指定您的ngrok网址作为端点 服务,你差不多完成了。

  6. 您可以设置此网址 http://f253021b.ngrok.io/stripeproject/webhook.php发送测试 webhooks到您帐户中的集成终端 webhooks设置。

  7. 这对我来说很好。

    更多详情click here

答案 2 :(得分:7)

现在有了另一种选择:您现在可以使用the Stripe CLI在本地无缝测试webhook,而无需第三方工具。

在这种情况下,您只需执行something like this即可将Stripe事件浏览到本地Webhook处理程序代码:

stripe listen --forward-to localhost/stripe/webhook.php

答案 3 :(得分:3)

不,这不会奏效。条带服务器必须能够联系您的服务器以发送webhook。 Stripe将不知道如何联系您的“localhost”。您需要一个可通过Web访问的地址或IP地址才能使用

答案 4 :(得分:3)

尝试使用条纹 CLI:

在这里您可以将事件转发到您的本地主机服务器。

https://stripe.com/docs/webhooks/test

答案 5 :(得分:1)

就像马特说的那样,你需要把它放在网上 - 最好是使用https://。为了您的参考,我在2个月前在这里发布了一个示例邮件webhook:https://github.com/pnommensen/Stripe-Webhook-Emails

答案 6 :(得分:1)

可以将webhook发送到您的本地主机。查看" ngrok",当你运行它打开一个端口到公共互联网访问并提供一个可以访问你的本地主机的URL。获取此网址并将其设置为您的webhook地址,并通过将其指向您的webhook.php文件来完成网址。

*编辑*

这仅适用于测试。

答案 7 :(得分:0)

更简单的是,在本地运行时将此端点添加到您的应用中(不在prod中!)

const eventsSeen = new Set();

app.post("/test/simulate-stripe-webhook", async (req, res) => {
  const events = await stripe.events.list({ limit: req.query.limit || 10 });
  for (const event of events) {
    if (eventsSeen.has(event.id)) continue;
    await processStripeEvent(event);
    eventsSeen.add(event.id);
  }
  return res.status(200).end();
});

... processStripeEvent是您的Webhook触发的逻辑。

然后,无需在条带中管理Webhook。

答案 8 :(得分:0)

您可以使用Exposure.sh通过公共HTTPS URL公开服务器。

安装Exposure.sh

对于Mac或Linux,请转到Expose.sh,然后将显示的安装代码复制/粘贴到终端中。

对于Windows,请转到Expose.sh,下载二进制文件并将其放在PATH中。

将您的api暴露在网络上

启动您的API服务器。然后运行expose <port>,其中port是您的API服务器运行的端口,例如80或8080。

Expose.sh将生成一个随机的公共暴露URL。您会看到类似

的输出
https://s3rh.expose.sh is forwarding to localhost:80
http://s3rh.expose.sh is forwarding to localhost:80

然后,您可以让Stripe使用公共HTTPS URL,该URL将转发到localhost。 我已经写了完整的指南here

免责声明:我建立了Exposure.sh

答案 9 :(得分:0)

是的,可以在本地主机上测试条形网络钩子 转到此 URL https://dashboard.stripe.com/test/webhooks/ 并打开您的端点 对于即 https://test.com/api/StripeHook 现在打开您的 Webhook 尝试,通过剥离并复制所有 json 代码成功。

现在在本地主机中运行您的项目并打开邮递员并点击 https://localhost/api/StripeHook 并将所有复制的 json 文本放入邮递员的正文数据中。