在实现用户注册、修改密码等验证情况时,经常需要用到发送手机验证码的功能,这里主要基于TP5框架,就云之讯、阿里云短信两个平台做下开发整理。
主要分三个部分介绍,1、云之迅后端;2、阿里云后端;3、前端调用。
一、云之讯短信
官网:http://www.ucpaas.com 开发手册:http://docs.ucpaas.com/doku.php 原生demo:http://www.php.cn/course/885.html
TP5框架开发: 1、下载云之讯SDK 包; 2、在TP5框架的think 中引入SDK 包; 3、在控制其中引入:
4、在控制器中写入发送方法:
5、前端点击事件调用方法(该博文后面有详细思路与代码)。
二、阿里云短信
后台、控制器具体操作参考 https://blog.csdn.net/list_yang/article/details/81626593
1、下载阿里云SDK 包 ,将api_adk复制到TP5 extend目录下,根据自己的需求可重命名,这里命名为alisms
2、在你项目应用公共(函数)文件common.php头部添加
3、将封装好的函数写入common.php中
/*
* @param $to 接收人
* @param $model 短信模板ID
* @param $code 短信验证码
* @return json
*/
function send_sms($to, $model, $code)
{
require_once '../extend/alisms/vendor/autoload.php';
Config::load(); //加载区域结点配置
$config = Db::name('sms_config')->select();
$accessKeyId = '对应自己的后台数据';
$accessKeySecret = '对应自己的后台数据 ';
$templateParam = $code;
//短信模板ID
switch ($model) {
case 1:
$templateCode = $config[0]['sms_stencil_code']; // 注册登录短信验证码模板
break;
case 2:
$templateCode = $config[1]['sms_stencil_code']; // 重置密码短信验证码模板
break;
}
//短信API产品名(短信产品名固定,无需修改)
$product = "Dysmsapi";
//短信API产品域名(接口地址固定,无需修改)
$domain = "dysmsapi.aliyuncs.com";
//暂时不支持多Region(目前仅支持cn-hangzhou请勿修改)
$region = "cn-hangzhou";
// 初始化用户Profile实例
$profile = DefaultProfile::getProfile($region, $accessKeyId, $accessKeySecret);
// 增加服务结点
DefaultProfile::addEndpoint("cn-hangzhou", "cn-hangzhou", $product, $domain);
// 初始化AcsClient用于发起请求
$acsClient = new DefaultAcsClient($profile);
// 初始化SendSmsRequest实例用于设置发送短信的参数
$request = new SendSmsRequest();
// 必填,设置雉短信接收号码
$request->setPhoneNumbers($to);
// 必填,设置签名名称
$request->setSignName('x网');
// 必填,设置模板CODE
$request->setTemplateCode($templateCode);
// 可选,设置模板参数
if ($templateParam) {
$request->setTemplateParam(json_encode($templateParam));
}
//发起访问请求
$acsResponse = $acsClient->getAcsResponse($request);
//返回请求结果
$result = json_decode(json_encode($acsResponse), true);
// 具体返回值参考文档:https://help.aliyun.com/document_detail/55451.html?spm=a2c4g.11186623.6.563.YSe8FK
return $result;
}
4、在控制器中调用方法 ,参数依次是:手机号码、短信模版、验证码
三、前端调用
来源:CSDN
作者:aaa1_1aaa
链接:https://blog.csdn.net/aaa1_1aaa/article/details/82864922