ThinkPHP5整合阿里云大鱼短信验证码发送功能

ThinkPHP5整合阿里云大鱼短信验证码发送功能

  • 注册阿里云开通短信服务
  • 引入Aliyun命名空间
  • 代码区域

首先你要在阿里云下载短信服务的cdk,放入你的库目录内!

注册阿里云开通短信服务

ThinkPHP5整合阿里云大鱼短信验证码发送功能_第1张图片
ThinkPHP5整合阿里云大鱼短信验证码发送功能_第2张图片
ThinkPHP5整合阿里云大鱼短信验证码发送功能_第3张图片

引入Aliyun命名空间

use Aliyun\Core\Config;
use Aliyun\Core\Profile\DefaultProfile;
use Aliyun\Core\DefaultAcsClient;
use Aliyun\Api\Sms\Request\V20170525\SendSmsRequest;
use Aliyun\Api\Sms\Request\V20170525\SendBatchSmsRequest;
use Aliyun\Api\Sms\Request\V20170525\QuerySendDetailsRequest;

代码区域

通过调用 send_sms( ) 方法即可发送短信验证码

	//获取手机号、生成验证码
	//存储cookie
	//返回json给前端(可以不需要)
	public function send_sms(){
     
		$phone = input('phone');			//获取手机号
		$code = mt_rand(100000,999999);		//生成6位验证码
	
		$get_code = $this->get_code($phone,$code);		//调用发送验证码函数
		if($get_code['Message'] == 'OK'){
     		//如果发送成功
			//代码逻辑区域
			echo json_encode(array("status"=>1,"msg"=>"发送成功","data"=>$get_code));	//返回json(可以不需要)
			exit;
		}
	}
	
	//发送验证码
	//$phone: 手机号
	//$code: 验证码
	public function get_code($phone,$code){
     
		require_once '../extend/Aliyun/vendor/autoload.php'; //此处为你放置API的路径
		
		Config::load(); //加载区域结点配置
	
		$accessKeyId = "填你的accessKeyId ";
		
		$accessKeySecret = "填你的accessKeySecret ";
		
		$templateCode = '填你的模板id'; //短信模板ID
		
		$smsData = array('code'=>$code); //所使用的模板若有变量 在这里填入变量的值
		
		//短信API产品名(短信产品名固定,无需修改)
		$product = "Dysmsapi";
		//短信API产品域名(接口地址固定,无需修改)
		$domain = "dysmsapi.aliyuncs.com";
		//暂时不支持多Region(目前仅支持cn-hangzhou请勿修改)
		$region = "cn-hangzhou";
		// 初始化用户Profile实例
		$profile = DefaultProfile::getProfile($region, $accessKeyId, $accessKeySecret);
	
		// 增加服务结点
		DefaultProfile::addEndpoint("cn-hangzhou", "cn-hangzhou", $product, $domain);
		// 初始化AcsClient用于发起请求
		$acsClient = new DefaultAcsClient($profile);
		// 初始化SendSmsRequest实例用于设置发送短信的参数
		$request = new SendSmsRequest();
		// 必填,设置短信接收号码
		$request->setPhoneNumbers($phone); //$phone是我前台传入的电话
		// 必填,设置签名名称
		$request->setSignName("填你的签名"); //此处需要填写你在阿里上创建的签名
		// 必填,设置模板CODE
		$request->setTemplateCode($templateCode); //短信模板编号
		
		$request->setTemplateParam(json_encode($smsData));
		//发起访问请求
		$acsResponse = $acsClient->getAcsResponse($request);
		//返回请求结果
		$result = json_decode(json_encode($acsResponse), true);
	
		return $result;
	}

你可能感兴趣的:(php,thinkphp,阿里云)