阿里云PHP SMS短信服务验证码发送方法


Posted in PHP onJuly 11, 2017

开通SMS服务

首先去这个网站开通阿里云的SMS短信服务:https://www.aliyun.com/product/sms?spm=5176.8142029.388261.295.vU5T5g

创建签名、模板

要使用短信服务器需要先创建签名和模板,并提交给阿里云审核通过才可以正常使用短信服务。

阿里云PHP SMS短信服务验证码发送方法

创建签名

创建签名的时候注意一下签名名称,其他的话就不累赘了。

阿里云PHP SMS短信服务验证码发送方法

记住签名名称

现在请记住你创建的签名名称,一会在代码中需要使用。

创建模板

创建模板也很简单,阿里云已经把要如何填写写的很清楚了。

阿里云PHP SMS短信服务验证码发送方法

查看并记住模板CODE

返回你的控制台,当你的模板审核通过时这就会出现大于0的数。

点击这个数,会进入模板管理面板就能看到你的模板CODE了,请记住他。

阿里云PHP SMS短信服务验证码发送方法

阿里云PHP SMS短信服务验证码发送方法

创建并记住KeyId和KeySecret

到控制台,把鼠标放到右上角你的用户名的位置会出现一个accessKeySecret点进去就可以创建KeyId和KeySecret了,如果他提醒你用RAM安全什么的,你看你要不要给你的员工分配权限,如果要的话就用RAM,否则就直接点击继续使用就行了。

阿里云PHP SMS短信服务验证码发送方法

阿里云PHP SMS短信服务验证码发送方法

下载阿里云短信服务器PHP-SDK

官方下载地址:https://help.aliyun.com/document_detail/55359.html?spm=5176.8195934.507901.12.b1ngGK
本教程使用SDK下载地址:http://pan.baidu.com/s/1bpF5B8z

密匙:pult

阿里云PHP SMS短信服务验证码发送方法

创建PHP-SMS项目

创建代码文件

创建你的代码文件,并把这个文件放在刚才下载的SDK文件夹中的api_sdk的aliyun-php-sdk-core目录下,并把一下代码写入代码文件。

aliyun-php-sdk-core目录里包含了SMS短信服务的各种模块,所以必须得放在这里面才能使用服务

<?php
  include 'Config.php';
  include_once 'Request/V20170525/SendSmsRequest.php';
  include_once 'Request/V20170525/QuerySendDetailsRequest.php';
  $accessKeyId = "LTAIvAaNs61JeBiN";
//阿里云KeyId 
  $accessKeySecret = "Y3H7durYJ6GIqmJJrsdbJwPi6E8O8M";
//阿里云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;
  //必填-短信接收号码。支持以逗号分隔的形式进行批量调用,批量上限为20个手机号码,批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式
  $request->setPhoneNumbers("123456789");
//这里填你要发送的电话号码
  //必填-短信签名
  $request->setSignName("xx项目");
//这里就是刚才让你记住的项目签名
  //必填-短信模板Code
  $request->setTemplateCode("SMS_123456");
//这里就是模板CODE
  //选填-假如模板中存在变量需要替换则为必填(JSON格式)
  $request->setTemplateParam("{\"name\":\"郭涛\",\"number\":\"316\"}");
  //选填-发送短信流水号
  $request->setOutId("1234");//照填就行了
  //发起访问请求
  $acsResponse = $acsClient->getAcsResponse($request);
   var_dump($acsResponse);//返回结果

移入Requset

还是在下载的SDK文件夹中的api_sdk目录下,有一个交Dysmsapi的文件夹,打开这个文件夹就会看到一个叫Request的文件夹,把这个Reques。的件夹复制粘贴到aliyun-php-sdk-core里面。说实在的我搞不清阿里云这个为什么要这样分开装SDK,可能是我使用的姿势不对吧,如果有大神搞得清,还劳烦赐教小弟,好人一生平安。
移入后,打开Request\V20170525目录里有一个SendSmsRequest.php的源文件。请屏蔽第一行的空间命名。 也就是这一行namespace Dysmsapi\Reqest\V20170525;最后效果如下

<?php
/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements. See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership. The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License. You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied. See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */
//namespace Dysmsapi\Request\V20170525;//就是屏蔽这一行代码!!!!
class SendSmsRequest extends \RpcAcsRequest
{
  function __construct()
  {
    parent::__construct("Dysmsapi", "2017-05-25", "SendSms");
  }
  private $outId;
  private $signName;
  private $ownerId;
  private $resourceOwnerId;
  private $templateCode;
  private $phoneNumbers;
  private $resourceOwnerAccount;
  private $templateParam;
  public function getOutId() {
    return $this->outId;
  }
  public function setOutId($outId) {
    $this->outId = $outId;
    $this->queryParameters["OutId"]=$outId;
  }
  public function getSignName() {
    return $this->signName;
  }
  public function setSignName($signName) {
    $this->signName = $signName;
    $this->queryParameters["SignName"]=$signName;
  }
  public function getOwnerId() {
    return $this->ownerId;
  }
  public function setOwnerId($ownerId) {
    $this->ownerId = $ownerId;
    $this->queryParameters["OwnerId"]=$ownerId;
  }
  public function getResourceOwnerId() {
    return $this->resourceOwnerId;
  }
  public function setResourceOwnerId($resourceOwnerId) {
    $this->resourceOwnerId = $resourceOwnerId;
    $this->queryParameters["ResourceOwnerId"]=$resourceOwnerId;
  }
  public function getTemplateCode() {
    return $this->templateCode;
  }
  public function setTemplateCode($templateCode) {
    $this->templateCode = $templateCode;
    $this->queryParameters["TemplateCode"]=$templateCode;
  }
  public function getPhoneNumbers() {
    return $this->phoneNumbers;
  }
  public function setPhoneNumbers($phoneNumbers) {
    $this->phoneNumbers = $phoneNumbers;
    $this->queryParameters["PhoneNumbers"]=$phoneNumbers;
  }
  public function getResourceOwnerAccount() {
    return $this->resourceOwnerAccount;
  }
  public function setResourceOwnerAccount($resourceOwnerAccount) {
    $this->resourceOwnerAccount = $resourceOwnerAccount;
    $this->queryParameters["ResourceOwnerAccount"]=$resourceOwnerAccount;
  }
  public function getTemplateParam() {
    return $this->templateParam;
  }
  public function setTemplateParam($templateParam) {
    $this->templateParam = $templateParam;
    $this->queryParameters["TemplateParam"]=$templateParam;
  }
}

