阿里大于已经合并至阿里云,好多文档都是写的以前大于的SDK接入,我在事例中使用的是7.18更新的SDK, 部分代码借鉴别人博客
针对还不是很清楚的朋友们写一次图文的
1.获取到accessKeyId和accessKeySecret
开通短信服务后进入
https://dysms.console.aliyun.com/dysms.htm?spm=5176.2020520115.0.0.5e72c4c98dhAUW#/account
鼠标放置自己用户名上,会出现下拉框,选中【accesskeys】,选择继续使用,获取到accessKeyId和accessKeySecret
然后申请【短信模板】【短信签名】,请注意,如果短信中出现测试等字样,很大几率被运营商拦截,所以请自由发挥
2.下载SDK
https://help.aliyun.com/document_detail/55359.html?spm=5176.doc55451.6.569.0uXt4J
进入后选择PHP,会得到dysmsapi_demo_sdk__php.zip,解压
3.放置API
在TP根目录下创建文件夹【Api】,并将api_sdk整个文件夹复制进去,改名dysms(可自由取名)
4.引入API文件
在自己需要调用的控制器头部引入如下路径
1. use Aliyun\Core\Config;
2. use Aliyun\Core\Profile\DefaultProfile;
3. use Aliyun\Core\DefaultAcsClient;
4. use Aliyun\Api\Sms\Request\V20170525\SendSmsRequest;
5. 代码部分
附上源码public function sendMsg($mobile,$username)
{ require_once './Api/dysms/vendor/autoload.php'; //此处为你放置API的路径 Config::load(); //加载区域结点配置 $accessKeyId = '*******'; $accessKeySecret = '*******'; $templateCode = '82565004'; //短信模板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); //$moblie是我前台传入的电话 // 必填,设置签名名称 $request->setSignName("来自RayZoey"); //此处需要填写你在阿里上创建的签名 // 必填,设置模板CODE $request->setTemplateCode("SMS_84030003"); //短信模板编号 $smsData = array('username'=>$username); //所使用的模板若有变量 在这里填入变量的值 我的变量名为username此处也为username $request->setTemplateParam(json_encode($smsData)); //发起访问请求 $acsResponse = $acsClient->getAcsResponse($request); //返回请求结果 $result = json_decode(json_encode($acsResponse), true); return $result; }