一、短信服务使用阿里大于提供的短信接口

阿里大于官方网站上的接入流程:

在阿里大于申请接口后,需要做以下操作:

  1. 申请签名
  2. 申请短信模板
  3. 创建Accesskey,可以通过权限最大的Accesskey创建子Accesskey,便于权限控制
  4. 充值,如果账户中余额不足的话,是发布出去短信的

二、在laravel中使用阿里大于接口

之前在laravel中使用composer安装阿里大于的扩展包,但是尝试之后,一直返回code=11的错误码,是扩展包的权限不足,具体原因还未找到

然后就在laravel引入官方提供的skd包,下面介绍具体在laravel中使用官方sdk包的过程:

  1. 从官网上下载php版短信服务的skd包,解压后有四个文件夹,分别是:api_demo,api_sdk,msg_demo,msg_sdk
  2. 在laravel中根目录下的 app文件夹下新建一个文件夹 libs,把api_sdk和msg_sdk复制到libs文件夹下.
  3. 利用composer自动加载文件     关于laravel利用composer自动加载介绍,请参考:http://laravelacademy.org/post/7074.html
  4. 找到项目根目录下的composer.json文件,利用composer的classmap选项加载

    然后执行 composer dumpautoload

  5. 代码:
    1.  <?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+阿里大于实现发送验证码短信的更多相关文章

  1. 网易云信,发送验证码短信C#版代码

    网易云信发送短信代码(C# 版)....需要注意SHA1 String有转换小写!!!! using System; using System.Collections.Generic; using S ...

  2. Laravel5中使用阿里大于(鱼)发送短信验证码

    在做用户注册和个人中心的安全管理时,我实现借助第三方短信平台(阿里大于(鱼))在Laravel框架中进行手机验证的设置:阿里大于,是阿里通信旗下优质便捷的云通信服务平台,整合了三大运营商的通信能力,为 ...

  3. 四:java调接口实现发送手机短信验证码功能

    1.点击获取验证码之前的样式: 2.输入正确的手机号后点击获取验证码之后的样式: 3.如果手机号已经被注册的样式: 4.如果一个手机号一天发送超过3次就提示不能发送: 二:前台的注册页面的代码:reg ...

  4. Java调用WebService接口实现发送手机短信验证码功能,java 手机验证码,WebService接口调用

    近来由于项目需要,需要用到手机短信验证码的功能,其中最主要的是用到了第三方提供的短信平台接口WebService客户端接口,下面我把我在项目中用到的记录一下,以便给大家提供个思路,由于本人的文采有限, ...

  5. java后台通过Servlet给用户发送手机短信验证码,第一次写勿喷,欢迎转载

    短信验证码跟自己在Servlet画的验证码不一样,我们不用管短信验证码是怎么产生的,我们只需要关注如何调用短信验证码,在短信验证码里面添加 自己需要的随机数或者其他的内容. 现在直接上流程 第一步找一 ...

  6. 发送SMS短信(JSON) 转载

    http://blog.csdn.net/ldl22847/article/details/42553883 public   static string GetMobileConfByUserId( ...

  7. 利用java实现的一个发送手机短信的小例子

    今天闲来无事,在微博上看到一个关于用java实现的一个发送手机短信的程序,看了看,写的不太相信,闲的没事,把他整理下来,以后可能用得着 JAVA发送手机短信,流传有几种方法:(1)使用webservi ...

  8. 云片-语音验证码--短信验证码 - PHP接口

    ///////////////////////语音验证///////////////////////////// /**  * 发送短信(语音验证码)云片语音服务  * @param  $apikey ...

  9. yii2验证密码->手机号码短信发送>手机短信发送频繁问题

    <?php namespace frontend\models; use Yii; use yii\base\Model; class ChangeMobileSendRequestForm e ...

随机推荐

  1. 【转】Wireshark和Fiddler分析Android中的TLS协议包数据(附带案例样本)

    本文转自:http://www.wjdiankong.cn/wireshark%E5%92%8Cfiddler%E5%88%86%E6%9E%90android%E4%B8%AD%E7%9A%84tl ...

  2. Deep Learning.ai学习笔记_第三门课_结构化机器学习项目

    目录 第一周 机器学习策略(1) 第二周 机器学习策略(2) 目标:学习一些机器学习优化改进策略,使得搭建的学习模型能够朝着最有希望的方向前进. 第一周 机器学习策略(1) 搭建机器学习系统的挑战:尝 ...

  3. 转sql server新增、修改字段语句(整理)

    添加字段的SQL语句的写法: 通用式: alter table [表名] add [字段名] 字段属性 default 缺省值 default 是可选参数增加字段: alter table [表名] ...

  4. maven在Idea建立工程,运行出现Server IPC version 9 cannot communicate with client version 4错误

    问题的根源在于,工程当中maven dependencies里面的包,有个hadoop-core的包,版本太低,这样,程序里面所有引用到org.apache.hadoop的地方,都是低版本的,你用的是 ...

  5. mysqldump详解之--master-data

    在前一篇文章中,有提到mysqldump的--single-transaction参数.另外还有个很重要,也是运维中经常用到的参数:--master-data,网上很多关于MySQL不停机备份的实现都 ...

  6. IoC之AutoFac(二)——解析服务

    阅读目录 一 Resolve方法 二 TryResolve和ResolveOptional方法 三 解析服务时传参 3.1 可用参数类型 3.2 带反射组件的参数 3.3 具有Lambda表达式组件的 ...

  7. AI习惯的数学书籍、计算机经典书籍

    http://download.csdn.net/download/wz619899442/8405297 https://www.amazon.com/Introduction-Automata-T ...

  8. re.S、 re.M

    re.S是代表.可以匹配\n以及“  re.M是多行   code import re a = '''asdfsafhellopass: 234455 worldafdsf ''' b = re.fi ...

  9. 【转载】基于rasa的对话系统搭建(上)

    文章介绍使用rasa nlu和 rasa core 实现一个电信领域对话系统demo,实现简单的业务查询办理功能,更完善的实现需要进一步数据的收集.demo基于玩具数据集,可以达到下面的效果: Bot ...

  10. Selenium IDE 基本概念

    要学会Selenium不难,难的是首先你懂不懂测试.没有测试的基础知识,没有对测试理论的实践和认知,没有对测试领域的情感和钻研精神,学会了Selenium这个工具对事情也没有实际帮助. 我是一个技术思 ...