完成

运行试试吧

阿里云PHP SMS短信服务验证码发送方法 
阿里云PHP SMS短信服务验证码发送方法

以上所述是小编给大家介绍的阿里云PHP SMS短信服务验证码发送方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

PHP 相关文章推荐
一个显示天气预报的程序
Oct 09 PHP
php不写闭合标签的好处
Mar 04 PHP
ThinkPHP验证码使用简明教程
Mar 05 PHP
destoon整合UCenter图文教程
Jun 21 PHP
destoon供应信息title调用出公司名称的方法
Aug 22 PHP
php将数组转换成csv格式文件输出的方法
Mar 14 PHP
PHP SPL标准库之文件操作(SplFileInfo和SplFileObject)实例
May 11 PHP
php观察者模式应用场景实例详解
Feb 03 PHP
浅谈关于PHP解决图片无损压缩的问题
Sep 01 PHP
PHP如何实现订单的延时处理详解
Dec 30 PHP
thinkPHP5.0框架事务处理操作简单示例
Sep 07 PHP
Laravel框架查询构造器简单示例
May 08 PHP
PHP实现阿里大鱼短信验证的实例代码
Jul 10 #PHP
yii2局部关闭(开启)csrf的验证的实例代码
Jul 10 #PHP
PHP实现登陆并抓取微信列表中最新一组微信消息的方法
Jul 10 #PHP
PHP基于socket实现的简单客户端和服务端通讯功能示例
Jul 10 #PHP
PHP正则匹配操作简单示例【preg_match_all应用】
Jul 10 #PHP
php使用flock阻塞写入文件和非阻塞写入文件的实例讲解
Jul 10 #PHP
form自动提交实例讲解
Jul 10 #PHP
You might like
php使用goto实现自动重启swoole、reactphp、workerman服务的代码
2020/04/13 PHP
javascript Select标记中options操作方法集合
2008/10/22 Javascript
用JS提交参数创建form表单在FireFox中遇到的问题
2013/01/16 Javascript
js导出格式化的excel 实例方法
2013/07/17 Javascript
JavaScript 学习笔记之操作符(续)
2015/01/14 Javascript
JQuery鼠标移到小图显示大图效果的方法
2015/06/10 Javascript
javascript日期格式化方法汇总
2015/10/04 Javascript
JS实现模拟百度搜索“2012世界末日”网页地震撕裂效果代码
2015/10/31 Javascript
JavaScript学习笔记之数组的增、删、改、查
2016/03/23 Javascript
IOS中safari下的select下拉菜单文字过长不换行的解决方法
2016/09/26 Javascript
TypeScript学习之强制类型的转换
2016/12/27 Javascript
JS实现颜色动态淡化效果
2017/03/06 Javascript
微信小程序 setData使用方法及常用错误解决办法
2017/05/11 Javascript
vue 基于element-ui 分页组件封装的实例代码
2018/12/10 Javascript
详解vue 组件的实现原理
2020/11/12 Javascript
Django实现自定义404,500页面教程
2017/03/26 Python
Pycharm学习教程(4) Python解释器的相关配置
2017/05/03 Python
python实现淘宝秒杀聚划算抢购自动提醒源码
2020/06/23 Python
pandas修改DataFrame列名的方法
2018/04/08 Python
python2.7和NLTK安装详细教程
2018/09/19 Python
python实现年会抽奖程序
2019/01/22 Python
PyQt5 对图片进行缩放的实例
2019/06/18 Python
使用Python轻松完成垃圾分类(基于图像识别)
2019/07/09 Python
python中自带的三个装饰器的实现
2019/11/08 Python
Django单元测试中Fixtures用法详解
2020/02/25 Python
TripAdvisor日本:全球领先的旅游网站
2019/02/14 全球购物
北美主要的汽车零部件零售商:AutoShack.com
2019/02/23 全球购物
美国眼镜网站:LensCrafters
2020/01/19 全球购物
在对linux系统分区进行格式化时需要对磁盘簇(或i节点密度)的大小进行选择,请说明选择的原则
2012/01/13 面试题
小学开学典礼主持词
2014/03/19 职场文书
营业用房租赁协议书
2014/11/26 职场文书
文员岗位职责范本
2015/04/16 职场文书
音乐课外活动总结
2015/05/09 职场文书
经销商会议开幕词
2016/03/04 职场文书
Django显示可视化图表的实践
2021/05/10 Python
Maven学习----Maven安装与环境变量配置教程
2021/06/29 Java/Android