记录一下发送大鱼短信的后端代码
  • 2020-02-21


function sms(){
  $idx =$this->request->post('ids', '', 'serach_in');
  if(!$idx)$this->error('参数错误');
    try{
    $info = BookborrowDb::query('select a.*,b.title as bookname,c.name as borrowername,c.tele as phone from book_borrow as a inner join book as b inner join borrower as c on a.bookid = b.id and a.borrid = c.id where a.id = '.$idx);
    $info=current($info);
    $data['mobile']    = $info['phone'];    //发送手机号
    $data['name']    = $info['borrowername'];    //发送手机号            
    $data['bookname']= $info['bookname']; //借阅图书    
    $data['time']= $info['etime']; //借阅图书
    $res = utilssmsAliSmsService::sendSms2($data);
        }catch(Exception $e){
        $this->error($e->getMessage());
     }
     return json(['status'=>'00','msg'=>'发送短信成功!']);
}
public function sendSms2($data){
    require_once app()->getRootPath().'/vendor/aliyunsms/vendor/autoload.php';
    require_once app()->getRootPath().'/vendor/aliyunsms/lib/Api/Sms/Request/V20170525/SendSmsRequest.php';
    Config::load();
    $product = "Dysmsapi";
    $domain = "dysmsapi.aliyuncs.com";
    $region = "cn-hangzhou";
    $profile = DefaultProfile::getProfile($region, config('my.ali_sms_accessKeyId'), config('my.ali_sms_accessKeySecret'));
    DefaultProfile::addEndpoint("cn-hangzhou", "cn-hangzhou", $product, $domain);
    $acsClient= new DefaultAcsClient($profile);
    $request = new SendSmsRequest();
    $request->setPhoneNumbers($data['mobile']);//必填-短信接收号码
    $request->setSignName(config('my.ali_sms_signname'));//必填-短信签名
    $request->setTemplateCode(config('my.ali_sms_tempCode'));//必填-短信模板 Code
    //选填-假如模板中存在变量需要替换则为必填(JSON 格式)
    $name = $data['name'];
    $bookname = $data['bookname'];
    $time = $data['time'];
    $time=date("Y-m-d",$time);
    $request->setTemplateParam("{"name":"$name","bookname":"$bookname","time":"$time"}");//短信签名内容
    //发起访问请求
    $resp = $acsClient->getAcsResponse($request);
    if($resp->Code == 'OK'){
        return true;
    }else{
        log::error('阿里大鱼短信发送失败:'.print_r($resp,true));
        throw new Exception('发送失败');
    }
}

记录一下代码,防止下次要自己重新写。