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