现阶段,短信的应用主要就是用来验证下手机号是不是正常的手机号。只要涉及到用户手机号的问题的时候,都会做短信验证码来验证下改手机号是否是正常手机号。接下来就是操作步骤。
首先要在阿里云账号上开通短信功能 然后再设置自己的签名 和短信模板
先导入阿里短信包,链接:/s/1WzYi313LCvCvgbrE2DAJZg提取码:mqhe
将下载下来的文件解压之后放在extend文件夹中,接下来在application/common.php中添加公共方法 方法如下:
1 <?php 2 use OSS\OssClient; 3 use OSS\Core\OssException; 4 use Aliyun\Core\Config; 5 use Aliyun\Core\Profile\DefaultProfile; 6 use Aliyun\Core\DefaultAcsClient; 7 use Aliyun\Api\Sms\Request\V0525\SendSmsRequest; 8 9 /**10 * 短信发送11 * @param $to 接收人12 * @param $model 短信模板ID13 * @param $code 短信验证码14 * @return json15 * @16 */17 function send_sms($to, $model, $code)18 {19require_once './extend/alisms/vendor/autoload.php';20Config::load(); //加载区域结点配置21$config = '根据你的实际情况读取配置文件或读取数据库,本项目是将配置写入数据库实现';22$accessKeyId = '自己的accessKeyId';23$accessKeySecret = '自己的秘钥';24$templateParam = $code;25//短信签名26$signName = '填写自己的短信签名';27//短信模板ID28switch ($model) {29 case 1:30 $templateCode = '阿里云中的短信模板编号'; // 注册登录短信验证码模板31 break;32 case 2:33 $templateCode = $config['model_code_reset']; // 重置密码短信验证码模板34 break;35}36//短信API产品名(短信产品名固定,无需修改)37$product = "Dysmsapi";38//短信API产品域名(接口地址固定,无需修改)39$domain = "";40//暂时不支持多Region(目前仅支持cn-hangzhou请勿修改)41$region = "cn-hangzhou";42// 初始化用户Profile实例43$profile = DefaultProfile::getProfile($region, $accessKeyId, $accessKeySecret);44// 增加服务结点45DefaultProfile::addEndpoint("cn-hangzhou", "cn-hangzhou", $product, $domain);46// 初始化AcsClient用于发起请求47$acsClient = new DefaultAcsClient($profile);48// 初始化SendSmsRequest实例用于设置发送短信的参数49$request = new SendSmsRequest();50// 必填,设置雉短信接收号码51$request->setPhoneNumbers($to);52// 必填,设置签名名称53$request->setSignName($signName);54// 必填,设置模板CODE55$request->setTemplateCode($templateCode);56// 可选,设置模板参数57if ($templateParam) {58 $request->setTemplateParam(json_encode($templateParam));59}60//发起访问请求61$acsResponse = $acsClient->getAcsResponse($request);62//返回请求结果63$result = json_decode(json_encode($acsResponse), true);64// 具体返回值参考文档:/document_detail/55451.html?spm=a2c4g.11186623.6.563.YSe8FK65return $result;66 }
然后在自己的方法中直接调用这个方法就行了
代码如下:
$send = send_sms('手机号', 1, ['code'=>'验证码']);if($send['Message'] != 'OK'){echo '发送失败';}else{echo '发送成功';}
说明: 上面的验证码的值最好是可变的 随机的
1 $code = rand(100000,999999);
这样阿里云的短信接口就做好了 可以发短信 接收短信了