关于.net如何调用阿里云的短信验证,以及控件之间的操作,比如点击了按键按键就要锁定,并且进入倒计时
开发一个项目,刚好需要用到短信验证,因为客户还没有把key和id给我,只能等了,就顺手写这个文章。
首先进入控件之间的变化。
$(function () {
$("#btn-code").click(function () {
var disabled = $("#btn-code").attr("disabled");
if (disabled) {
return false;
}
var phoneNum = document.getElementById("phoneNum").value;
if (phoneNum == "") {
layer.msg("手机号码不能为空!", { icon: 2, time: 1200 });
return (false);
};
if (phoneNum.length < 11)
{
layer.msg("手机号码输入错误!", { icon: 2, time: 1200 });
return (false);
}
$.ajax
({
url: "",//进入到后台处理
type: "get",
data: "" ,
success: function (data) {
//成功的时候获取后台返回值,因为客户还没有给钥匙,所以就不写处理过程了
settime();
}
});
});
//检测结束
//倒计时开始
var countdown = 10;
var btn_code = $("#btn-code");
function settime() {
if (countdown == 0) {
$("#btn-code").attr("disabled", false);
btn_code.text("获取验证码");
countdown = 10;
return false;
} else {
$("#btn-code").attr("disabled", true);
btn_code.text("重新发送(" + countdown + ")");
countdown--;//一秒运行一次
}
setTimeout(function () {
settime();
}, 1000);
}
});
说明:利用ajax进行异步的处理,如果成功收到后台的返回值,则进入倒计时,并锁定控件。
后台调用阿里的sdk:
大同小异,申请阿里云的短信服务,这个百度找找都有。
直接上代码:
string code = RandomCode.phoneCode(); //随机生成6位验证码
string result; //用来接收结果值
string phoneNum; //获取前台值,这边我就不展示了
//利用阿里云向用户发送验证码
string accessKeyId = ""; //云id
string accessKeySecret = ""; //云密码
string RegionId = "cn-hangzhou"; //地区号
// 构建一个阿里云 Client, 用于发起请求
IClientProfile profile = DefaultProfile.GetProfile(RegionId, accessKeyId, accessKeySecret); //用来存阿里云基本信息值
// 构建阿里云 Client 时需要设置 access key ID 和 access key secret
DefaultProfile.AddEndpoint(RegionId,RegionId, "Dysmsapi", "dysmsapi.aliyuncs.com");
IAcsClient acsClient = new DefaultAcsClient(profile); //调用验证方法
SendSmsRequest request = new SendSmsRequest(); //用来存储,请求信息值
try
{
//必填:待发送手机号。验证码类型的短信推荐使用单条调用的方式
//因为是短信验证,所以没有存储多值,不是群发,不需要用数组
request.PhoneNumbers = phoneNum;
request.SignName = ""; //必填:短信签名-可在短信控制台中找到
request.TemplateCode = "";//必填:短信模板-可在短信控制台中找到
request.TemplateParam = "{\"code\":\""+code+"\"}"; //可选:模板中的变量替换JSON串,替换里面的code值。这个是JSON格式
//{\"code\":\""++"\"}
SendSmsResponse sendSmsResponse = acsClient.GetAcsResponse(request); //进行服务端发送短信请求, //请求失败这里会抛ClientException异常
result = sendSmsResponse.Message; //result是结果值,阿里云请求结束后回回发的值。
}
catch (ServerException ex)
{
result = ex.ToString();
}
.net中需要引入的内容:
using Aliyun.Acs.Core;
using Aliyun.Acs.Core.Profile;
using Aliyun.Acs.Core.Exceptions;
using Aliyun.Acs.Core.Http;
using Aliyun.Acs.Dysmsapi.Model.V20170525;
以上就是如何开发一个短信验证服务,从前端到后端,进行交互使用,使用户得到一个较好的体验。如果有人做的是直接刷新页面的话,也是可以实现的,但是异步就是给用户一个较好的体验。建议去学习一下jquery,ajax的基本使用。
记:2020-04-16