ThinkPHP5 集成阿里云SMS短信服务--验证码发送
来源:互联网 发布:河北体育学院网络教育 编辑:程序博客网 时间:2024/05/21 05:42
目录
- 开通阿里云短信服务
- 创建签名以及模板
- 创建签名
- 记住签名名称
- 创建模板
- 记住模板Code
- 创建并记住Access Key Id 以及 Access Key Secret
- 下载并集成PHP-SDK
- 实战
一、开通阿里云短信服务
首先去阿里云官网,申请账号,并开通短信服务功能。
二、创建签名以及模板
1、创建签名
2、记住签名名称
3、创建模板
4、记住模板Code
三、创建并记住Access Key Id 以及 Access Key Secret
四、下载并集成PHP-SDK
1、自行下载(忽略)
2、ThinkPHP5 集成
a. sdk目录中包含:api_demo、api_sdk、msg_demo、msg_sdk 四个目录。
b. 将包含 sdk 下所有目录的文件夹(如ali),放入 thinkphp5 可扩展第三方 extend 目录下。集成sdk ok。
五、实战
1、创建短信服务所需的配置参数文件 ali.php
<?php/** * ali.php * 阿里短信验证参数 * Created by * User: * Date: * Time: */return [ 'product' => 'Dysmsapi', // 短信API产品名,唯一 'domain' => 'dysmsapi.aliyuncs.com', // 短信API产品域名,唯一 'region' => 'cn-hangzhou', // 暂时不支持多Region,唯一 'endPointName' => 'cn-hangzhou', // 服务结点,唯一 'accessKeyId' => '', // AccessKeyId 'accessKeySecret' => '', // AccessKeySecret 'signName' => '', // 签名名称 'templateCode' => '', // 短信模板Code 'valid_time' => '300', // 验证码有效时间,单位为秒];
2、封装发送短信的单例类
<?php/** * 短信验证码单例 * Created by * User: * Date: * Time: */namespace app\common\lib;use Aliyun\Core\Config;use Aliyun\Core\Profile\DefaultProfile;use Aliyun\Core\DefaultAcsClient;use Aliyun\Api\Sms\Request\V20170525\SendSmsRequest;use think\Cache;require_once EXTEND_PATH.'ali/api_sdk/vendor/autoload.php';// 加载区域结点配置Config::load();class Ali { public $acsClient = ''; /** * 静态变量保存全局实例 */ private static $_instance = null; /** * 私有构造方法 */ private function __construct(){} /** * 获取单例实例 */ public static function getInstance(){ if(empty(self::$_instance)){ self::$_instance = new self(); } return self::$_instance; } /** * 发送短信验证码 * $phone :手机号码 */ public function sendSMS($phone) { // 短信API产品名 $product = config('ali.product'); // 短信API产品域名 $domain = config('ali.domain'); // 暂时不支持多Region $region = config('ali.region'); // 服务结点 $endPointName = config('ali.endPointName'); // 初始化用户Profile实例 $profile = DefaultProfile::getProfile($region, config('ali.accessKeyId'), config('ali.accessKeySecret')); // 增加服务结点 DefaultProfile::addEndpoint($endPointName, $region, $product, $domain); // 初始化AcsClient用于发起请求 $this->acsClient = new DefaultAcsClient($profile); // 初始化SendSmsRequest实例用于设置发送短信的参数 $request = new SendSmsRequest(); // 必填,设置雉短信接收号码 $request->setPhoneNumbers($phone); // 必填,设置签名名称 $request->setSignName(config('ali.signName')); // 必填,设置模板CODE $request->setTemplateCode(config('ali.templateCode')); //随机数 $random = rand(0,999999); //模板参数数组 $send_info = [ 'code' => $random, 'product' => '产品', ]; // 可选,设置模板参数 $request->setTemplateParam(json_encode($send_info)); // 发起访问请求 $acsResponse = $this->acsClient->getAcsResponse($request); // 打印请求结果 // var_dump($acsResponse); if(!$acsResponse->Code == "OK"){ return false; } //设置手机号码有效期为 5 分钟 Cache::set($phone,$random,config('ali.valid_time')); return true; } /** * 检查短信验证码是否失效 * @param $phone * @return 返回验证码 */ public static function checkValidPhone($phone) { if(!$phone){ return false; } return Cache::get($phone); }}
阅读全文
0 0
- ThinkPHP5 集成阿里云SMS短信服务--验证码发送
- Thinkphp5+阿里云SMS短信服务发送验证码
- 阿里云PHP-SMS短信服务——验证码发送教程
- 阿里云PHP-SMS短信服务——验证码发送教程
- Thinkphp5集成阿里云短信
- 使用阿里云的短信服务发送短信验证码
- laravel5.4使用Laravel Sms和阿里云短信服务实现短信验证码功能
- 阿里云短信服务_发送手机验证码java
- Springboot实现阿里云通信短信服务有关短信验证码的发送
- 阿里云发送短信验证码
- 阿里云短信验证码发送类
- 阿里云发送短信验证码
- 阿里云--发送短信或短信验证码
- 阿里云-----云通信短信服务---发送验证码到手机
- Thinkphp5使用阿里大于短信验证
- Thinkphp5使用阿里大于短信验证
- java实现SMS短信平台发送验证码功能
- 阿里云短信验证码发送工具类
- java获取系统信息:java的信息、操作系统的信息、用户的信息、虚拟机的信息、系统设置的信息。
- Unity3D 自动打包整个项目(以AssetBundle实现)
- STL容器的底层实现
- Angular4中调用js代码
- matlab2016a+win10+无CPU+caffe测试
- ThinkPHP5 集成阿里云SMS短信服务--验证码发送
- CART分类树算法与随机森林
- MyBatis初窥:自定义TypeHandler处理枚举
- java复习系列(2)--MySQL数据库优化
- 博客基于Github的hexo搭建
- java匿名内部类使用外部变量时,外部变量必须是final,为什么?
- 服务器带宽
- 下一步优化点
- Fiddler死活抓不了HTTPS包解决办法