摘要:经过各大短信平台进行比较后,选择了阿里大于,一个阿里巴巴的云通信平台,下面我将这次开发经验和遇到的一些问题分享出来。
</>复制代码
最近在做一个商城的项目,其中注册、找回密码、换绑手机等功能都需要用到验证码,考虑到上线的安全问题,我决定用手机验证码来提高安全性。经过各大短信平台进行比较后,选择了阿里大于,一个阿里巴巴的云通信平台,下面我将这次开发经验和遇到的一些问题分享出来。
1.登录平台 阿里大于
2.登陆之后我们可以看到资费,使用场景等,在进入正题之前我们需要一些准备工作,首先我们先了解下短信的请求参数,在这里我们需要注意的是sms_param这个参数,在接下来我们申请短信模板的时候会用到
3.相应参数,对待返回值我们记住最基本的true or false 即可
4.了解完公共参数,接下来我们进入正题,首先我们得配置短信签名和配置短信模板,短信签名出现在短信开头,注意短信模板,这里将用到上文提示的sms_param参数
5.同时,在其网站上下载好SDK,下图展示的是我的存放位置,使用的是thinkphp框架,其他的开发环境文件的存放位置在官网上有详细说明
6.接下来是项目后台的配置,其中appkey,secret在你完成上述申请之后可以在个人管理中心查看
</>复制代码
class DuanXinController extends Controller {
public function index()
{
$appkey = "...";//你的App key
$secret = "...";//你的App Secret:
import("Org.taobao.top.TopClient");
import("Org.taobao.top.ResultSet");
import("Org.taobao.top.RequestCheckUtil");
import("Org.taobao.top.TopLogger");
import("Org.taobao.top.request.AlibabaAliqinFcSmsNumSendRequest");
//将需要的类引入,并且将文件名改为原文件名.class.php的形式
$c = new TopClient;
$c->appkey = $appkey;
$c->secretKey = $secret;
$req = new AlibabaAliqinFcSmsNumSendRequest;
$req->setExtend("123456");//确定发给的是哪个用户,参数为用户id
$req->setSmsType("normal");
session_start();
$verifycode = strval(rand(1000,9999));
$_SESSION["verifycode"] = $verifycode;
$userStatus=0;
/*
进入阿里大鱼的管理中心找到短信签名管理,输入已存在签名的名称,这里是身份验证。
*/
$req->setSmsFreeSignName("山水优品");
$smsParams = [
"code" => $verifycode,
"product" => "..."
];
$req->setSmsParam(json_encode($smsParams));
//$req->setSmsParam("{"code":numfour() "product":"山水优品"}");
//这里设定的是发送的短信内容:验证码${code},您正在进行${product}身份验证,打死不要告诉别人哦!”
$req->setRecNum(...);//参数为用户的手机号码
$req->setSmsTemplateCode("SMS_16670740");
$resp = $c->execute($req);
//var_dump($resp);这里是用来打印返回结果
if($resp->result->success)
{
$userStatus=1;
}
else
{
$userStatus=0;
}
echo $userStatus;
}
// 检查验证码是否正确
function checkcode(){
session_start();
$verifycode = $_SESSION["verifycode"];
$inputcode = I("post.code");
$checkstatus = 0;
if ($inputcode == $verifycode) {
$checkstatus = 1;
}else{
$checkstatus = 0;
}
echo $checkstatus;
}
7.下面的代码是项目前台的Ajax请求部分:
</>复制代码
send.onclick = function() {
var oldTel = document.getElementById("oldTel").value;
var that = this;
var times = 60;
this.disabled = true;
timer1 = setInterval(function() {
times--;
that.value = times + "秒后重试";
if (times <= 0) {
that.disabled = false;
that.value = "发送验证码";
clearInterval(timer1);
times = 60;
}
}, 1000);
$.ajax({
url: "{:U("DuanXin/index")}",
type: "post",
data: {
"name":oldTel,
},
success: function(responseText, status, xhr) {
if (status == "success") {
if (responseText == 1) {
return true;
} else {
return false;
}
} else {
return false;
}
},
error: function() {
return false;
},
timeout: 1000 * 60,
});
}
这里的按钮加入了一个简单的倒计时功能,即点击发送后60s内无法点击按钮;
至此第一次使用短信验证API的经历结束!
--END--
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/21955.html
摘要:本方法基于,用到了,当然具体项目中也可以不用,下面我就按步骤来写下来。 本方法基于Thinkphp,用到了jquery.validate,当然具体项目中也可以不用,下面我就按步骤来写下来。 1.准备 1.登陆http://www.alidayu.com,进入网址用淘宝号登陆即可2.进入管理中心 showImg(https://segmentfault.com/img/bVQTOk?w=...
摘要:之前使用的阿里大于,不过很坑的是,新接入的都不能用了,融入进了阿里云服务,当然阿里大于的老用户还可以继续用阿里大于首先还是接入,上图找到短信服务设置短信签名和短信模板设置或找到或下载文档打开下载下来的文档,只需要,将其改名为,并放到项目根目 之前使用的阿里大于,不过很坑的是,新接入的都不能用了,融入进了阿里云服务,当然阿里大于的老用户还可以继续用阿里大于 首先还是接入,上图: (1)找...
摘要:需求场景发送验证码或者消息通知,可发送到手机或邮箱中。完成首先,在中的规范就是使用的消息通知,这里基于场景为验证码。所以我们在验证码模型中添加是完全符合通知的正确使用的。 顺便发个小通知:7月15日ThinkSNS+开源版发布,同时非开源的APP也走出内测阶段,体验二维码也全面发布体验。 什么是ThinkSNS ? ThinkSNS(简称TS),一款全平台综合性社交系统,为国内外大中小...
阅读 709·2021-11-15 11:38
阅读 1413·2021-10-11 10:59
阅读 3572·2021-09-07 09:58
阅读 587·2019-08-30 15:44
阅读 3600·2019-08-28 18:14
阅读 2694·2019-08-26 13:32
阅读 3588·2019-08-26 12:23
阅读 2492·2019-08-26 10:59