本文共 2263 字,大约阅读时间需要 7 分钟。
先在阿里大于短信平台注册,将appid和appsec准备好.
1:下载 sdk包 ( ps:我下载的是轻量级的包
2:新增一个AliSms控制器(我写的是 扩展类 直接放在extend)下面的
3:在控制器引入 包 由于tp5.1*以上 开启了自动加载,这儿你可以使用 require 或者定义命名空间的方式来引入
<?php/**namespace lib;
use AliyunDySDKLiteSignatureHelper;use appcommonmodelWebsiteConfig;use appcommonmodelSms;use thinkDb;class AliSms{ public static function sendSms($mobile,$code,$TemplateCode) {//引入 sdk 文件
require '../vendor/aliyun-sms/SignatureHelper.php'; //读取数据库 配置信息 $config = WebsiteConfig::get(1);$accessKeyId = $config['sms_appid'];
$accessKeySecret = $config['sms_appsecret'];//发送短信需要的数据
$params = [ 'PhoneNumbers' => $mobile,//手机号 'SignName' => 'xxx',//签名 'TemplateCode' => $TemplateCode,//模板id 'TemplateParam' => [//短信模板需要的 变量内容 'code' => $code ] ];try { Sms::where('mobile',$mobile)->delete();//将数据库存的 短信信息删除 Sms::create([//插入本条短信内容 'code' => $code, 'mobile' => $mobile, 'end_time' => time()+900 ]); } catch (Exception $e) { return false; } if(!empty($params["TemplateParam"]) && is_array($params["TemplateParam"])) { $params["TemplateParam"] = json_encode($params["TemplateParam"], JSON_UNESCAPED_UNICODE); }//实例化 速度快、
$helper = new SignatureHelper(); try { $content = $helper->request(//发送短 这儿的内容不需要更改 $accessKeyId, $accessKeySecret, "dysmsapi.aliyuncs.com", array_merge($params,[ "RegionId" => "cn-hangzhou", "Action" => "SendSms", "Version" => '2017-05-25', ]) ); return object_array($content);//将对象转为数组 返回 } catch (Exception $e) { return false; }}/**public static function check($mobile,$code)
{ $result = Sms::where(['mobile' => $mobile , 'code' => $code] )->find();if (empty($result)) {
return ['code'=>0,'msg'=>'验证码不正确,请检查'];
}elseif( ($result['end_time'] Sms::where(['mobile' => $mobile , 'code' => $code] )->delete();
return ['code'=>0,'msg'=>'验证码已过期,请重新获取'];}else{
Sms::where(['mobile' => $mobile , 'code' => $code] )->delete();
return ['code'=>1,'msg'=>'验证码正确'];
}
}}转载地址:http://bvfbm.baihongyu.com/