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

如何在WordPress中创建适配Clickfunnels的自定义webhook端点

问题排查与修正方案

你遇到的问题由多个配置错误共同导致,对应修复方案如下:

存在的问题点

  • 端点路径不匹配:官方要求的路径是根目录下的/funnel_webhooks/test,你当前使用的是WordPress默认REST API前缀的/wp-json/funnel-webhooks/test,路径不一致导致Clickfunnels无法找到端点
  • 重复序列化JSON:WP_REST_Response会自动将数组转为JSON格式,你两次调用json_encode会导致返回内容是双重转义的字符串,不符合JSON对象要求
  • 时间格式错误:你用gmdate('Y-m-d H:i:s e')生成的时间后缀为时区偏移量(如+00:00),官方要求后缀为固定UTC字符串
  • 签名计算规则错误:你拼接的内容缺少URL的https://前缀,且要求是完整URL + 完整payload JSON字符串计算MD5,你当前仅拼接了time字段的值,签名不匹配
  • 未显式声明Content-Type头:部分服务器配置可能修改WordPress默认返回头,需要显式指定避免异常

修复代码示例

推荐使用更稳定的直连路径方案,不需要依赖WordPress REST API规则:

add_action('template_redirect', 'ffalcon_funnel_webhooks_test');
function ffalcon_funnel_webhooks_test() {
    // 精准匹配官方要求的路径
    if ($_SERVER['REQUEST_URI'] !== '/funnel_webhooks/test') {
        return;
    }
    // 生成符合格式的UTC时间
    $time_str = gmdate('Y-m-d H:i:s') . ' UTC';
    $payload = [
        'time' => $time_str
    ];
    $payload_json = json_encode($payload);
    // 拼接完整请求URL
    $full_url = (is_ssl() ? 'https://' : 'http://') . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
    // 计算符合要求的签名
    $delivery_id = md5($full_url . $payload_json);
    // 输出响应头
    header('Content-Type: application/json');
    header('X-Clickfunnels-Webhook-Delivery-Id: ' . $delivery_id);
    // 输出响应体
    echo $payload_json;
    exit;
}

注意事项

添加代码后可先通过curl工具本地测试返回的头信息、body格式是否符合要求,确认无误后再到Clickfunnels后台触发测试。

内容的提问来源于stack exchange,提问作者Francisco Javier Falcon Ortiz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 04:51:03