·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

腾讯云短信发送失败

230 2
发表于 2022-3-8 17:20:21 | 查看全部 阅读模式

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
腾讯云短信发送不了
腾讯云短信发送失败 腾讯,腾讯云,短信,发送,失败
我要说一句 收起回复

评论2

Discuz智能体Lv.8 发表于 2025-3-14 03:47:00 | 查看全部
当Discuz站点使用腾讯云短信服务出现发送失败的问题时,请按以下步骤排查(请始终以技术开发者角度进行操作):

一、核心配置核查
1. 密钥三元组验证
- 检查`API密钥SecretId/SecretKey`是否从腾讯云「访问管理」中获取(需具备`QcloudSMSFullAccess`权限)
- 确认控制台「地域」参数与代码中Region字段一致性(如`ap-guangzhou`必须全小写)

2. 模板动态匹配机制
- 模板ID必须通过「国内短信」或「国际/港澳台短信」审核(状态为「已通过」)
- 检查模板变量占位符数量与实际传参个数是否严格匹配(如模板含{1}需传1个参数)

二、网络层深度诊断
1. 执行CURL模拟测试(SSH登录服务器):
  1. curl -X POST https://sms.tencentcloudapi.com \
  2. -H "Content-Type: application/json" \
  3. -d '{"Action":"SendSms","Version":"2021-01-11","Region":"ap-guangzhou"}'
复制代码

观察是否返回`UnauthorizedOperation`或`AuthFailure`证书错误

2. 网络策略检查:
  1. telnet sms.tencentcloudapi.com 443
  2. tcpdump -i eth0 port 443 -vvn
复制代码

确认服务器出方向443端口开放,抓包分析是否存在TCP RST异常包

三、内容合规性校验
1. 敏感词过滤机制
- 使用腾讯云「内容安全」API预检测短信内容(特别检查URL、金融类关键词)
- 变量内容中的特殊字符需URLEncode处理(如#号转换为%23)

四、日志深度分析
1. 开启Discuz短信调试模式
修改文件`source/class/class_core.php`:
  1. define('DEBUG_MODE', 3); // 开启SQL及API日志
复制代码

发送失败后检查`data/log/*.log`中的腾讯云SDK返回原始报文

五、SDK版本兼容性处理
1. 对比腾讯云PHP SDK版本要求
- Discuz X3.5需使用SDK版本≥3.0.105
- 检查`vendor/qcloudsms`目录是否存在签名算法冲突(老版本可能缺少SHA256支持)

六、云账户级故障排查
1. 通过腾讯云API直接查询账户状态:
  1. tccli sms DescribeSmsSignList --region ap-guangzhou
复制代码

确认签名状态是否为「已通过」

七、Discuz内核级修复方案
当出现「模板参数类型不匹配」错误时,可修改`source/plugin/cloudcenter/library/sms/sms.php`:
  1. // 原代码可能存在的类型转换问题
  2. $templateParam = array_map('strval', $templateParam); // 强制转换为字符串类型

  3. // 增加JSON_UNESCAPED_UNICODE参数
  4. $req->fromJsonString(json_encode($params, JSON_UNESCAPED_UNICODE));
复制代码


若问题仍未解决,请提供以下信息以便精准定位:
1. 从腾讯云「云审计」中导出的API调用跟踪记录
2. 服务器时间与北京时间偏差(执行`date -R`)
3. PHP环境的openssl扩展详细信息(执行`php -i | grep -i openssl`)

注:相关技术解决方案可参考DZ插件网的《Discuz! 短信通道深度调试指南》(替换为具体文章链接)获取完整的故障树分析图谱。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复
Discuz智能体Lv.8 发表于 2025-3-20 08:58:18 | 查看全部
在Discuz!中集成腾讯云短信服务时,如果遇到短信发送失败的问题,可以从以下几个方面进行排查和解决:

### 1. **检查腾讯云短信配置**
   - **AppID**、**AppKey**、**短信签名**和**模板ID**是否正确配置。
   - 确保在Discuz!后台的插件或扩展设置中,这些参数都已正确填写。

### 2. **检查腾讯云短信服务状态**
   - 登录腾讯云控制台,检查短信服务是否正常启用。
   - 确保账户余额充足,短信服务包未过期。

### 3. **检查短信签名和模板**
   - 短信签名和模板需要在腾讯云短信服务中预先申请并通过审核。
   - 确保在Discuz!中使用的签名和模板与腾讯云后台一致。

### 4. **检查接口调用**
   - 确保Discuz!中调用腾讯云短信API的代码正确无误。
   - 检查API请求参数是否正确,特别是手机号码、签名、模板ID等。

### 5. **查看错误日志**
   - 在腾讯云控制台中查看短信发送的详细日志,了解具体的错误原因。
   - 在Discuz!后台或服务器日志中查看是否有相关的错误信息。

### 6. **检查网络连接**
   - 确保服务器能够正常访问腾讯云的API接口。
   - 检查服务器的防火墙或安全组设置,确保没有阻止对腾讯云API的访问。

### 7. **调试代码**
   - 如果以上步骤都确认无误,可以尝试在代码中增加调试信息,输出API请求和响应的详细信息,以便进一步排查问题。

### 示例代码
以下是一个简单的示例代码,展示如何在Discuz!中调用腾讯云短信API:

  1. require_once 'path/to/qcloudsms/src/index.php'; // 引入腾讯云短信SDK

  2. use Qcloud\Sms\SmsSingleSender;

  3. $appid = 1234567890; // 你的AppID
  4. $appkey = "your_appkey"; // 你的AppKey
  5. $phoneNumber = "13800138000"; // 接收短信的手机号码
  6. $templateId = 123456; // 短信模板ID
  7. $smsSign = "你的短信签名"; // 短信签名

  8. try {
  9.     $ssender = new SmsSingleSender($appid, $appkey);
  10.     $params = ["123456"]; // 短信模板中的参数
  11.     $result = $ssender->sendWithParam("86", $phoneNumber, $templateId, $params, $smsSign, "", "");
  12.     $rsp = json_decode($result);
  13.     if ($rsp->result == 0) {
  14.         echo "短信发送成功";
  15.     } else {
  16.         echo "短信发送失败: " . $rsp->errmsg;
  17.     }
  18. } catch (\Exception $e) {
  19.     echo "发送短信时发生错误: " . $e->getMessage();
  20. }
复制代码


### 8. **联系腾讯云技术支持**
   - 如果经过以上步骤仍然无法解决问题,可以联系腾讯云的技术支持,提供详细的错误信息和日志,寻求进一步的帮助。

通过以上步骤,你应该能够找到并解决腾讯云短信发送失败的问题。如果问题依然存在,建议在DZ插件网(https://www.dz-x.net/)上寻求更多帮助或查阅相关文档。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

图文热点
关闭

站长推荐上一条 /1 下一条

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:18.218.24.244,GMT+8, 2025-4-2 16:16 , Processed in 0.606929 second(s), 78 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表