ThinkPHP5框架接入阿里云短信最新版(原大鱼)的方法

下载官方SDK

第一步肯定是下载官方的SDK了,但是官方下载的SDK内容有一些多,我们不必全部都要,只将下载好的SDK文件中的api_sdk文件,改名aliyunsms,然后放入ThinkPHP5框架的扩展目录Vendor下即可,下载地址传送门

这个api_sdk就是短信服务API接口依赖的SDK

功能实现

短信功能可以在用户登录,注册的时候都会使用,所以我们最好还是直接封装一个公共函数,我这里直接放在Api下面了/app/api/common.php,这里的app你们那里应该是application,因为我这里改了一下配置,不影响

/**
 * 发送验证码
 * @param tel 手机号
 * @param code 验证码
 */
function send_sms_code($tel,$code) { require_once VENDOR_PATH . 'aliyunsms/vendor/autoload.php'; require_once VENDOR_PATH . 'aliyunsms/lib/Api/Sms/Request/V20170525/SendSmsRequest.php'; Config::load(); $config = \config('aliyun_sms'); //获取配置信息 $accessKeyId = $config['KeyID'];//阿里云短信keyId $accessKeySecret = $config['KeySecret'];//阿里云短信keysecret //短信API产品名 $product = "Dysmsapi"; //短信API产品域名 $domain = "dysmsapi.aliyuncs.com"; //暂时不支持多Region $region = "cn-hangzhou"; //初始化访问的acsCleint $profile = DefaultProfile::getProfile($region, $accessKeyId, $accessKeySecret); DefaultProfile::addEndpoint("cn-hangzhou", "cn-hangzhou", $product, $domain); $acsClient= new DefaultAcsClient($profile); $request = new SendSmsRequest(); $request->setPhoneNumbers($tel);//必填-短信接收号码 $request->setSignName($config['SignName']);//必填-短信签名: 如何添加签名可以参考阿里云短信或TPshop官方文档 //必填-短信模板Code $request->setTemplateCode($config['TemplateCode']);//必填-短信签名: 如何添加签名可以参考阿里云短信或TPshop官方文档 //选填-假如模板中存在变量需要替换则为必填(JSON格式) $request->setTemplateParam("{\"code\":$code}");//短信签名内容: //发起访问请求 $resp = $acsClient->getAcsResponse($request); //短信发送成功返回True,失败返回false if ($resp && $resp->Code == 'OK') { return array('status' => 1, 'msg' => $resp->Code); } else { return array('status' => -1, 'msg' => $resp->Message . ' subcode:' . $resp->Code); } }

里面的参数不用做任何修改,可以修改一下你存放的路径,在头部use类库就可以

use Aliyun\Core\Config; use Aliyun\Core\Profile\DefaultProfile; use Aliyun\Core\DefaultAcsClient; use Aliyun\Api\Sms\Request\V20170525\SendSmsRequest;

\config('aliyun_sms')是获取配置信息,在/app/config/config.php中添加如下配置

//阿里云SMS配置
'aliyun_sms' => [ 'KeyID' => '', //阿里云生成的 accessKeyId 'KeySecret' => '', //阿里云生成的 accessKeySecret 'SignName' => '沈唁志', //短信签名 'TemplateCode' => 'SMS_130XXXXXX' //短信模板 ID ],

调用函数

调用函数:send_sms_code('手机号','验证码')

/**
 * 发送验证码
 * @param tel 手机号
 * @param code 验证码
 */
public function sendSms($tel) { $code = rand(1000,9999); $res = send_sms_code($tel,$code); if($res['msg'] == 'OK'){ return $this->response(200,'发送成功!'); }else{ return $this->response(400,'发送失败!'); } }

就这样,ThinkPHP5框架短信集成成功!

 

转载于:https://www.cnblogs.com/jasonLiu2018/articles/10839609.html

你可能感兴趣的:(ThinkPHP5框架接入阿里云短信最新版(原大鱼)的方法)