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

Twilio SMS statusCallback无法触发自定义Webhook的问题求助

问题排查:Twilio StatusCallback 自有服务器无响应

你当前使用Twilio发送SMS时,配置statusCallback为自有服务器地址后无任何反应,但使用webhook.site地址正常,可按以下步骤排查:

1. 核对回调地址的拼写与可达性

  • 先检查地址拼写:你的代码中回调文件名是twillioStatusCallback.php,但Twilio的正确拼写是Twilio(少了一个字母w),这可能导致服务器返回404,Twilio无法触发回调。
  • 在本地终端用curl测试地址是否能正常响应:
    curl -I https://XXXXXX.COM/XXX/webhooks/twillioStatusCallback.php
    
    确认返回200 OK,如果返回404/500等错误,先修复服务器端的路径或文件问题。

2. 验证SSL证书有效性

Twilio要求回调地址必须是HTTPS且使用受信任CA颁发的有效证书,自签名证书会被拒绝。直接用浏览器访问你的回调地址,查看证书是否显示"安全"状态,若证书过期或不受信任,需重新配置有效证书。

3. 检查服务器防火墙与安全组

  • 确认服务器的防火墙、云服务商安全组已开放80/443端口,允许外部请求进入。
  • 确保Twilio的IP段被允许访问你的服务器,可在Twilio官方文档中获取其IP范围,将这些IP加入白名单。

4. 调试回调请求记录

修改你的PHP回调文件,增加详细日志并确保返回200响应,以便确认Twilio是否发起了请求:

<?php
// 记录完整请求信息
$logFile = 'twilio_callback_log.txt';
$logContent = date('Y-m-d H:i:s') . "\n";
$logContent .= "请求方法: " . $_SERVER['REQUEST_METHOD'] . "\n";
$logContent .= "请求体: " . file_get_contents('php://input') . "\n";
$logContent .= "请求头: " . print_r(getallheaders(), true) . "\n";
$logContent .= "-------------------------\n";

// 确保文件有写入权限
file_put_contents($logFile, $logContent, FILE_APPEND);

// 必须返回200状态码给Twilio
http_response_code(200);
?>

同时执行chmod 755 twilio_callback_log.txt赋予文件写入权限,避免因权限问题无法生成日志。

5. 查看Twilio控制台的错误日志

登录Twilio控制台,找到对应的SMS消息,查看其状态日志,里面会明确显示回调请求的失败原因(如超时、证书错误、404等),这是最直接的问题定位方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 06:11:27