如何在thinkphp 阿里云oss5中实现阿里云云通信发短信

最近打算用Git来管理本站的程序代码,但是程序里有大量的图片文件,放Git里显然不太合适,最终决定存到阿里云OSS,这样也不用老去备份程序和图片,也方便用Git做自动部署。一直以来我都是用FTP上传程序的,这样会导致经常忘记传一些文件,有时候也没办法还原回滚代码。
本站采用ThinkPHP5开发,集成阿里云可以用Composer快速引用。首先把阿里云OSS用Composer引入进来:
composer require aliyuncs/oss-sdk-php
这时候阿里云OSS的SDK就放到vendor目录下了,我们无需改动SDK代码,然后再程序的公共文件里放入以下函数,我自己是封装了一个类,不过为了大家引用方便,改成了一个函数分享出来。
代码如下:
* 阿里云OSS上传
* @access public
$object 阿里云OSS的存储路径,例如: images/huoduan.jpg
服务器本地的文件路径,例如: /home/www/huoduan/tmp/huoduan.jpg
阿里云OSS的bucket名称,例如:huoduan
* @return bool
function ossUpload($object,$Path,$bucket='huoduan'){
//以下配置信息可以放到配置文件里
$keyId = '88huoduanCOMiiii';//您的Access Key ID
$keySecret = '6yTerXi8dDJiSghiugrtufuTks2OBX';//Access Key Secret
$endpoint = 'oss-cn-hangzhou.aliyuncs.com';//阿里云oss外网地址endpoint
$oss=new \OSS\OssClient($keyId,$keySecret,$endpoint);
$oss-&uploadFile($bucket, $object, $Path);
} catch(\Exception $e) {
return $e-&getMessage();//如果出错返回错误
其中的Access Key ID和Access Key Secret是您访问阿里云API的密钥,可以在https://ak-console.aliyun.com/ 找到。代码很简单,其它支持composer的PHP框架都可以使用。
阿里云OSS确实是个好东西,价格不贵也安全稳定。没有更多推荐了,
不良信息举报
举报内容:
ThinkPHP5 集成阿里云SMS短信服务--验证码发送
举报原因:
原文地址:
原因补充:
最多只允许输入30个字
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!ThinkPHP 5如何接入阿里云云通信 - ThinkPHP框架
如何在thinkphp 5中实现阿里云云通信发短信
阿里大于并入阿里云之后,阿里大于维护原有客户。新的客户可以在阿里云-云通信里购买短信服务。首先我们可以看下阿里云-云通信的菜单位置:
添加短信服务之后就可以在左侧看到短信服务的菜单:
使用阿里云-云通信要留意三个地方:1)设置eccesskeys--这个就是短信服务的账号和密码。2)设置短信签名。3)设置短信模板。因为阿里云-云通信本身有使用教程和客户服务,如何申请和使用我们就不过多讲述,下边我们下载一个基于thinkphp 5的WSTMart多用户开源电子商务系统讲解一下:如何使用和实现thinkphp 5框架中接入阿里云-云通信功能。
首先,在WSTMart多用户商城官网下载源代码 http://www.wstmart.net/
1、在WSTMart的“拓展管理”-“插件管理”中找到“短信接口(阿里云-云通信)”插件,点击右侧的“安装”进行启用。然后在“设置”界面对阿里云-云通信进行设置:
上边的Access Key ID、Access Key secret以及短信签名为必填。发送的模板ID则选填,如果用户没有填写,则系统不会发送该情况下的短信。
2、在商城设置中开启短信功能:
要留意的是,wstmart中默认的短信发送间隔是2分钟,阿里云-云通信则最短1分钟1条,1小时5条,1天10条。设置到这里,基本上wstmart中就可以使用短信服务的功能了。
3、实现原理:
1)下载阿里云-云通信SDK放到到阿里云-云通信插件目录下,该名为sdk。
2)在发短信的位置埋入钩子。在类文件wstmart\common\model\LogSms.php中我们对发送短信的位置埋入钩子。
当程序运行到此处的时候,系统就会自动检测在此钩子处监听的插件有哪些。因为我们前边只开启了阿里云-云通信,所以程序就会进入到阿里云-云通信的插件函数里:
sendSMS写在插件的model里,我们按照阿里云-云通信的演示代码封装成一个http接口函数:public&function&http($params){
&&&&&&&&require_once&&WST_ADDON_PATH.'dysms/sdk/vendor/autoload.php';
&&&&&&&&Config::load();
&&&&&&&&$smsConf&=&$this-&getConfigs();
&&&&&&&&$accessKeyId&=&$smsConf['smsKey'];;
&&&&&&&&$accessKeySecret&=&$smsConf['smsPass'];
&&&&&&&&$product&=&&Dysmsapi&;
&&&&&&&&$domain&=&&dysmsapi.aliyuncs.com&;
&&&&&&&&$region&=&&cn-hangzhou&;
&&&&&&&&$profile&=&DefaultProfile::getProfile($region,&$accessKeyId,&$accessKeySecret);
&&&&&&&&DefaultProfile::addEndpoint(&cn-hangzhou&,&&cn-hangzhou&,&$product,&$domain);
&&&&&&&&$acsClient=&new&DefaultAcsClient($profile);
&&&&&&&&$request&=&new&SendSmsRequest();
&&&&&&&&$request-&setPhoneNumbers($params['phoneNumber']);
&&&&&&&&//必填-短信签名
&&&&&&&&$request-&setSignName($smsConf[&signature&]);
&&&&&&&&//必填-短信模板Code
&&&&&&&&$request-&setTemplateCode($smsConf[$params['params']['tpl']['tplCode']]);
&&&&&&&&$request-&setTemplateParam($params['content']);
&&&&&&&&//选填-发送短信流水号
&&&&&&&&$request-&setOutId($params['timeId']);
&&&&&&&&//发起访问请求
&&&&&&&&$resp&=&$acsClient-&getAcsResponse($request);
&&&&&&&&return&$
}然后我们在在model里边去调用http函数去发短信.public&function&sendSMS($params){
&&&&&&&&.......
&&&&&&&&省略封装函数过程
&&&&&&&&.......
&&&&&&&&$code&=&$this-&http($params);
&&&&&&&&$log&=&model('common/logSms')-&get($params['smsId']);
&&&&&&&&$log-&smsReturnCode&=&json_encode($code);
&&&&&&&&$log-&save();
&&&&&&&&try{
&&&&&&&&&&&&if(strtolower($code-&Message)=='ok'){
&&&&&&&&&&&&&&&&$params['status']['msg']&=&'短信发送成功!';
&&&&&&&&&&&&&&&&$params['status']['status']&=&1;
&&&&&&&&&&&&}
&&&&&&&&}catch&(\Exception&$e)&{
&&&&&&&&&&&&$params['status']['msg']&=&$code-&M
&&&&&&&&&&&&$params['status']['status']&=&-1;
}调试:如果调用阿里云-云通信能正确返回json对象的数据,并且其message的内容为ok。则说明短信发送成功,否则的话则提示用户短信发送失败。
欢迎大家一起分享、交流!
积分:1208
ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。阿里云及腾讯云短信封装(php)下载
[问题点数:0分]
阿里云及腾讯云短信封装(php)下载
[问题点数:0分]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
匿名用户不能发表回复!|

我要回帖

更多关于 thinkphp 阿里云oss 的文章

 

随机推荐