阿里大于短信发送控制台已经被整合到阿里云控制台了,之前注册的阿里大于账户使用过阿里大于服务的,现在还可以进入阿里大于控制台,新注册用户的话,都会直接跳转到阿里云控制台,使用短信服务的话,SDK也不同了,使用的秘钥也不一样。不过好在,阿里出的文档真的是相当详尽,就连小白集成也毫无压力。
ThinkPHP中集成阿里大于短信发送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.在用到此服务的控制器文件头部,引入相应的模块

  1. use Aliyun\Core\Config;  
  2. use Aliyun\Core\Profile\DefaultProfile;  
  3. use Aliyun\Core\DefaultAcsClient;  
  4. use Aliyun\Api\Sms\Request\V20170525\SendSmsRequest;  

4.代码实现短信发送

  1. /** 
  2.  * 判断输入的字符串是否是手机号 
  3.  * @return [bool]   true || false 
  4.  */  
  5. function isPhoneNum($mobile){  
  6.     if(!preg_match("/^1[34578]{1}\d{9}$/",$mobile)){  
  7.       return false;  
  8.     }  
  9.     return true;  
  10. }  
  11.   
  12. /** 
  13.  * 发送验证码 
  14.  * @param string $mobile    接收手机号 
  15.  * @param string $code      验证码 
  16.  * @return array 
  17.  */  
  18. public function sendMsg($mobile,$code){  
  19.     ifempty($mobile) || empty($code) ) return array('Message'=>'缺少参数','Code'=>'Error');  
  20.     if(!isPhoneNum($mobile)) return array('Message'=>'无效的手机号','Code'=>'Error');  
  21.       
  22.     require_once APP_ROOT.'/Api/dysms/vendor/autoload.php';  
  23.     Config::load();             //加载区域结点配置  
  24.       
  25.     $config = C('dysms');       //取出参数配置  
  26.   
  27.     $accessKeyId = $config['alims_appkey'];  
  28.     $accessKeySecret = $config['alims_appsecret'];  
  29.     $templateParam = array("code"=>$code);           //模板变量替换  
  30.     $signName = (empty($config['signname'])?'阿里大于测试专用':$config['signname']);  
  31.     $templateCode = $config['notice_templateid'];   //短信模板ID  
  32.       
  33.       
  34.     //短信API产品名(短信产品名固定,无需修改)  
  35.     $product = "Dysmsapi";  
  36.     //短信API产品域名(接口地址固定,无需修改)  
  37.     $domain = "dysmsapi.aliyuncs.com";  
  38.     //暂时不支持多Region(目前仅支持cn-hangzhou请勿修改)  
  39.     $region = "cn-hangzhou";  
  40.       
  41.     // 初始化用户Profile实例  
  42.     $profile = DefaultProfile::getProfile($region$accessKeyId$accessKeySecret);  
  43.     // 增加服务结点  
  44.     DefaultProfile::addEndpoint("cn-hangzhou""cn-hangzhou"$product$domain);  
  45.     // 初始化AcsClient用于发起请求  
  46.     $acsClientnew DefaultAcsClient($profile);  
  47.       
  48.     // 初始化SendSmsRequest实例用于设置发送短信的参数  
  49.     $request = new SendSmsRequest();  
  50.     // 必填,设置雉短信接收号码  
  51.     $request->setPhoneNumbers($mobile);  
  52.   
  53.     // 必填,设置签名名称  
  54.     $request->setSignName($signName);  
  55.   
  56.     // 必填,设置模板CODE  
  57.     $request->setTemplateCode($templateCode);  
  58.   
  59.     // 可选,设置模板参数  
  60.     if($templateParam) {  
  61.         $request->setTemplateParam(json_encode($templateParam));  
  62.     }  
  63.       
  64.     //发起访问请求  
  65.     $acsResponse = $acsClient->getAcsResponse($request);  
  66.       
  67.     //返回请求结果  
  68.     $result = json_decode(json_encode($acsResponse),true);  
  69.     return $result;  
  70. }  
返回值如下:ThinkPHP中集成阿里大于短信发送SDK

相关文章:

  • 2021-12-18
  • 2022-01-01
  • 2021-11-23
  • 2021-04-08
  • 2021-07-29
  • 2022-12-23
  • 2021-04-14
猜你喜欢
  • 2022-12-23
  • 2021-11-23
  • 2021-12-28
  • 2021-12-28
  • 2021-04-27
  • 2021-12-28
  • 2022-12-23
相关资源
相似解决方案