您现在的位置: 首页 > 开发编程 > ThinkPhp教程 > 正文

Thinkphp3.2整合最新版阿里大鱼进行短信验证码发送

作者:admin来源:网络浏览:时间:2018-05-11 23:45:53我要评论
分享到
阿里大鱼最新下载地址:阿里大鱼SDK下载 或者从官网进行下载:阿里大鱼SDK官网下载

下载完成后,将压缩包内的api_sdk文件夹放到ThinkPHP\Library\Vendor目录下,修改文件名为Aliyun,若修改为其他名称,请修改命名空间!

阿里大鱼申请步骤就不说了!开始接入吧~

设置阿里大鱼配置信息:

在配置文件中配置:

  1. 'ALI_SMS' => [ 
  2.         'PRODUCT' => 'Dysmsapi'
  3.         'DOMAIN' => 'dysmsapi.aliyuncs.com'
  4.         'REGION' => 'cn-hangzhou'
  5.         'END_POINT_NAME' => 'cn-hangzhou'
  6.         'KEY_ID' => '你的 Access Key ID'
  7.         'KEY_SECRET' => '你的 Access Key Secret'
  8.         'SIGN_NAME' => '签名名称'
  9.         'TEMPLATE_CODE' =>'模板code'
  10.     ], 

设置完成以后,在function.php文件中新建发送短信函数,这里命名为sendCode:

 

  1. <?php 
  2. use Aliyun\Core\Config; 
  3. use Aliyun\Core\Profile\DefaultProfile; 
  4. use Aliyun\Core\DefaultAcsClient; 
  5. use Aliyun\Api\Sms\Request\V20170525\SendSmsRequest; 
  6.  
  7. /** 
  8.  * Created by PhpStorm. 
  9.  * User: Administrator 
  10.  * Date: 2018/5/2 0002 
  11.  * Time: 10:20 
  12.  */ 
  13.  
  14. function sendCode($num,$code){ 
  15.     require_once '/ThinkPHP/Library/Vendor/Aliyun/vendor/autoload.php'
  16.     //加载区域结点配置 
  17.     Config::load(); 
  18.     // 初始化用户Profile实例 
  19.     $profile = DefaultProfile::getProfile(C('ALI_SMS.REGION'), C('ALI_SMS.KEY_ID'), C('ALI_SMS.KEY_SECRET')); 
  20.     // 增加服务结点 
  21.     DefaultProfile::addEndpoint(C('ALI_SMS.END_POINT_NAME'), C('ALI_SMS.REGION'), C('ALI_SMS.PRODUCT'), C('ALI_SMS.DOMAIN')); 
  22.     // 初始化AcsClient用于发起请求 
  23.     $acsClientnew DefaultAcsClient($profile); 
  24.     // 初始化SendSmsRequest实例用于设置发送短信的参数 
  25.     $request = new SendSmsRequest(); 
  26.     // 必填,设置雉短信接收号码 
  27.     $request->setPhoneNumbers($num); 
  28.     // 必填,设置签名名称 
  29.     $request->setSignName(C('ALI_SMS.SIGN_NAME')); 
  30.     // 必填,设置模板CODE 
  31.     $request->setTemplateCode(C('ALI_SMS.TEMPLATE_CODE')); 
  32.     // 可选,设置模板参数 
  33.     $request->setTemplateParam(json_encode(array(  // 短信模板中字段的值 
  34.         "code"=>$code
  35.         "product"=>"dsd" 
  36.     ), JSON_UNESCAPED_UNICODE)); 
  37.     //发起访问请求 
  38.     $acsResponse = $acsClient->getAcsResponse($request); 
  39.     //返回请求结果 
  40.     $result = json_decode(json_encode($acsResponse),true); 
  41.     return $result
  42.  

使用,只在=在控制器中调用sendCode函数即可:

  1. public function sendmsg(){ 
  2.     $phone = input('post.phone_num'); 
  3.     $code = rand(100000,999999); 
  4.     $res = sendCode($phone,$code); 
  5.     if($code == "OK"){ 
  6.         $data = array('msg'=>'success'); 
  7.     }else
  8.         $data = array('msg'=>'error'); 
  9.     } 
  10.     return json_encode($data); 

 

相关热词搜索:
下一篇:最后一页