<input type="button" value="发送短信验证码" id="btnReSend" />
<script type="text/javascript">var wait =120;var setSecID = "";function countDown() {wait = wait - 1;if (wait == 0) {clearInterval(setSecID);SetBtnState("#btnReSend", true, "重新获取验证码"); } else {SetBtnState("#btnReSend", false, wait + "秒后重新获取");}}$(function () {if ($("#btnReSend").val() == "60秒后重新获取") {setSecID = setInterval("countDown();", 1000);}$("#btnReSend").click(function () {var phone = $("#txtValidCode").val();if (!(/^1\d{10}$/.test(phone))) {alert("对不起,手机号码格式不正确");return;}SetBtnState("#btnReSend", false, "处理中,请稍候");$.ajax({url: "doBackStage/AddAccount.ashx",dataType: "json",data: {action: "sendSMS",phone: phone},success: function (res) {if (res) {clearInterval(setSecID);wait = 120;setSecID = setInterval("countDown();", 1000);alert("已向您手机发送注册验证码,请注意查收");} else {alert(res);}}});});});function SetBtnState(btn, isEnable, text) {if (isEnable) {$(btn).removeAttr("disabled").val(text);} else {$(btn).attr({ "disabled": "disabled" }).val(text);}}
</script>

后台:

<%@ WebHandler Language="C#" Class="AddAccount" %>using System;
using System.Data;
using System.Data.SqlClient;
using System.Text.RegularExpressions;
using System.Web;
using BLL.Common;
using DAL.Access;public class AddAccount : IHttpHandler
{public void ProcessRequest(HttpContext context){context.Response.ContentType = "text/plain";var action = context.Request.QueryString["action"];switch (action){case "sendSMS":var phone = context.Request.QueryString["phone"];#region 第一步:验证号码格式if (!new Regex(@"^1\d{10}$", RegexOptions.IgnoreCase | RegexOptions.Compiled).IsMatch(phone)){context.Response.Clear();context.Response.Write("对不起,手机号码格式不正确");context.Response.End();}#endregion#region 第二步:判断是否已经发送过SqlParameter[] parameters ={new SqlParameter("@phone", SqlDbType.VarChar, 15)};parameters[0].Value = phone;var regLog = SqlHelper.GetDataTable(@"SELECT top 1 datediff(s,getdate(),regtime)+120,id FROM UnitReg WHERE regAccount = @phone and regtime > dateadd(s,-120,getdate())", parameters,"U");if (regLog.Rows.Count > 0){context.Response.Clear();context.Response.Write("已向您的手机发送了一条验证短信,请注意查收," + regLog.Rows[0][0] + "秒后可以重新获取");context.Response.End();}#endregion#region 第三步:发送短信var random = new Random().Next(100000, 999999).ToString();SqlParameter[] parms ={new SqlParameter("@phone", SqlDbType.VarChar, 15),new SqlParameter("@verifycode", SqlDbType.VarChar, 10),new SqlParameter("@regip", SqlDbType.VarChar, 15)};parms[0].Value = phone;parms[1].Value = random;parms[2].Value = Validator.GetClientIP().Trim();var sql = @"INSERT INTO UnitReg ([regType],[regAccount],[verifycode],[regip],[regtime],[flag]) VALUES ('手机', @phone, @verifycode, @regip,getdate(),'0');SELECT SCOPE_IDENTITY() AS NewID";SqlHelper.ExSql(sql, parms, "U");SendSMS.Send(phone, string.Format("验证码为{0},您正在注册成都人才网单位用户,需要进行手机验证", random));#endregioncontext.Response.Clear();context.Response.Write("true");context.Response.End();break;}}public bool IsReusable{get { return false; }}
}

通用代码:发送短信并显示倒计时相关推荐

  1. java发送短信验证码带倒计时

    分享一个完整的java发送短信验证码的完整实例,这是一个官方的使用demo,带有60秒倒计时功能. 效果: 我使用的是榛子云短信平台 , 官网地址:http://sms_developer.zhenz ...

  2. 一个发送短信验证码 然后倒计时实例

    如图所示: 点击按钮后,开始倒计时. 下面是代码: (js代码) <script type="text/javascript">var i = 60;function ...

  3. android 发短信意图,安卓实现发送短信小程序代码示例

    这篇文章主要介绍了Android开发中实现发送短信的小程序示例,文中还附带了一个监听广播接收者的升级版短信发送例子,需要的朋友可以参考下 上图为代码结构图. 现在我们看下具体的代码. Send.jav ...

  4. vue 微信录音倒计时_Vue实现发送短息60秒倒计时

    原文:https://blog.csdn.net/weixin_43201015/article/details/84405352 Vue实现注册账号时,发送短信60秒倒计时功能,并进行手机号校验的D ...

  5. Vue实现发送短息60秒倒计时

    Vue实现发送短息60秒倒计时 Vue实现注册账号时,发送短信60秒倒计时功能,并进行手机号校验的Demo案例,如果能帮到您,我感到非常荣幸,废话不多说,直接上干货, 首先来一个测试页面,引入Vue. ...

  6. N7100/GALAXY Note2 解决短信发件人实际发送短信时间

    三星 N7100/GALAXY Note2 解决短信发件人实际发送短信时间... 解决短信发件人实际发送短信时间显示为当前时间的bug 如果别人给你发了一条短信,而你手机当前是关机状态,那么当你开机后 ...

  7. Android应用发送短信的实现

    实现Android应用的发送消息 实现两个安卓机之间发送短消息: 新建一个Android项目: 在MainActivity中添加一个EditText,id=et_content,用来输入想要发送的短信 ...

  8. Python——使用 Python 第三方库 twilio 发送短信

    Twilio简介 Twilio 是一个位于加利福尼亚的云通信(PaaS)公司,致力于为开发者提供通讯模块的 API.由于 Twilio 为试用帐户提供了免费电话短信服务,我们可以在申请需要短信验证的国 ...

  9. 用阿里云短信服务--发送短信demo

    一. AccessKey管理 内容包括:开启子用户AccessKey,创建用户组,给用户组添加sms短信服务权限,创建用户,添加用户到用户组中. 详细操作: 登录阿里云,点击控制台右上角的头像,点击A ...

  10. 使用 Python 发送短信?

    上回我们说到怎么把签到结果发出来,于是就找到了 Twilio. Twilio 是一个位于加利福尼亚的云通信(PaaS)公司,致力于为开发者提供通讯模块的 API.由于 Twilio 为试用帐户提供了免 ...

最新文章

  1. Ubuntu16.04系统下汉字显示为方框解决办法(图文详解)
  2. Java常用的技术网站
  3. linux——管理系统设备之LVM的管理
  4. centos7安装mysql6_2018年第四周-在centos7安装mysql6
  5. 通过WAD和Docker热部署Java Enterprise
  6. 计算机的80端口被占用 - 思路篇
  7. lpc2000 filash utility 程序烧写工具_重点必看 | 取证小程序开发之第四届美亚杯硬盘信息快速解题...
  8. 修改alert提示框的css样式
  9. 最小二乘法求线性回归方程
  10. pow函数php,PHP pow( )用法及代码示例
  11. api 微信内置浏览器js_【微网站开发】之微信内置浏览器API使用
  12. unity urp 实现雨水在物体上流动的效果
  13. 总结一下用面向对象写法调用借口
  14. 买二送一跟买三免一有区别吗?
  15. SSO单点登录详解------三、单点注销流程解析
  16. 中文拼写检测(Chinese Spelling Checking)相关方法、评测任务、榜单
  17. 大数据项目实训总结_大数据实习报告.doc
  18. 本地回环地址127.0.0.1
  19. 飞机订票管理系统C语言课程设计
  20. 如何写一份优秀的英文简历?

热门文章

  1. WiFi能连上但是上不了网怎么办?
  2. android webview支持webgl,Android WebView支持WebGL
  3. mysql 查看事件_Mysql中的事件
  4. 软件测试培训一般多少钱?
  5. 声散射 matlab,逆向运用Fourier衍射定理快速预报水中目标的声散射特性
  6. 微信 vue html缓存,解决微信浏览器缓存站点入口文件(IIS部署Vue项目)_唇印_前端开发者...
  7. openresty 网关rsa+aes+redis鉴权解密
  8. django jwt token 令牌
  9. 网络钓鱼(Phishing)攻击方式
  10. 在BREW中打造自己的GUI(8)-IWEB的封装