29

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

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

4

10 回答 10

35

Stripe 现在有一个官方工具,Stripe CLI 使这变得简单(但仍然需要安装另一个工具)。

请参阅下面的答案官方 Stripe CLI 文档

或者,实现此目的的另一种方法是使用http://www.ultrahook.com,它允许您在 localhost 上接收 webhook。此替代方案适用于所有 webhook,而不仅仅是 Stripe 的

于 2013-07-16T15:01:49.817 回答
30

如何使用 ngrok 并设置 Stripe Webhooks url

来源链接

  1. 首先下载ngrok并解压到你的电脑上
  2. 双击 ngrok.exe
  3. 尝试在此终端提示符下键入ngrok.exe http 80以公开端口 80

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

  5. 只需将您的 ngrok url 指定为您的 webhooks 服务的端点,您就差不多完成了。

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

它对我来说很好。

更多详情请点击这里

于 2016-12-21T14:42:15.260 回答
28

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

在这种情况下,您只需执行以下操作即可将您的 Stripe 事件检测到您的本地 webhook 处理程序代码:

stripe listen --forward-to localhost/stripe/webhook.php
于 2019-09-24T05:02:23.353 回答
5

不,这行不通。Stripe 服务器必须能够联系您的服务器以发送 webhook。Stripe 不知道如何联系您的“本地主机”。您需要一个可访问网络的地址或 IP 地址才能正常工作

于 2013-03-14T19:16:21.693 回答
3

尝试使用条带 CLI:

在这里,您可以将事件转发到您的 Localhost 服务器。

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

于 2021-02-18T04:55:24.790 回答
2

更简单的是,在本地运行时将此端点添加到您的应用程序中(而不是在产品中!):

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。

于 2019-09-03T08:23:03.910 回答
1

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

* 编辑 *

这仅适用于测试。

于 2014-09-19T10:02:48.587 回答
0

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

于 2013-03-17T04:16:39.217 回答
0

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

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

于 2021-01-22T06:15:29.437 回答
0

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

安装expose.sh

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

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

将您的 api 暴露给网络

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

Expose.sh 将生成一个随机的公共 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。我在这里写了一个完整的指南

免责声明:我构建了expose.sh

于 2020-07-13T10:12:24.783 回答