## 知识点
1、配置文件
2、下载SDK工具包
3、修改common.php
4、修改user.php
[TOC]
升级原来的阿里大于短信服务,只需改动三个方面即可,分别是配置文件、common.php、user.php
## 一、配置文件
位置:\application\index\config.php
代码:
~~~
return [
'paginate' => [
'type' => 'layui',
'var_page' => 'page',
'list_rows' => '5',
'newstyle' => true,
],
'alidayu' => [
'appkey' => 'LTAIOAveuelesist',
'secretKey' => '', // 请替换成自己申请的Access Key Secret
'signature' => '您的签名',// 注意是您申请时的签名名称
'templatecode' => 'SMS_117522100'
],
];
~~~
## 二、下载SDK工具包
地址:https://help.aliyun.com/document_detail/55359.html?spm=a2c4g.11186623.2.8.42ed3a76upbzP1
文档:https://help.aliyun.com/document_detail/55451.html?spm=5176.10629532.106.2.579a1cbeQVa4oh
位置:\extend\Alidayu\
参照:\aliyun-dysms-php-sdk\api_demo\SmsDemo.php
## 三、修改common.php
参照修改:\aliyun-dysms-php-sdk\api_demo\SmsDemo.php
~~~
<?php
use 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;
/**
* 取得AcsClient
*
* @return DefaultAcsClient
*/
function getAcsClient() {
$acsClient = null;
//产品名称:云通信流量服务API产品,开发者无需替换
$product = "Dysmsapi";
//产品域名,开发者无需替换
$domain = "dysmsapi.aliyuncs.com";
// TODO 此处需要替换成开发者自己的AK (https://ak-console.aliyun.com/)
$accessKeyId = config('alidayu.appkey'); // AccessKeyId
$accessKeySecret = config('alidayu.secretKey'); // AccessKeySecret
// 暂时不支持多Region
$region = "cn-hangzhou";
// 服务结点
$endPointName = "cn-hangzhou";
if($acsClient == null) {
//初始化acsClient,暂不支持region化
$profile = DefaultProfile::getProfile($region, $accessKeyId, $accessKeySecret);
// 增加服务结点
DefaultProfile::addEndpoint($endPointName, $region, $product, $domain);
// 初始化AcsClient用于发起请求
$acsClient = new DefaultAcsClient($profile);
}
return $acsClient;
}
//阿里大于短信发送
function sendAlidayu($mobile, $code) {
//载入阿里大于
include EXTEND_PATH . 'Alidayu/vendor/autoload.php';
// 加载区域结点配置
Config::load();
// 初始化SendSmsRequest实例用于设置发送短信的参数
$request = new SendSmsRequest();
// 必填,设置短信接收号码
$request->setPhoneNumbers($mobile);
// 必填,设置签名名称,应严格按"签名名称"填写,请参考: https://dysms.console.aliyun.com/dysms.htm#/develop/sign
$request->setSignName(config('alidayu.signature'));
// 必填,设置模板CODE,应严格按"模板CODE"填写, 请参考: https://dysms.console.aliyun.com/dysms.htm#/develop/template
$request->setTemplateCode(config('alidayu.templatecode'));
// 可选,设置模板参数, 假如模板中存在变量需要替换则为必填项
$request->setTemplateParam(json_encode(array( // 短信模板中字段的值
"code"=>$code,
// "product"=>"dsd"
), JSON_UNESCAPED_UNICODE));
// 可选,设置流水号
$request->setOutId("yourOutId");
// 选填,上行短信扩展码(扩展码字段控制在7位或以下,无特殊需求用户请忽略此字段)
$request->setSmsUpExtendCode("1234567");
// 发起访问请求
$acsResponse = getAcsClient()->getAcsResponse($request);
return $acsResponse;
}
~~~
## 四、修改user.php
~~~
//发送验证码
public function sendsms(){
//手机号
$mobile = input('mobile',0);
//正则简单判断
if(preg_match("/^1\d{10}$/", $mobile)){
//判断手机号是否存在
$count = Db::name('user')->where('mobile',$mobile)->count();
if($count){
//返回错误提示
$data['status'] = 202;
$data['msg'] = '手机号已被注册!';
return json($data);
}else{
// 生成验证码,随机4位
$smscode = mt_rand(1111,9999);
set_time_limit(0);
header('Content-Type: text/plain; charset=utf-8');
$resp = sendAlidayu($mobile, $smscode);
// 判断发送是否成功
if($resp->Code == 'OK'){
//发送成功
session('mobile', $mobile); //用于注册时判断
session('smscode', $smscode); //用于注册时判断
$data['status'] = 200;
$data['msg'] = '发送成功!'.$smscode;//便于调试对比,实际使用时去掉后面验证码
return json($data);
}else{
//返回错误提示
$data['status'] = 202;
$data['msg'] = '发送失败!'.$resp->Message;
return json($data);
}
}
}else{
//返回错误提示
$data['status'] = 202;
$data['msg'] = '请输入正确的手机号!';
return json($data);
}
}
~~~
- Layer无刷新不跳转弹框提示信息
- 整合ThinkPHP+实用代码
- TP整合Layer插件实现无刷新
- 自定义助手函数
- 添加信息失败后不跳转
- 三种无限级分类
- TP常用代码
- 自定义公共函数
- TP模型管理专题
- TP模型管理之添加模型
- sfox_newmodel.sql
- TP模型管理之删除模型
- TP模型管理之编辑模型
- TP模型管理之字段添加
- sfox_newmodel.sql_edit
- layer_hplus.js_edit
- TP模型管理之字段删除
- TP模型管理之字段编辑
- TP模型管理之预览模型
- TP模型管理之公共函数
- layer_hplus.js_修订一
- TP模型管理之预览模型静态页
- 后台内容管理系统
- 分类树显示
- 内容列表显示
- 信息发布
- 编辑信息
- layer_hplus.js
- myJs第一版
- myJs第二版
- myJs第三版
- myJs第四版
- TP5插件用法
- Datatables
- WebUploader
- bootstrap-fileinput
- UEditor
- 简单调用
- 路径问题
- 跨域多图上传
- 跨域单图上传
- UEditor图片跨域上传解决方案
- 定制工具栏图标
- ajaxFileUpload
- LayUI
- 图片上传
- layui分页
- 搜索页
- 搜索优化及删除
- Uploadify
- TP5前端应用
- 静态首页
- 前台首页功能实现
- 自定义标签库
- 前台模板继承应用
- 首页自定义标签改进
- 文章内容页
- 自定义标签改进
- 自定义标签修正
- 图片等比例自动缩放
- 后台权限管理
- 角色管理
- 规则管理
- 权限设置
- 会员管理
- 权限管理
- 前台登录注册功能
- 注册登录
- 阿里大于手机注册
- 阿里大于升级阿里云短信服务
- 自动登录完成
- PHP异位或加密实现自动登陆
- 微信开发
- 分享接口
- 静态页面实现微信分享
- 动态页微信分享
- 页面静态化
- 1-全站静态化前期配置
- 2-链接地址静态化
- TP5常用片段代码
- 加载静态资源路径与常量
- thinkphp5预定义常量
- 删除某文件夹的内容
- 解压插件包
- 异步提交插件
- 其他功能
- 背景音乐
- 手机访问PC网站自动跳转到手机网站代码
- 手机微信音乐MP3播放器
- 后盾之网页背景音乐
- 播放器宽度自适应
- 前台首页数据调用
- 视频列表
- 搜索分页
- H5解决苹果(IOS)不能自动播放音乐
- 清空缓存
- 文件处理常识
- 删除路径下的所有文件夹和文件
- 一键清空缓存
- 评论留言
- 格式化时间
- 替换微博内容的URL地址@用户与表情
- PHP正则理解
- jQuery评论插件
- TP空操作
- TP路由
- 跨域访问
- 设置请其头允许跨域请求
- 模板前台判断手机访问跳转手机网址代码
- PHP遍历一个文件夹下所有文件和子文件夹
- PHP获取视频的第一帧与时长
- TP5数据库
- 链式操作原理
- update替换字段部分内容
- 后台开发
- 后台登录页居中显示
- TP5自带验证码
- JS & JQuery专题
- 二级城市联动菜单
- 模板引擎
- 混合模板编译
- 黄永成TP微博开发
- 消息推送
- memcache安装
- 插件开发
- 插件介绍
- 插件钩子
- 浅谈初步理解钩子
- 插件钩子(hooks)分析
- 插件钩子简单理解
- 控制器调用插件
- 钩子通用处理函数
- 插件基类代码
- 插件测试代码
- 浅谈钩子与插件
- 技术综合
- 常用代码
- PHP
- 56个PHP开发常用代码片段(上)
- 56个PHP 开发常用代码片段(中)
- 56个PHP 开发常用代码片段(下)
- sublime text安装自动补全注释的插件
- 影音视频开发
- 视频
- H5视频直播扫盲
- 音乐
- 语音
- PHP实现语音播报功能
- MUI
- 窗体操作