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);
作者头像
作者名称
作者性别
热门推荐
1 php创建数据库
评论列表