阿里大于短信发送控制台已经被整合到阿里云控制台了,之前注册的阿里大于账户使用过阿里大于服务的,现在还可以进入阿里大于控制台,新注册用户的话,都会直接跳转到阿里云控制台,使用短信服务的话,SDK也不同了,使用的秘钥也不一样。不过好在,阿里出的
文档真的是相当详尽,就连小白集成也毫无压力。
作为一个拥有爱好记笔记这样的好(ji)习(xing)惯(cha)的人来说,把做过的东西整理一下,下次用的时候,会省很多时间。
前期准备,步骤如下:
步骤 1 创建阿里云账号
步骤 2 获取阿里云访问密钥
阿里云访问秘钥是阿里云为用户使用 API(非控制台)来访问其云资源设计的“安全口令”。该访问秘钥成对(AccessKeyId 与 AccessKeySecret)生成和使用。每个阿里云用户可以创建多对访问秘钥,且可随时启用(Active)、禁用(Inactive)或者删除已经生成的访问秘钥对。
通过阿里云控制台的 秘钥管理页面 创建、管理所有的访问秘钥对。
步骤 3 在控制台完成模板与签名的申请,获得调用接口必备的参数
(1)在“短信签名”页面完成签名的申请,获得短信签名的字符串 签名申请手册;
(2)在“短信模板”页面完成模板的申请,获得模板ID。 模板申请手册。
SDK集成,步骤如下:
1.下载SDK工具包
SDK&DEMO[ 下载地址]
2.将压缩包解压,拷贝出文件夹“api_sdk”,并将文件夹重命名为“dysms”,放入自己的工程项目
作为一个拥有爱好记笔记这样的好(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;
}
返回值如下: