工作需要,对接阿里云的短信服务,借此记录一下
主要分为两个部分,一是下载官方的Demo事例,这个不需要多说,自己去下载就行,地址:
https://help.aliyun.com/document_detail/55359.html?spm=a2c4g.11186623.4.3.45ae16e49ejNTe
可以下载轻量版的SDK 注意一下PHP 的版本
第二步就是在文件中引用,把下载的SDK 中的 api-sdk 放在vendor 文件夹下面,可以随意命名
下面就是常规的调用,在common文件中添加方法
use Aliyun\Core\Config;
use Aliyun\Core\Profile\DefaultProfile;
use Aliyun\Core\DefaultAcsClient;
use Aliyun\Api\Sms\Request\V20170525\SendSmsRequest;
/**
* 短信发送
* @param $to 接收人
* @param $model 短信模板ID
* @param $code 短信验证码
* @return json
* @说明:有优惠,先领卷在购买,不谢!https://promotion.aliyun.com/ntms/yunparter/invite.html?userCode=ob1nyal1
*/
function send_sms($to, $model, $code){
require_once '../extend/alisms/vendor/autoload.php';
Config::load(); //加载区域结点配置
$config = '根据你的实际情况读取配置文件或读取数据库,本项目是将配置写入数据库实现';
$accessKeyId = '你的AccessKeyID';
$accessKeySecret = '你的AccessKeySecret';
$templateParam = $code;
//短信签名
$signName = $config['sign_name'];
//短信模板ID
switch($model){
case 1:
$templateCode = $config['model_code_rl']; // 注册登录短信验证码模板
break;
case 2:
$templateCode = $config['model_code_reset']; // 重置密码短信验证码模板
break;
}
//短信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($to);
// 必填,设置签名名称
$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);
// 具体返回值参考文档:https://help.aliyun.com/document_detail/55451.html?spm=a2c4g.11186623.6.563.YSe8FK
return $result;
}
然后在需要的地方进行调用
$send = send_sms($sender,1,$code);
参数(手机号,模板ID,验证码);
需要注意的是首先要注册阿里云短信服务、获取AccessKeyId 和 AccessKeySecret
感谢博主,喝杯咖啡~
感谢博主,喝杯咖啡~
还没有人发表评论