ThinkPHP使用阿里云AliyunSMS接口发送短信

2021-04-25 08:00 php实例 81 梁俊威

我们在开发业务的时候,使用短信发送服务的场景非常多,比如:短信验证码、短信通知、营销推广短信、会议通知等等,今天梁俊威博主在这里讲讲ThinkPHP5使用阿里云的SMS接口发送短信。

以下是调用阿里云短信API的一个总体流程:

阿里云SMS短信API接口的总体流程

我们需要先到官方网站中,找到PHP版本的SDK进行下载:

下载官方SDK

接下来,我们需要去阿里云的控制台->短信服务->国内消息申请“签名”以及“短信模板”,这一个步骤比较简单,我就不在这里细说了。

阿里云短信申请签名

阿里云短信申请模板

废话不多说,直接上码:

/*
* 封装阿里云发送短信接口
* @param $mobile 手机号
* @param $tplCode 模板ID
* @param $tplParam 短信内容
*/
public function sendMsg($mobile,$tplCode,$tplParam){
    require_once '../extend/aliyunsms/vendor/autoload.php';
    
    Config::load(); //加载区域结点配置
    
    // 传递参数
    $accessKeyId = config('aliYunSms.app_key'); // AccessKeyID
    $accessKeySecret = config('aliYunSms.app_secret'); // AccessKeySecret
    $signName = config('aliYunSms.sign_name'); // 短信签名
    $templateParam = $tplParam; // 模板变量替换  比如验证码code
    $templateCode = $tplCode;// 短信模板ID
    
    // 固定参数
    $product = "Dysmsapi";// 短信API产品名(短信产品名固定,无需修改)
    $domain = "dysmsapi.aliyuncs.com"; //短信API产品域名(接口地址固定,无需修改)
    //暂时不支持多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;
}

在发送短信之前,一定要确保短信套餐包还有剩余条数,确保签名以及短信模板已经审核通过。

若无特殊说明,本站点所有内容均为原创,转载请说明出处!

原文链接:https://www.ljwei.com.cn/read/263.html

QQ客服

QQ客服

微信客服

微信客服

微信客服二维码
意见反馈

意见反馈

一键置顶