PHP 实现 阿里云短信发送 短信通知教程
首先介绍下短信注册登录流程:
- 注册页面点击获取手机号验证码按钮,用jquery的click事件POST或GET方法把手机号发送到后台控制器;
- 后台控制器创建函数,收到手机号后生成随机码,例如:6位的随机数code=rand(100000,999999);
- 利用阿里云短信服务接口将生成的随机码,以短信形式发送给注册用户;
- 用户在注册页面输入接收到的验证码,点击提交登录,后台处理用户提交的手机号+验证码,与自己后台存储的手机号+验证码是否匹配,匹配则判断登录成功,否则提示用户登录失败;
第一步:下载PHP版本的[SDK轻量版]代码,解压,重命名为api文件夹名称,并将该文件夹存放在ThinkPHP/Library/Vendor目录位置(存放位置可以自己选择);
第二步,在根目录Application/Admin/BaseController基础控制器中写入一下代码:
//引用这几个文件
use Aliyun\Core\Config;
use Aliyun\Core\Profile\DefaultProfile;
use Aliyun\Core\DefaultAcsClient;
use Aliyun\Api\Sms\Request\V20170525\SendSmsRequest;
//这个方法和上边的是一起的,可以放到基础控制器中
/**
* 发送短信接口
* 文档地址 https://help.aliyun.com/document_detail/55491.html?spm=5176.doc55491.6.560.0KUKny
* @param $mobile 手机号
* @param $sms_code 短信模板ID
* @param $params 模板替换参数
* @return mixed code = OK 表示完成
*/
public function sendSms($mobile, $sms_code, $params) {
//阿里云SDK放在了ThinkPHP/Library/Vendor目录中
require_once VENDOR_PATH . 'AliyunSms/vendor/autoload.php';
Config::load();
$sms_config = C('SMS_CONFIG'); //这个写在了config文件里的,tp3.2直接用大C就可以取到
$template_param = $params;
$sign_name = $sms_config['sign'];
$template_code = $sms_code;
$product = 'Dysmsapi';
$domain = 'dysmsapi.aliyuncs.com';
$region = 'cn-hangzhou';
$profile = DefaultProfile::getProfile($region, $sms_config['key'], $sms_config['secret']);
DefaultProfile::addEndpoint('cn-hangzhou', 'cn-hangzhou', $product, $domain);
$acsClient = new DefaultAcsClient($profile);
$request = new SendSmsRequest();
$request->setPhoneNumbers($mobile);
$request->setSignName($sign_name);
$request->setTemplateCode($template_code);
if ($template_param) {
$request->setTemplateParam(json_encode($template_param));
}
$acsResponse = $acsClient->getAcsResponse($request);
$result = json_decode(json_encode($acsResponse), true);
return $result;
}
第三步,在继承基础控制器的其他控制器中,配置好所用的参数,就可以直接使用了!就是如此简单哦!
$captcha = rand(100000, 999999);
$params = [ 'code' => $captcha ];
$sms_code = 'SMS_159960023'; // 短信模板ID
$mobile = $post_data['mobile']; //手机号
$this->sendSms($mobile, $sms_code, $params);
作者头像
作者名称
作者性别
热门推荐
2 php全局变量



评论列表