You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Heroku接收第三方Webhook遇403问题求助(新手)

解决Heroku接收第三方Webhook的403问题

核心误区先理清

你搞错了Heroku官方App Webhooks的用途:它是Heroku向你的应用发送自身事件通知的机制,不是用来让你接收第三方Webhook的工具。你需要自己在Heroku部署的应用代码里写一个自定义Webhook接收端点。


具体解决步骤

1. 在应用代码中编写自定义Webhook端点

以Node.js/Express为例,写一个带签名验证的端点(适配第三方的签名规则):

const express = require('express');
const app = express();
const crypto = require('crypto');
// 用你Heroku配置里的webhook_secret当验证密钥
const WEBHOOK_SECRET = process.env.webhook_secret;

// 解析原始请求体(签名验证需要用未解析的原始内容)
app.use(express.raw({ type: 'application/json' }));

// 自定义端点路径,比如 /webhook
app.post('/webhook', (req, res) => {
  // 替换成第三方实际的签名获取方式(可能在请求头或Payload里)
  const receivedSignature = req.headers['x-thirdparty-signature'];
  if (!receivedSignature) {
    return res.status(403).send('Missing signature');
  }

  // 按照第三方的签名规则生成校验签名
  const hmac = crypto.createHmac('sha256', WEBHOOK_SECRET);
  const expectedSignature = hmac.update(req.body).digest('hex');

  // 比对签名
  if (receivedSignature !== expectedSignature) {
    return res.status(403).send('Invalid signature');
  }

  // 签名验证通过,执行你的REST API请求
  fetch('https://你的目标API地址/端点', {
    method: 'POST',
    body: JSON.parse(req.body),
    headers: { 'Content-Type': 'application/json' }
  })
  .then(() => res.status(200).send('处理完成'))
  .catch(err => {
    console.error('API请求失败:', err);
    res.status(500).send('内部错误');
  });
});

// 监听Heroku分配的端口
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => console.log(`服务运行在端口 ${PORT}`));

2. 配置Heroku部署文件

确保项目根目录有Procfile,内容如下:

web: node server.js

(把server.js换成你的实际入口文件名)

3. 部署代码到Heroku

用Git推送代码:

git add .
git commit -m "添加Webhook接收端点"
git push heroku main

4. 适配第三方签名规则

第三方说Payload内有签名机制,你需要确认:

  • 签名是基于整个Payload还是特定字段生成的?
  • 签名使用的哈希算法(如SHA256、MD5)是什么?
  • 签名放在请求头还是Payload的某个字段里?
    根据这些信息调整代码里的签名验证逻辑,这是解决403的关键。

5. 测试端点

部署完成后,你的有效端点是https://myapp.herokuapp.com/webhook(和你代码里写的路径一致),用Postman或curl测试:

  • 携带正确签名的请求会返回200
  • 签名错误/缺失的请求会返回403,这是正常的安全验证

内容的提问来源于stack exchange,提问作者apatik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 00:13:23