tpshop_v1.3.2对接阿里大鱼短信接口

  • 添加所用类
use Aliyun\Core\Config;
use Aliyun\Core\Profile\DefaultProfile;
use Aliyun\Core\DefaultAcsClient;
use Aliyun\Api\Sms\Request\V20170525\SendSmsRequest;
/*
 *
 * 发送短信
 * @param $mobile  手机号码
 * @param $code    验证码
 * @return bool    短信发送成功返回true失败返回false
 */
function sendSMS($mobile, $code){
    //时区设置:亚洲/上海
    date_default_timezone_set('Asia/Shanghai');
    header('Content-Type: text/plain; charset=utf-8');
    Vendor('Alidayu.vendor.autoload'); 
    Config::load();             //加载区域结点配置   
    $config = tpCache('sms');
    // 初始化用户Profile实例  
    $profile = DefaultProfile::getProfile("cn-hangzhou",$config['sms_appkey'],$config['sms_secretKey']);
    // 增加服务结点  
    DefaultProfile::addEndpoint("cn-hangzhou","cn-hangzhou","Dysmsapi","dysmsapi.aliyuncs.com");  
    // 初始化AcsClient用于发起请求  
    $acsClient= new DefaultAcsClient($profile);  
    // 初始化SendSmsRequest实例用于设置发送短信的参数  
    $request = new SendSmsRequest();  
    // 必填,设置短信接收号码  
    $request->setPhoneNumbers($mobile);  
    // 必填,设置签名名称  
    $request->setSignName($config['sms_product']);  
    // 必填,设置模板CODE  
    $request->setTemplateCode($config['sms_templateCode']); 
    // 设置模板参数     
    $request->setTemplateParam(json_encode(array("code"=> $code), JSON_UNESCAPED_UNICODE));
    //发起访问请求  
    $acsResponse = $acsClient->getAcsResponse($request); 
    //返回请求结果  
    $result = json_decode(json_encode($acsResponse),true); 
    if ($result&&$result['Code']=='OK'){ 
        // 从数据库中查询是否有验证码
        $data = M('sms_log')->where("code = '".$code."' and add_time > ".(time()-$config['sms_time_out']))->find();
        // 没有就插入验证码,供验证用
        if(empty($data)){
            M('sms_log')->add(array('mobile' => $mobile, 'code' => $code, 'add_time' => time(), 'session_id' => SESSION_ID));
        }
        return true;        
    }else{
        return false;
    }
}

附件下载
借鉴了创意随想:https://blog.csdn.net/gqy133112079/article/details/87874460