格子网钩不开火

时间:2018-08-28 18:22:35

标签: javascript node.js ejs webhooks plaid

我正在尝试将Plaid交易Webhook集成到api中,似乎很难触发任何Webhook。我使用了格子快速入门代码,并添加了webhook参数:

Plaid.create({
    apiVersion: "v2",
    clientName: "Plaid Walkthrough Demo",
    env: "<%= PLAID_ENV %>",
    product: ["transactions", "auth"],
    webhook: "http://localhost:3000/api/plaid/webhook",
    key: "<%= PLAID_PUBLIC_KEY %>",//...

在接收端,我只是记录req.body以查看是否已触发webhook:

  app.post("/api/plaid/webhook", (req, res) => {
  console.log("WEBHOOK FIRED");
  console.log(JSON.stringify(req.body));
});

当我在邮递员中测试路线时,req.body已按预期记录,但是在创建新的PLAID项时却无法正常工作。我目前正在沙盒模式下工作

3 个答案:

答案 0 :(得分:1)

写了对Plaid的支持,但之所以不起作用,是因为localhost:3000不是有效的URL。一旦我在实际的服务器上尝试过,它就会起作用。

答案 1 :(得分:0)

就像提到的格子支持一样,localhost:8000不是公共URL,因此格子看不到它。

但是,很容易使用Exposure.sh为localhost提供公共URL。然后,您可以在本地测试Webhook。

安装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

然后,您可以使Plaid使用公共HTTPS URL,该URL将转发到localhost。

我已经写了完整的指南here

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

答案 2 :(得分:-1)

您已经发现自己了,因为localhost:3000是不公开的(对Plaid可见),它将无法正常工作。

当我想在本地测试Webhook时,通常会使用以下用户服务:

https://postb.in

https://webhook.site