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

C#如何监听并捕获Webhook发送的JSON POST请求

最简可运行ERP Webhook监听方案(Python实现,无额外复杂依赖)

1. 安装基础依赖

只需要安装轻量Web框架Flask即可:
pip install flask

2. 编写监听代码

直接复制以下代码可直接运行,支持单路由接收所有事件、多路由分事件接收两种模式:

from flask import Flask, request, jsonify

app = Flask(__name__)

# 模式1:统一路由接收所有ERP推送事件
@app.route('/erp/webhook/all', methods=['POST'])
def all_event_receiver():
    # 解析ERP推送的JSON数据
    try:
        push_data = request.get_json()
    except:
        # 非JSON格式请求直接返回错误,避免服务报错
        return jsonify({"code": 400, "msg": "invalid json format"}), 400

    # 此处替换为你自己的业务逻辑:比如打印日志、存数据库、触发后续操作
    print(f"收到ERP推送事件,数据内容:{push_data}")

    # 必须返回200状态码,否则ERP会认为推送失败触发重试机制
    return jsonify({"code": 200, "msg": "received"}), 200

# 模式2:分路由单独监听指定事件,示例:单独监听采购单创建事件
@app.route('/erp/webhook/purchase_order_create', methods=['POST'])
def purchase_order_receiver():
    push_data = request.get_json()
    print(f"收到采购单创建事件:{push_data}")
    return jsonify({"code": 200, "msg": "received"}), 200

if __name__ == '__main__':
    # 监听所有网卡请求,端口可自行修改,测试阶段可开debug模式
    app.run(host="0.0.0.0", port=5000, debug=True)

3. 本地测试验证

运行代码后,用curl命令模拟ERP推送,验证服务是否正常:
curl -X POST http://127.0.0.1:5000/erp/webhook/all -H "Content-Type: application/json" -d '{"event":"test","data":{"id":123,"content":"测试数据"}}'
正常情况下服务终端会打印你发送的测试内容,curl会收到成功响应。

4. 对接ERP配置

  • 测试阶段可使用内网穿透工具将本地5000端口暴露到公网,生产环境直接部署到公网服务器即可
  • 进入ERP后台的webhook订阅配置页,将对应事件的推送地址填写为你的公网访问地址+路由,推送格式选择JSON
  • 若ERP要求签名校验,可在代码中新增请求头签名比对逻辑,和本地用约定密钥计算的签名一致再处理数据,不一致直接返回403即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 11:30:03