laravel+阿里大于实现发送验证码短信
一、短信服务使用阿里大于提供的短信接口
阿里大于官方网站上的接入流程:
在阿里大于申请接口后,需要做以下操作:
- 申请签名
- 申请短信模板
- 创建Accesskey,可以通过权限最大的Accesskey创建子Accesskey,便于权限控制
- 充值,如果账户中余额不足的话,是发布出去短信的
二、在laravel中使用阿里大于接口
之前在laravel中使用composer安装阿里大于的扩展包,但是尝试之后,一直返回code=11的错误码,是扩展包的权限不足,具体原因还未找到
然后就在laravel引入官方提供的skd包,下面介绍具体在laravel中使用官方sdk包的过程:
- 从官网上下载php版短信服务的skd包,解压后有四个文件夹,分别是:api_demo,api_sdk,msg_demo,msg_sdk
- 在laravel中根目录下的 app文件夹下新建一个文件夹 libs,把api_sdk和msg_sdk复制到libs文件夹下.
- 利用composer自动加载文件 关于laravel利用composer自动加载介绍,请参考:http://laravelacademy.org/post/7074.html
- 找到项目根目录下的composer.json文件,利用composer的classmap选项加载
然后执行 composer dumpautoload
- 代码:
- <?php
- //use 命名空间+类名
- use Aliyun\Core\Config; //命名空间 Aliyun\Core 类名是 Config (命名空间不必一定存在)
- use Aliyun\Core\Profile\DefaultProfile;
- use Aliyun\Core\DefaultAcsClient;
- use Aliyun\Api\Sms\Request\V20170525\SendSmsRequest;
- use Aliyun\Api\Sms\Request\V20170525\QuerySendDetailsRequest;
- use App\Http\Controllers\Controller;
- // 加载区域结点配置
- Config::load();
- class SmsController extends Controller
- {
- /**
- * 构造器
- * @param string $accessKeyId 必填,AccessKeyId
- * @param string $accessKeySecret 必填,AccessKeySecret
- */
- public function __construct($accessKeyId="######",$accessKeySecret="#######")
- {
- // 短信API产品名
- $product = "Dysmsapi";
- // 短信API产品域名
- $domain = "dysmsapi.aliyuncs.com";
- // 暂时不支持多Region
- $region = "cn-hangzhou";
- // 服务结点
- $endPointName = "cn-hangzhou";
- // 初始化用户Profile实例
- $profile = DefaultProfile::getProfile($region, $accessKeyId, $accessKeySecret);
- // 增加服务结点
- DefaultProfile::addEndpoint($endPointName, $region, $product, $domain);
- // 初始化AcsClient用于发起请求
- $this->acsClient = new DefaultAcsClient($profile);
- }
- /**
- * 发送短信范例
- * @param [type] $phoneNumbers 必填, 短信接收号码
- * @param string $signName 必填, 短信签名,应严格"签名名称"填写,
- * @param string $templateCode 必填, 短信模板Code,应严格按"模板CODE"填写,
- * @param [type] $outId 选填, 假如模板中存在变量需要替换则为必填项
- * @return [type] [description]
- */
- public function sendSms($phoneNumbers,$signName="XX软件",$templateCode="SMS_XXXXXX",$outId=null)
- {
- // 初始化SendSmsRequest实例用于设置发送短信的参数
- $request = new SendSmsRequest;
- // 必填,设置雉短信接收号码
- $request->setPhoneNumbers($phoneNumbers);
- // 必填,设置签名名称
- $request->setSignName($signName);
- // 必填,设置模板CODE
- $request->setTemplateCode($templateCode);
- $num = rand(100000,999999);
- // 可选,设置模板参数
- $request->setTemplateParam(json_encode(
- Array(
- "code" => "$num"
- )
- ));
- // 可选,设置流水号
- if($outId) {
- $request->setOutId($outId);
- }
- // 发起访问请求
- $acsResponse = $this->acsClient->getAcsResponse($request);
- }
- /**
- * 查询短信发送情况范例
- * @param [type] $phoneNumbers 必填, 短信接收号码
- * @param [type] $sendDate 必填,短信发送日期,格式Ymd,支持近30天记录查询
- * @param integer $pageSize 必填,分页大小
- * @param integer $currentPage 必填,当前页码
- * @param [type] $bizId 选填,短信发送流水号
- * @return [type] [description]
- */
- public function queryDetails($phoneNumbers,$sendDate,$pageSize=10,$currentPage=1,$bizId=null)
- {
- // 初始化QuerySendDetailsRequest实例用于设置短信查询的参数
- $request = new QuerySendDetailsRequest();
- $request->setPhoneNumber($phoneNumbers);
- $request->setSendDate($sendDate);
- $request->setPageSize($pageSize);
- $request->setCurrentPage($currentPage);
- if($bizId) {
- $request->setBizId($bizId);
- }
- $acsResponse = $this->acsClient->getAcsResponse($request);
- }
- }
- 之后用就实例化调用方法就可以了。
本文参考:http://blog.csdn.net/lishanleilixin/article/details/78126955
laravel+阿里大于实现发送验证码短信的更多相关文章
- 网易云信,发送验证码短信C#版代码
网易云信发送短信代码(C# 版)....需要注意SHA1 String有转换小写!!!! using System; using System.Collections.Generic; using S ...
- Laravel5中使用阿里大于(鱼)发送短信验证码
在做用户注册和个人中心的安全管理时,我实现借助第三方短信平台(阿里大于(鱼))在Laravel框架中进行手机验证的设置:阿里大于,是阿里通信旗下优质便捷的云通信服务平台,整合了三大运营商的通信能力,为 ...
- 四:java调接口实现发送手机短信验证码功能
1.点击获取验证码之前的样式: 2.输入正确的手机号后点击获取验证码之后的样式: 3.如果手机号已经被注册的样式: 4.如果一个手机号一天发送超过3次就提示不能发送: 二:前台的注册页面的代码:reg ...
- Java调用WebService接口实现发送手机短信验证码功能,java 手机验证码,WebService接口调用
近来由于项目需要,需要用到手机短信验证码的功能,其中最主要的是用到了第三方提供的短信平台接口WebService客户端接口,下面我把我在项目中用到的记录一下,以便给大家提供个思路,由于本人的文采有限, ...
- java后台通过Servlet给用户发送手机短信验证码,第一次写勿喷,欢迎转载
短信验证码跟自己在Servlet画的验证码不一样,我们不用管短信验证码是怎么产生的,我们只需要关注如何调用短信验证码,在短信验证码里面添加 自己需要的随机数或者其他的内容. 现在直接上流程 第一步找一 ...
- 发送SMS短信(JSON) 转载
http://blog.csdn.net/ldl22847/article/details/42553883 public static string GetMobileConfByUserId( ...
- 利用java实现的一个发送手机短信的小例子
今天闲来无事,在微博上看到一个关于用java实现的一个发送手机短信的程序,看了看,写的不太相信,闲的没事,把他整理下来,以后可能用得着 JAVA发送手机短信,流传有几种方法:(1)使用webservi ...
- 云片-语音验证码--短信验证码 - PHP接口
///////////////////////语音验证///////////////////////////// /** * 发送短信(语音验证码)云片语音服务 * @param $apikey ...
- yii2验证密码->手机号码短信发送>手机短信发送频繁问题
<?php namespace frontend\models; use Yii; use yii\base\Model; class ChangeMobileSendRequestForm e ...
随机推荐
- IIS7常见错误及解决方法
IIS7常见错误及解决方法 问题一:HTTP 错误 500.19 - Internal Server Error 无法访问请求的页面,因为该页的相关配置数据无效. 详细错误信息模块 IIS We ...
- android面试题总结加强再加强版(一)
在加强版的基础上又再加强的android应用面试题集 有些补充略显臃肿,只为学习 1.activity的生命周期. 方法 描述 可被杀死 下一个 onCreate() 在activity第一次被创建的 ...
- wget整站抓取、网站抓取功能;下载整个网站;下载网站到本地
wget -r -p -np -k -E http://www.xxx.com 抓取整站 wget -l 1 -p -np -k http://www.xxx.com 抓取第一级 - ...
- 【JavaScript从入门到精通】第三课 初探JavaScript魅力-03
第三课 初探JavaScript魅力-03 函数传参 上节课的时候我们已经讲了什么是函数,实际上,函数在功能上就类似于css的class一样,将一段代码包裹起来使用.为了让函数的功能更加的丰富和实用, ...
- CodeForces - 344E Read Time (模拟题 + 二分法)
E. Read Time time limit per test 1 second memory limit per test 256 megabytes input standard input o ...
- 使用日志服务进行Kubernetes日志采集
阿里云容器服务Kubernetes集群集成了日志服务(SLS),您可在创建集群时启用日志服务,快速采集Kubernetes 集群的容器日志,包括容器的标准输出以及容器内的文本文件. 新建 Kubern ...
- MySQL 服务常用操作命令
1.MySQL 服务设置 在使用 mysql.server 命令之前需要将路径 /usr/local/mysql/support-files 添加到系统环境变量中. export PATH=$PATH ...
- Mathematica 11.1.0 下载及注册流程
新版本注册机: http://files.cnblogs.com/files/dabaopku/Mathematica_11.1.0_Keygen.exe.zip 类似于11.0, 在控制台运行, 比 ...
- SNF软件开发机器人-子系统-功能-功能类型(普通表改为树型表)
功能类型(普通表改为树型表) 功能类型分为普通功能和树形功能.因为资源表中不存在ParentId字段,故只能将多表的主表改为树型表. 1.效果展示: 2.使用说明: (1)当需要用一张普通的资源表显示 ...
- HADOOP security
https://www.microsoft.com/en-us/trustcenter/security/azure-security https://docs.microsoft.com/en-us ...