项目前端页面实例

第1步:登录阿里大于控制台

https://www.alidayu.com/center/user/account?spm=0.0.0.0.P1K1jG

第2步:创建应用

第3步:配置短信签名

第4步:配置短信模板

第5步:前端

      <tr class="margin-top"><td class="padding-top text-center">手机号</td><td><input type="text" class="inputs" id="Phone" name="Phone"> </td><td><input type="button" value="获取验证码" id="sms" οnclick="sendemail()"></td></tr><tr><td class="padding-top text-center">验证码</td><td><input type="text" class="inputs" id="Code" name="Code"></td></tr>

第6步:js处理

$(function () {$("#sms").click(function () {sendCode($("#sms"));});v = getCookieValue("secondsremained");//获取cookie值if (v > 0) {settime($("#sms"));//开始倒计时}
})//发送验证码
function sendCode(obj) {var phoneNumber = $("#Phone").val();var result = isPhoneNum(phoneNumber);if (result) {//将手机利用ajax提交到后台的发短信接口$.post("/College/Code", { Phone: phoneNumber }, function (data) {if (data == "ok") {alert("验证码发送成功!");} else {alert("验证码发送失败,请重新发送!");}});addCookie("secondsremained", 60, 60);//添加cookie记录,有效时间60ssettime(obj);   //开始倒计时}
}
//开始倒计时
var countdown;
function settime(obj) {countdown = getCookieValue("secondsremained");if (countdown == 0) {obj.removeAttr("disabled");obj.val("获取验证码");return;} else {obj.attr("disabled", true);obj.val("重新发送(" + countdown + ")");countdown--;editCookie("secondsremained", countdown, countdown + 1);}setTimeout(function () { settime(obj) }, 1000) //每1000毫秒执行一次
}//校验手机号是否合法
function isPhoneNum(phoneNumber) {var myreg = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))+\d{8})$/;if (!myreg.test(phoneNumber)) {alert('请输入有效的手机号码!');return false;} else {return true;}
}//发送验证码时添加cookie
function addCookie(name, value, expiresHours) {var cookieString = name + "=" + escape(value);//判断是否设置过期时间,0代表关闭浏览器时失效if (expiresHours > 0) {var date = new Date();date.setTime(date.getTime() + expiresHours * 1000);cookieString = cookieString + ";expires=" + date.toUTCString();}document.cookie = cookieString;
}//修改cookie的值
function editCookie(name, value, expiresHours) {var cookieString = name + "=" + escape(value);if (expiresHours > 0) {var date = new Date();date.setTime(date.getTime() + expiresHours * 1000); //单位是毫秒cookieString = cookieString + ";expires=" + date.toGMTString();}document.cookie = cookieString;
}//根据名字获取cookie的值
function getCookieValue(name) {var strCookie = document.cookie;var arrCookie = strCookie.split("; ");for (var i = 0; i < arrCookie.length; i++) {var arr = arrCookie[i].split("=");if (arr[0] == name) {return unescape(arr[1]);break;} else {return "";break;}}
}

第7步:后台控制器处理

        #region 商学院报名发送验证码public ActionResult ValidateCode(){string Code = GetRandomString(6);string url = "https://eco.taobao.com/router/rest";string appkey = "****";  //此处填写你自己的string secret = "****";   //此处填写你自己的ITopClient client = new DefaultTopClient(url, appkey, secret);AlibabaAliqinFcSmsNumSendRequest req = new AlibabaAliqinFcSmsNumSendRequest();req.Extend = "";              //可空,返回状态req.SmsType = "normal";             //不可更改req.SmsFreeSignName = "个人小站";       //申请的短信签名,不可填写与申请的不一req.SmsParam = "{VCode:'" + Code + "'}";  //模板内参数必填req.RecNum = Request["Phone"];         //接收者手机号码req.SmsTemplateCode = "SMS_74235011";    //短信模板的编号,不可出错AlibabaAliqinFcSmsNumSendResponse rsp = client.Execute(req); if (rsp.IsError == false){Console.WriteLine(rsp.Body);//return Content(rsp.Body);}//将验证码设置缓存var CodeInfo = (Object)Code;CacheOpt.SetCache("Code", CodeInfo, Convert.ToInt32(60));return Content("ok");} #region 生成6位验证码public string GetRandomString(int iLength){string buffer = "0123456789";    // 随机字符中也可以为汉字(任何)StringBuilder sb = new StringBuilder();Random r = new Random();int range = buffer.Length;for (int i = 0; i < iLength; i++){sb.Append(buffer.Substring(r.Next(range), 1));}return sb.ToString();}#endregion

第8步:缓存处理

    public class CacheOpt{/// <summary>/// 设置缓存/// </summary>/// <param name="CacheKey"></param>/// <param name="objObject"></param>/// <param name="Seconds">超过多少秒后过期</param>public static void SetCache(string CacheKey, object objObject, long Seconds){System.Web.Caching.Cache objCache = HttpRuntime.Cache;objCache.Insert(CacheKey, objObject, null, System.DateTime.Now.AddSeconds(Seconds), TimeSpan.Zero);}/// <summary>/// 获取数据缓存/// </summary>/// <param name="CacheKey">键</param>public static object GetCache(string CacheKey){System.Web.Caching.Cache objCache = HttpRuntime.Cache;return objCache[CacheKey];}}

注:完整版项目地址:http://www.gmkcn.com/

转载于:https://www.cnblogs.com/zouke1220/p/7267984.html

asp.net mvc 接入阿里大于 短信验证码发送相关推荐

  1. 阿里大于短信验证码 发送失败的两类情况(触发天级流控、黑名单)

    使用时,有两种发送失败的现象 第一种:开发者可以捕捉到的 比如阿里大于有一个业务限流,如下图 发送频率超过图中限制时,会返回错误码及错误信息如下: 引起这种可捕捉的错误情况很多,详细请查看阿里大于AP ...

  2. egg.js 调用阿里云(阿里大于)短信验证码服务

    1.开通阿里云短信服务 阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台 可以免费申请 企业短信验证码 200条 重点是: 签名名称:接收验证码内容时,[]里的文字. 短信模板code:相当于 ...

  3. 阿里大于短信验证码简单实现

    在进行短信验证码的发送之前需要先进行前期的准备工作: 1.获取阿里云访问密钥,秘钥成对(AccessKeyId 与 AccessKeySecret)生成和使用.(阿里大于申请) 2.短信签名和短信模板 ...

  4. [风一样的创作]二次封装阿里云短信 验证码 发送短信 查询短信 编辑短信

    1.首先要注册阿里云,购买阿里云短信服务,拿到AccessKey ID和AccessKey Secret 链接: https://usercenter.console.aliyun.com/#/man ...

  5. 阿里大于短信验证码接口

    1.发送验证码失败       code==0 2.发送验证码成功       code==1 3.已发送验证码           code==1 4.手机号已注册   阿里大于的接口 注意:阿里大 ...

  6. 阿里短信 ajax,阿里大于-短信验证码接口

    申请配置信息: 1.短信验证:阿里大鱼(http://www.alidayu.com/) 2.创建应用 3.下载nodejs的sdk 一.下载super-alidayu短信验证组建 npm insta ...

  7. asp.net如何使用阿里云短信验证码

    关于.net如何调用阿里云的短信验证,以及控件之间的操作,比如点击了按键按键就要锁定,并且进入倒计时 开发一个项目,刚好需要用到短信验证,因为客户还没有把key和id给我,只能等了,就顺手写这个文章. ...

  8. 阿里大于短信平台对接

    阿里大于短信平台(短信平台)对接相关说明 一:api文档链接:https://api.alidayu.com/docs/api.htm?spm=a3142.7395905.4.7.W5QHoB& ...

  9. 阿里大于短信平台Python版教程

    阿里大于短信验证码: 阿里大于介绍: 阿里大于是一个通信平台,通过这个平台,中小企业及开发者可以在最短的时间内实现短信验证码发送.短信服务提醒.语音验证码.语音服务通知.IVR及呼叫中心.码号.后向流 ...

最新文章

  1. C#中的委托和事件(续)
  2. php js统计链接点击次数,JS实现在线统计一个页面内鼠标点击次数的方法
  3. linux下c 多线程如何映射文件夹,c - 在Linux中使用多个线程进行信号处理
  4. getOrDefault()和subList()
  5. What's VPC (by quqi99)
  6. CSS的一些零碎总结
  7. 信息学奥赛一本通(1258:【例9.2】数字金字塔)
  8. 无外网情况下RPM方式安装MySQL5.6
  9. 区块链公司从五大神秘术语理解区块链技术
  10. 知道焊缝长度如何确定节点板尺寸_悦和分享:最全的关于焊缝无损检测的知识点...
  11. 你不得不知道的流程规范@多方配合的需求质量控制
  12. execute、executeUpdate、executeQuery三者的区别
  13. linux清除占用端口,Linux中解除端口占用的方法
  14. Onvif协议学习:12、修改分辨率
  15. KnockOutJS(一)
  16. cuda驱动更新方法之一:
  17. 在计算机中NIC是什么意思?
  18. 计算机管理员权限粘贴文件,高手分析win10往c盘粘贴文件需要权限的详细解决对策...
  19. Gstreamer说明
  20. 网站SEO报告和代码工具平台系统源码

热门文章

  1. (转)elasticsearch6.0版本安装head插件
  2. 软件测试与评估:Keep/悦跑圈
  3. (Sql Server)SQL FOR XML PATH
  4. 搭建sql注入实验环境(基于windows)
  5. 对于SAP的月结相关流程介绍
  6. 几种适合开发用的在线编辑器-推荐及下载
  7. Bootstrap 3 Typeahead
  8. Java发邮件-QQ服务器认证
  9. Windows下简单好用的php平台:XAMPP Wamp5和AppServ
  10. error2---BeginPath和EndPath之间的TextOut无法显示