ThinkPHP中集成阿里大于短信发送SDK

8 篇文章 1 订阅
阿里大于短信发送控制台已经被整合到阿里云控制台了,之前注册的阿里大于账户使用过阿里大于服务的,现在还可以进入阿里大于控制台,新注册用户的话,都会直接跳转到阿里云控制台,使用短信服务的话,SDK也不同了,使用的秘钥也不一样。不过好在,阿里出的 文档真的是相当详尽,就连小白集成也毫无压力。

作为一个拥有爱好记笔记这样的好(ji)习(xing)惯(cha)的人来说,把做过的东西整理一下,下次用的时候,会省很多时间。
前期准备,步骤如下:
步骤 1 创建阿里云账号
步骤 2 获取阿里云访问密钥
阿里云访问秘钥是阿里云为用户使用 API(非控制台)来访问其云资源设计的“安全口令”。该访问秘钥成对(AccessKeyId 与 AccessKeySecret)生成和使用。每个阿里云用户可以创建多对访问秘钥,且可随时启用(Active)、禁用(Inactive)或者删除已经生成的访问秘钥对。
通过阿里云控制台的 秘钥管理页面 创建、管理所有的访问秘钥对。
步骤 3 在控制台完成模板与签名的申请,获得调用接口必备的参数
(1)在“短信签名”页面完成签名的申请,获得短信签名的字符串 签名申请手册
(2)在“短信模板”页面完成模板的申请,获得模板ID。 模板申请手册

SDK集成,步骤如下:
1.下载SDK工具包
SDK&DEMO[ 下载地址]
2.将压缩包解压,拷贝出文件夹“api_sdk”,并将文件夹重命名为“dysms”,放入自己的工程项目

3.在用到此服务的控制器文件头部,引入相应的模块

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

4.代码实现短信发送

/**
 * 判断输入的字符串是否是手机号
 * @return [bool]   true || false
 */
function isPhoneNum($mobile){
	if(!preg_match("/^1[34578]{1}\d{9}$/",$mobile)){
      return false;
	}
	return true;
}

/**
 * 发送验证码
 * @param string $mobile  	接收手机号
 * @param string $code  	验证码
 * @return array
 */
public function sendMsg($mobile,$code){
	if( empty($mobile) || empty($code) ) return array('Message'=>'缺少参数','Code'=>'Error');
	if(!isPhoneNum($mobile)) return array('Message'=>'无效的手机号','Code'=>'Error');
	
	require_once APP_ROOT.'/Api/dysms/vendor/autoload.php';
	Config::load();				//加载区域结点配置
	
	$config = C('dysms');		//取出参数配置

	$accessKeyId = $config['alims_appkey'];
	$accessKeySecret = $config['alims_appsecret'];
	$templateParam = array("code"=>$code); 			//模板变量替换
	$signName = (empty($config['signname'])?'阿里大于测试专用':$config['signname']);
	$templateCode = $config['notice_templateid'];	//短信模板ID
	
	
	//短信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($mobile);

	// 必填,设置签名名称
	$request->setSignName($signName);

	// 必填,设置模板CODE
	$request->setTemplateCode($templateCode);

	// 可选,设置模板参数
	if($templateParam) {
		$request->setTemplateParam(json_encode($templateParam));
	}
	
	//发起访问请求
	$acsResponse = $acsClient->getAcsResponse($request);
	
	//返回请求结果
	$result = json_decode(json_encode($acsResponse),true);
	return $result;
}
返回值如下:


评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值