php5.2版本如何成功调用腾讯云短信API,实现短信发送功能

一、简要说明

  我们在生活中经常会遇到一种情况,当你注册某个平台账户时,只要输入你的手机号码,点击获取验证码,随后就会收到发给你的短信验证码。

  一般来说,实现这种功能都是用阿里云或者腾讯云提供的云短信服务。价格也很便宜,1000条起订,每条0.005元。因为公司的业务需求,最近需要实现这个功能,经过了解后决定使用腾讯云的云短信服务。(其实两个平台价格差不多,但是腾讯云首次开启会免费赠送100条短信,非常适合前期测试,所以理所当然选择了腾讯云。)

  在官方的文档中提供了C#,node.js,Java,Php等各种语言的SDK以及demo,根据实际情况下载了php的demo,按照demo编写我们自己的代码,成功实现了功能。

  但是当将代码上传到服务器后,却一直报错。经过反复的查找,最终发现原来是因为服务器的php版本仅仅是php5.2,而腾讯官方的demo中调用的sdk却用了很多5.3或5.4以上才支持的语法。最坑爹的是我们的空间服务商php版本也无法升级,所以逼不得已只能从腾讯的sdk想办法了。

二、解决办法

  知道了报错的原因,解决的方法也就很容易想到了。既然是因为php版本较低,那我们的解决思路就是看腾讯云的sdk中用了哪些php5.2不支持的语法,我们想办法找出来然后全部改成php5.2支持的写法。

1. 魔法变量_DIR_不可用

app.php

1 require __DIR__ . "/../../src/index.php";

index.php

 1 require_once __DIR__ . "/SmsSenderUtil.php";
 2 require_once __DIR__ . "/SmsSingleSender.php";
 3 require_once __DIR__ . "/SmsMultiSender.php";
 4 require_once __DIR__ . "/SmsStatusPuller.php";
 5 require_once __DIR__ . "/SmsMobileStatusPuller.php";
 6 require_once __DIR__ . "/SmsVoicePromptSender.php";
 7 require_once __DIR__ . "/SmsVoiceVerifyCodeSender.php";
 8 require_once __DIR__ . "/VoiceFileUploader.php";
 9 require_once __DIR__ . "/FileVoiceSender.php";
10 require_once __DIR__ . "/TtsVoiceSender.php";

  查看demo中的文件可以发现,app.php以及index.php文件都使用了_DIR_这一魔法变量,可以获取到文件的绝对路径。

  但是该魔法变量只有在php5.4以上才支持,我们将所有相关代码修改成如下写法:

  通过dirname(_FILE_)达到相同的效果

require_once dirname(__FILE__) . "/SmsSingleSender.php";

2.命名空间不可用

例:SmsMultiSender.php

 1 namespace Qcloud\Sms;
 2
 3 use Qcloud\Sms\SmsSenderUtil;
 4
 5 /**
 6  * 群发短信类
 7  *
 8  */
 9 class SmsMultiSender
