laravel 阿里云怎么使用阿里大于短信发送

laravel5.4通过composer集成阿里大于短信功能_百度文库
您的浏览器Javascript被禁用,需开启后体验完整功能,
赠送免券下载特权
10W篇文档免费专享
部分付费文档8折起
每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
laravel5.4通过composer集成阿里大于短信功能
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
你可能喜欢本文整理借鉴自&https://lvwenhan.com/laravel/420.html
对小公司而言,使用阿里云oss比直接买硬盘要划算的多,不管从存储性价比上还是从网速负载上。最近因为公司的项目有比较大的图片存储访问需求,所以决定使用阿里云的oss。
在研究了一下以后,摆着不自己造轮子的原则,决定使用AliyunOss,国人laravel高手JohnLui封装的一个阿里云oss的操作库。
AliyunOSS 是阿里云 OSS 官方 SDK 的 Composer 封装,支持任何 PHP 项目,包括 Laravel、Symfony、TinyLara 等等。Github 地址:
将以下内容增加到 composer.json:
require: {
"johnlui/aliyun-oss": "*"
然后运行 `composer update。
使用(以 Laravel 为例)
构建 Service 文件
新建 `app/services/OSS.php`,内容可参考::
* Created by PhpStorm.
* User: Administrator
* Time: 10:14
namespace App\S
use JohnLui\AliyunOSS\AliyunOSS;
class OSS {
private $ossC
public function __construct($isInternal = false)
$serverAddress = $isInternal ? Config::get('oss.ossServerInternal') : Config::get('oss.ossServer');
$this-&ossClient = AliyunOSS::boot(
$serverAddress,
Config::get('oss.AccessKeyId'),
Config::get('oss.AccessKeySecret')
// 默认上传文件使用内网,免流量费
public static function upload($ossKey, $filePath, $isInternal = true)
$oss = new OSS($isInternal);
$oss-&ossClient-&setBucket('你的Bucket名字');
$oss-&ossClient-&uploadFile($ossKey, $filePath);
* 直接把变量内容上传到oss
* @param $osskey
* @param $content
public static function uploadContent($osskey,$content)
$oss = new OSS(true); // 上传文件使用内网,免流量费
$oss-&ossClient-&setBucket('你的Bucket名字');
$oss-&ossClient-&uploadContent($osskey,$content);
* 删除存储在oss中的文件
* @param string $ossKey 存储的key(文件路径和文件名)
public static function deleteObject($ossKey)
$oss = new OSS(true); // 上传文件使用内网,免流量费
return $oss-&ossClient-&deleteObject('你的Bucket名字', $ossKey);
* 复制存储在阿里云OSS中的Object
* @param string $sourceBuckt 复制的源Bucket
* @param string $sourceKey - 复制的的源Object的Key
* @param string $destBucket - 复制的目的Bucket
* @param string $destKey - 复制的目的Object的Key
* @return Models\CopyObjectResult
public function copyObject($sourceBuckt, $sourceKey, $destBucket, $destKey)
$oss = new OSS(true); // 上传文件使用内网,免流量费
return $oss-&ossClient-&copyObject($sourceBuckt, $sourceKey, $destBucket, $destKey);
* 移动存储在阿里云OSS中的Object
* @param string $sourceBuckt 复制的源Bucket
* @param string $sourceKey - 复制的的源Object的Key
* @param string $destBucket - 复制的目的Bucket
* @param string $destKey - 复制的目的Object的Key
* @return Models\CopyObjectResult
public function moveObject($sourceBuckt, $sourceKey, $destBucket, $destKey)
$oss = new OSS(true); // 上传文件使用内网,免流量费
return $oss-&ossClient-&moveObject($sourceBuckt, $sourceKey, $destBucket, $destKey);
public static function getUrl($ossKey)
$oss = new OSS();
$oss-&ossClient-&setBucket('你的Bucket名字');
return $oss-&ossClient-&getUrl($ossKey, new \DateTime("+1 day"));
public static function createBucket($bucketName)
$oss = new OSS();
return $oss-&ossClient-&createBucket($bucketName);
public static function getAllObjectKey($bucketName)
$oss = new OSS();
return $oss-&ossClient-&getAllObjectKey($bucketName);
* 获取指定Object的元信息
string $bucketName 源Bucket名称
string $key 存储的key(文件路径和文件名)
* @return object 元信息
public static function getObjectMeta($bucketName, $osskey)
$oss = new OSS();
return $oss-&ossClient-&getObjectMeta($bucketName, $osskey);
增加相关配置
在 app/config/oss.php 中增加以下配置:
* Created by PhpStorm.
* User: Administrator
* Time: 10:17
'useInternal' =& false,//是否使用OSS内网传输来省流量
'ossServer' =& '服务器外网地址', //青岛为 http://oss-cn-qingdao.aliyuncs.com
'ossServerInternal' =& '服务器内网地址', //青岛为 http://oss-cn-qingdao-internal.aliyuncs.com
'AccessKeyId' =& '阿里云给的AccessKeyId',
'AccessKeySecret' =& '阿里云给的AccessKeySecret',
use App\Services\OSS;
OSS::upload('文件名', '本地路径'); // 上传一个文件
echo OSS::getUrl('某个文件的名称'); // 打印出某个文件的外网链接
OSS::createBucket('一个字符串'); // 新增一个 Bucket。注意,Bucket 名称具有全局唯一性,也就是说跟其他人的 Bucket 名称也不能相同。
OSS::getAllObjectKey('某个 Bucket 名称'); // 获取该 Bucket 中所有文件的文件名,返回 Array。
常见问题:
① Undefined index: host
解决方案:
②&The specified bucket is not valid.
错误原因:你们的内外地址肯定是给了http://****.oss-cn-beijing.aliyuncs.com 这里的*是指bucket名字,&&然后你们调用方法的时候有传入了一个bucket的名字, 然后它给你们拼接起来 就变成了http://bucketName.bucketName.oss-cn..........com&&&&
解决方案:在配置文件里面ALIOSS_SERVER=http://oss-cn-beijing.aliyuncs.com&& 比如这个外网地址前面不要加上 bucket名字
项目存在的不足:
目前调用SDK没有一个状态值返回,所以不知道上传是否会存在BUG,过段时间尽量Fork并修改一下。
个人建议:
尽量使用laravel自带的job和queue来完成upload操作。
阅读(...) 评论()最近在使用 Laravel 做一个 side projcet,就顺便在社区里翻了一些相关的文章,在这里也分享给大家 Laravel 入门 使用laravel一分钟搭建CURD后台页面:这篇文章以最短的流程将一个 Laravel 应用 CURD 的流程进行了解
需求场景 发送「验证码」或者「消息通知」,可发送到手机或邮箱中。 完成 首先,在 Laravel 中的规范就是使用 Laravel 的「消息通知」,这里基于场景为「验证码」。这个需求几乎所有软件系统都有使用到。 创建通知场景 第一步,使用 php artis
odi安装报错~~~跪求~~在安装fmw_12.2.1.0.0_odi.jar时候报这个问题,我用的是1.8的jdk而且是在jdk的bin目录下执行的求解答
C+语言从键盘输入3个整数,按照大小顺序从小到大输出,请问怎么写啊C+语言从键盘输入3个整数,按照大小顺序从小到大输出,请问怎么写啊http://zhidao.baidu.com/link?url=K
单片机作业,明天的考试估计会有类型题,但不会,20分啊。。。。呜呜,求帮助最小系统要求能够正确运行,所以晶振是必须的,另外还要能够正确复位,因此,复位电路也是必须的。由于程序要求不复杂,因此使用片内的
VisualStudio2015MVC5还能用ASPX引擎吗?我新建MVC的时候没有像vs2013一样看到能选择视图引擎,在控制器中创建视图也是没有,有没有知道ASPX还能用不?http://stac
PHP&XML解码问题(utf-8/GB2312)我在PHP中向XML文件添加纪录(中文),设置了header函数为UTF-8,XML文件也为UTF-8,但是插入的记录是乱码,求各位解惑。看一
PHP实现唯一登陆,该如何操作PHP唯一登陆,IP会经常变动,请问还有什么办法实现呢,不考虑MAC通过struts2.3.24实现登陆操作----------------------同志你好,我是CS
关于AlertDialogPositiveButton和NegativeButton的问题我使用下面的代码在AlertDialog中显示文件夹列表:ListDialog=newAlertDialog.
IDEAmaven本地依赖出错,更新按钮也没用.被墙了,可以设置代理用
C语言中的指针和数组的初始化chara[]=&&abcdef&&;char*p=&&cdefg&&;a[1]='A';p[1]='A';这段代码有什么问题?#includeintmain(){char
我想实现的功能很简单在panel的item里移除掉一个gridpanel然后再加上另外一个gridpanel,最后重新布局alert(Ext.getCmp('NewsView').items.leng
报错:10-.625:E/AndroidRuntime(1131):java.lang.RuntimeException:Can'tcreatehandlerinsidethrea
重新创建一个实例是吧,把原来的镜像放到新的里面吗?
QQ群空间成员管理功能是如何实现的?有没有相似的例子?有熟悉的朋友请联系我,或者发个例子给我。谢谢。jeans.[img=http://album.hi.csdn.net/app_u
引入DWR服务器推支持后,客户端执行dwr.engine.setActiveReverseAjax(true);代码向服务器发送HTTP长连接,服务器端可以根据scriptSession来对建立HTT
疑问大体状况如题,以下为详细问题:1.小弟的小区用的是人家自己做的单线路由器,也就是用RouterOS做了一个小区内部用的PPPOE服务器。服务器接入的是中国电信网络2.奇怪的事情来了(不知是那个做R
客户端连接到服务器端用execsp_可以查看到连接的用户如果直接把客户端网线拔掉用execsp_查看客户端会话会保存多久本帖最后由vqt2prt12于3:22:0
怎么把Stringsql=&SUM(selectclothes,food,house,walk,friends,hobby,other)fromcoutentwhereyear=&+a;的结果放到窗口php 阿里云短信服务及阿里大鱼实现短信验证码的发送
一:使用阿里云的短信服务
① 申请短信签名
②申请短信模板
③创建Access Key,获取AccessKeyId 与 AccessKeySecret。(为了安全起见,这里建议使用子用户的Access Key)
然后,下载阿里云短信服务的SDK包,
在项目的app目录下新建Libs文件夹,将上图的两个SDK包放入Libs下。
项目根目录找到composer.json文件,打开,修改配置如下
紧接着在项目根目录执行:composer dumpautoload
引入这两个SDK包。
namespace App\Http\Controllers;
use Aliyun\Core\Config;
use Aliyun\Core\Profile\DefaultProfile;
use Aliyun\Core\DefaultAcsClient;
use Aliyun\Api\Sms\Request\V\SendSmsRequest;
use Aliyun\Api\Sms\Request\V\QuerySendDetailsRequest;
Config::load();
public function __construct($accessKeyId="7",$accessKeySecret="44")
$product = "Dysmsapi";
$domain = "dysmsapi.aliyuncs.com";
$region = "cn-hangzhou";
$endPointName = "cn-hangzhou";
$profile = DefaultProfile::getProfile($region, $accessKeyId, $accessKeySecret);
DefaultProfile::addEndpoint($endPointName, $region, $product, $domain);
$this-&acsClient = new DefaultAcsClient($profile);
function getCode($phoneNumbers="1********7",$signName="****",$templateCode="SMS_",$outId=null){
$request = new SendSmsR
$request-&setPhoneNumbers($phoneNumbers);
$request-&setSignName($signName);
$request-&setTemplateCode($templateCode);
$num = rand(100000,999999);
$request-&setTemplateParam(json_encode(
"code" =& "$num"
if($outId) {
$request-&setOutId($outId);
$acsResponse = $this-&acsClient-&getAcsResponse($request);
调用以上getCode方法,即可发送短信验证码。
二:使用阿里大于发送短信验证码
还是必不可少的三点,
① 申请短信签名
②申请短信模板
③获取App Key与 App Secret
把下载好的sdk包放入Libs文件夹下,
执行composer dumpautoload;
实现短信验证码的发送:
="1*********7",$signName="****",$templateCode="SMS_"){
include app_path()."\Libs\sdk_php\TopSdk.php";
date_default_timezone_set('Asia/Shanghai');
$c = new \TopC
$c-&appkey = '';
$c-&secretKey = '';
$req = new \AlibabaAliqinFcSmsNumSendR
$req-&setExtend("123456");
$req-&setSmsType("normal");
$req-&setSmsFreeSignName($signName);
// $num = rand(100000,999999);
$req-&setSmsParam("{\"code\":\"12334\",\"product\":\"alidayu\"}");
$req-&setRecNum($phoneNumbers);
$req-&setSmsTemplateCode($templateCode);
$resp = $c-&execute($req);
// var_dump($c-&execute($req));
阿里大于短信使用api :
相关博客:
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!Laravel5中使用阿里大于(鱼)发送短信验证码
在做用户注册和个人中心的安全管理时,我实现借助第三方短信平台(阿里大于(鱼))在Laravel框架中进行手机验证的设置;阿里大于,是阿里通信旗下优质便捷的云通信服务平台,整合了三大运营商的通信能力,为开发者提供简洁易用的短信/语音API,三网合一通道,按需付费。
安装laravel阿里大于(鱼)服务
composer require iscms/alisms-for-laravel
注册服务(config/app.php)
在文件中找到Providers数组,写入
iscms/Alisms/AlidayuServiceProvider::class
生成阿里大于(鱼)配置文件(config文件夹)
php artisan vendor:publish
修改阿里大于(鱼)配置文件(alisms.php)文件为:
'KEY' =&env('ALISMS_KEY',null),
'SECRETKEY'=&env('ALISMS_SECRETKEY',null)
laravel根目录下找到.env文件,把阿里大鱼的App key和配置成全局变量(http://www.alidayu.com/)
ALISMS_KEY=234*****3
ALISMS_SECRETKEY=****************
在您需要调用短信服务的控制器中,引用SMS
use iscms\Alisms\SendsmsPusher as S
public function __construct(Sms $sms)
$this-&sms=$
public function Alidayu(Request $request){
$phone = $request -&input('phone','1508*****55'); // 用户手机号,接收验证码
$name = '小张个人博客';
// 短信签名,可以在阿里大鱼的管理中心看到
$num = rand(9999); // 生成随机验证码
$smsParams = [
'number' =& "$num"
$content = json_encode($smsParams); // 转换成json格式的
$code = "SMS_63****73";
// 阿里大于(鱼)短信模板ID
$request -&session()-&put('alidayu',$num);
// 存入session 后面做数据验证
$result=$this-&sms-&send($phone,$name,$content,$code);
echo "验证码:".session('alidayu').'&br/&';
if(property_exists($request,'result')){
// 使用PHP函数json_encode方法将给定数组转化为JSON:
return json_encode(['ResultData' =& '成功', 'info' =& '已发送']);
return json_encode(['ResultData' =& '失败', 'info' =& '重复发送']);
$phone 手机号,用户输入的手机号$name
短信签名,阿里大鱼申请的短信签名的名字$content 替换短信模板中的变量,JSON字符串格式,所有值都是字符串,不能有整形$code
阿里大鱼申请的短信模ID:SMS_39***4
阿里大于(鱼)短信模板(http://www.alidayu.com/)
模板名称: 身份验证
模板ID: SMS_39***4
*模板内容:验证码${code},您正在进行个人身份验证,打死不要告诉别人哦!
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!}

我要回帖

更多关于 laravel使用阿里云sms 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信