10 {
11     private $url;
12     private $appid;
13     private $appkey;
14     private $util;

  命名空间namespace在php5.2中也是不可以使用的,use这个关键词不用说肯定也是不能使用的,所以程序中类似上图第1行和第3行的代码统统需要删除掉。

3.构造空函数时的区别

$data = new \stdClass();

  在php5.2中,构造空函数直接用 new stdClass(),不用加反斜杠,把代码中构造空函数的反斜杠全部删除掉。

三、检查成果

  经过上面对腾讯云官方sdk代码的全面修改,现在把你的代码上传到服务器上。好了,你已经可以在php5.2版本的服务器上成功调用腾讯云短信API。

原文地址:https://www.cnblogs.com/Jasonhuangdc/p/9254424.html

时间: 2024-10-28 11:24:18

php5.2版本如何成功调用腾讯云短信API,实现短信发送功能的相关文章

Python调用腾讯云短信接口

现在通过后台系统自动发短信的需求越来越多,主要用于验证码的发送或者项目监控异常时的报警提醒等等,由于之前有用到部分所以记录一下供以后使用.但是现在腾讯云的短信功能还在内测阶段,所以还有很多功能仍在Awaiting. 首先当然是登录腾讯云首页https://www.qcloud.com/product/sms.html点击“立即选购”后会跳出以下的页面: 由于是内测,所以点击“服务开通指南”,就会让你写封邮件给腾讯,把你的情况按照模板一五一十地balabala给他, 然后腾讯审核完之后终于可以使用

.NET Core HttpClient调用腾讯云对象存储Web API的"ERROR_CGI_PARAM_NO_SUCH_OP"问题

腾讯云提供的对象存储(COS)C# SDK 是基于 .NET Framework 用 WebRequest 实现的,我们直接将这个实现迁移到 .NET Core 是可以正常调用,但后来我们基于 HttpClient 实现,调用 web api 时总是返回 "ERROR_CGI_PARAM_NO_SUCH_OP" 错误. 用 Wireshark 抓包后发现,基于 WebRequest 的实现的请求包开头比基于 HttpClient 的实现多了个 "Preamble: 0d0a&

行云管家堡垒机 导入腾讯云主机

行云管家堡垒机 导入腾讯云主机 如何实现了对多家云厂商多种云计算资源的集中管理,从成本.监控.备份.安全等多个维度提供统一运维管控? 工具/原料 行云管家堡垒机 方法/步骤 Step1:注册登录 登录行云管家,支持QQ.微信.微博.Google等第三方账号 Step2:创建团队 基于团队协同的工作模式,创建一个属于您的团队,填上团队名称与团队标识之后点击 立即创建团队. Step3:邀请团队加入 如果有团队成员,可在此添加成员邮箱进行邀请,如果没有可点击稍后再说. Step4:导入云主机 选择腾

Java集成腾讯云的短信验证码

首先,你得在腾讯云上注册并开通短信服务.第一步:创建短信应用 第二步:创建短信签名 第三步:在第二步成功后再创建短信模板 到这里就设置完成了,接下来是Java代码,通过腾讯给的java sdk接口实现详情可查看:官方文档.首先,在实现之前,需要导入一个jar包:qcloudsms-1.0.6.jar.maven的话,依赖如下: <dependency> <groupId>com.github.qcloudsms</groupId> <artifactId>q

【活动公告】Hackathon —— 腾讯云AI API接入迷你赛

一. 活动简介 编程马拉松(Hackathon)是将热爱软硬件开发的人聚集起来所举办的一项比赛,本次活动由腾讯云AI联合云+社区发起,希望让广大开发者体验到腾讯云AI的魅力.比赛过程中,参赛者可以尽情发挥自己的创意及想法,在短时间内用自己所熟悉的代码及环境,调用腾讯云API识别接口,并输出腾讯云AI 接入体验反馈,赢取丰厚奖品. 二. 活动奖品 一等奖1名:腾讯云代金券(3张满200减100券)+罗技键鼠套装 罗技键鼠套装 二等奖3名:腾讯云代金券(2张满200减100券)+腾讯云加社区定制移动

【腾讯云】CVM的功能和优势学习总结

腾讯云的功能与优势具有以下几个方面: 提供全面的服务 弹性的云端CVM的管理平台 可靠CVM 极速的CVM性能 多种解决方案来保证CVM和数据的安全 简单易用 多种计费模式,降低IT投入成本 腾讯云CVM提供了全方面的服务内容,具体为以下几类: 实现了多region多zone 覆盖的国内的节点有:华南.华东.华北 覆盖的国外的节点有:香港.新加坡.多伦多.硅谷 4类机型配置 标准型:可用于中小型WEB应用和数据库 高IO型:可用于低时延,I/O较大的应用 内存型:可用于对内操作.计算和查找存需求

从教务网爬虫程序到腾讯云上的运行

从教务网爬虫程序到腾讯云上的运行 主要内容有以下几方面: pip3以及相关python包的安装 mysql数据库的连接以及相关操作 腾讯云服务器的设置与连接,文件传输等操作 pip3以及相关python包的安装 在使用python3时,需要安装对应的pip版本,即pip3.ubuntu系统下的安装方式如下: $ sudo apt-get install python3-pip 安装完成后就可以使用pip3来安装相应的python包,如requests包的安装方式如下: $ sudo pip3 i

突破、进化,腾讯云数据库2018全年盘点

在企业上云逐渐加速的背景下,云数据库作为企业重要的IT基础设施,其重要性毋庸置疑.各大云计算厂商不惜重金,纷纷在产品和技术层面加大布局,争夺这一重要的云服务市场.纵观国内前几大云服务商过去一年的云数据库领域的发展,腾讯云基于自身强大的业务支撑以及技术研发实力,在云数据库市场的突破格外引人注目. 具体来说,针对存量市场,2018年下半年,腾讯云重磅推出云原生数据库CynosDB,该款数据库的单节点读性能达到惊人的130万QPS,超过业内目前最高100万QPS水平,而价格只是市面上商业数据库的1/1

使用腾讯云的图片缩略图服务

在业务开发过程中,我们有时候会遇到这样的业务场景--展示一个图集/相册.当大量图片加载时,我们一方面希望图片懒加载:另一方面,希望在列表中展示的是缩略图,然后点开时再展示大图.感谢现在云服务的发展,这些烦人的需求都被大佬们做成了第三方的服务,我们只要付费就行了.本文介绍调用腾讯云的图片处理服务.在往下看之前,首先请看完官方文档. https://cloud.tencent.com/document/product/460/6929 开通图片处理服务 首先你应该使用了腾讯的对象存储服务,否则是使用