html代码

<p>
<strong>手机验证码:</strong>
<asp:TextBox ID="code" runat="server" CssClass="box" style="width:90px" maxlength="4"></asp:TextBox>
<input type="button" id="btncode" class="diarnu_net_btn" value="发送验证码" />
</p>

提交的时候只需验证Session["phoneCode"]和code.text的值就行

js代码

var secs=100;
$("#btncode").click(function(){
var _phone='18000055568';
this.value=" 正在发送中 ";
this.disabled=true;
$.post("ajax.aspx",{type:"sendCode",phone:_phone},function(data){
if(data=="1")
{
//成功
for(var i=0;i<=secs;i++)
{
window.setTimeout("update(" + i + ")", i*1000);
}
}else{
alert("验证码发送失败,请检查手机是否输入有误!");
document.getElementById("btncode").value=" 发送验证码 ";
document.getElementById("btncode").disabled=false;
}
})
})
function update(num) {
if(num == secs) {
document.getElementById("btncode").disabled=false;
document.getElementById("btncode").click();
}
else {
printnr = secs-num;
document.getElementById("btncode").value=" "+printnr+"秒后重发 ";
}
}

ajax.aspx代码

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Collections.Generic;
public partial class ajax_getdata : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
switch (Request.Form["type"])
{
case "sendCode": sendCode();
break;
default: Response.Write("");
break;
}
}
}
private void sendCode()
{string to = Request.Form["phone"];
string ret = null; CCPRestSDK.CCPRestSDK api = new CCPRestSDK.CCPRestSDK();
//ip格式如下,不带https://
bool isInit = api.init("app.cloopen.com", "");//sandboxapp.cloopen.com
api.setAccount("8a216da85624qwwedriov157nfjdjkufd", "7bb62789d7efndfd54f6");//主账号,主账号令牌
api.setAppId("8a216dueiu4389d57efjdsfu");//AppID try
{
if (isInit)
{
string strcode = new Random().Next(, ).ToString();
if (MyCLib.StrClass.GetSession("phoneCode") != "")
{
strcode = MyCLib.StrClass.GetSession("phoneCode");
}
Session["phoneCode"] = strcode;
string[] data = { strcode, "" };//验证码,分钟
Dictionary<string, object> retData = api.SendTemplateSMS(to, "", data);//短信接收号码, 短信模板id, 内容数据
string statusCode = retData["statusCode"].ToString();//statusCode为"000000"表示请求发送成功。statusCode不是"000000",表示请求发送失败
string statusMsg = retData["statusMsg"].ToString(); if (statusCode == "")
{
ret = "";
}
else {
ret = statusMsg;
}
}
else
{
ret = "初始化失败";
}
}
catch (Exception exc)
{
ret = exc.Message;
}
finally
{
Response.Write(ret);
}
}
}

发送手机验证码方法请看我上一篇博文http://www.cnblogs.com/webapi/p/5711764.html

asp.net限时发送手机验证码的更多相关文章

  1. Asp.Net发送手机验证码

    C#发送手机验证码,平台有很多,我就说说其中的1个平台 测试环境:.net2.0 测试效果:速度还可以,10秒内接收短信 1.去http://www.yuntongxun.com注册,会送8元测试金额 ...

  2. C#发送手机验证码

    C#发送手机验证码,平台有很多,我就说说其中的1个平台 测试环境:.net2.0 测试效果:速度还可以,10秒内接收短信 1.去http://www.yuntongxun.com注册,会送8元测试金额 ...

  3. django 发送手机验证码

    一.流程分析: 1.用户在项目前端,输入手机号,然后点击[获取验证码],将手机号发到post到后台. 2.后台验证手机号是否合法,是否已被占用,如果通过验证,则生成验证码,并通过运行脚本,让短信运营商 ...

  4. C# WinForm 使用SMS接口发送手机验证码+图形验证码+IP限制

    https://blog.csdn.net/IT_xiao_guang_guang/article/details/104299983 前言   1.发送手机验证码用的是网建的SMS接口(http:/ ...

  5. Java实现发送手机验证码功能(短信+语音)

    利用第三方平台可以实现发送手机短信验证码和语音验证码的功能,本文使用框架是struts2+spring+hibernate,现就action层给出核心代码功能. public class Verify ...

  6. flask+阿里云短信服务实现注册发送手机验证码

    效果图: 该效果主要讲解实现通过调用阿里云的SDK实现发送注册验证码短信(阿里云短信付费使用) 购买阿里云短信服务 购买链接:https://www.aliyun.com/product/sms 1. ...

  7. [.NET开发] C#实现发送手机验证码功能

    之前不怎么了解这个,一直以为做起来很复杂. 直到前两天公司要求要做这个功能. 做了之后才发现 这不过就是一个POST请求就能实现的东西.现在给大家分享一下,有不足之处还请多多指教. 废话不多说 直接上 ...

  8. iOS --发送手机验证码收不到手机验证码

    方法一:使用受信任设备上显示的验证码. 如果您的受信任设备是iOS 9 及以上系统时,则验证码将自动显示在受信任设备上.此时你信任的设备上会弹出你在某地登录ID位置的小地图,有一个选择允许与不允许登录 ...

  9. php 发送手机验证码

    嗯哼,做为一个好的程序猿,一定要给顾客爸爸剁手的时候,充分的告诉他,你剁完手了,所以不只有邮件通知还要有手机短信的通知,今天就来写一下php发送验证码 1.首先我就写了几个个方法,因为配置在后台,直接 ...

随机推荐

  1. 【Java】模板方法模式

    今天介绍的是模板方法模式~ 模板方法模式,由父类定制总体的框架,具体的细节由子类实现. 一般来说,模板方法中有3类方法: 抽象方法,父类声明方法待子类具体实现.比如例子的validate.save.u ...

  2. 3dsMax用到的网格优化

    3dsMax软件主要是用于建模的,里面有一个网格优化的功能,它的网格优化的过程是基于那个网格简化算法,经过使用个人认为是基于几何删除的折叠方式来进行的,可能是边折叠或者三角折叠的方式,还望大神多多指教 ...

  3. PHP日志扩展 SeasLog-1.6.8, 性能更优

    SeasLog-1.6.8 发布了,性能更优. 改进日志: 1.6.8: 优化内存使用和性能,修复已知Bug. - Fixed issue #97 PHP5.* Cached Block. - Fix ...

  4. Entity FrameWork 中使用Expression&lt;Func&lt;T,true&gt;&gt;访问数据库性能优化

    问题的本质是:扩展的Where方法有四个参数重载.传进去Func<T,true>那么返回值是IEnumable的接口类型的集合,如果是Expression<Func<T,tru ...

  5. jQuery判断元素是否在可视区

    假设此元素为 #item,先说几个关键的属性: $('#item').offset().top#item 的绝对偏移量,指#item的实际尺寸(即不包括外边框margin)的上边界到页面顶端的距离.这 ...

  6. springboot入门学习-helloworld实例

    今天学习了springboot,发现使用springboot创建项目确实非常方便,创建第一个springboot项目之前先看一下下面两个问题. 一.什么是springboot? Spring Boot ...

  7. nginx基本用法和HTTPS配置

    nginx作用讲解:1.反向代理:需要多个程序共享80端口的时候就需要用到反向代理,nginx是反向代理的一种实现方式.2.静态资源管理:一般使用nginx做反向代理的同时,应该把静态资源交由ngin ...

  8. Fiddler设置断点修改Request和Response

    一.Fiddler中修改Request有两种方法:  点击Rules-> Automatic Breakpoint ->Before Requset (这种方法会中断所有的会话) 消除命令 ...

  9. c语言笔记3运算符与表达式

    运算符与表达式 知识点一 操作数:参与运算的具体对象. 运算符:指明了对操作数进行的某项运算. 表达式:表示一个求值得规则.它由变量.常量.运算符和函数.括号按一定规则组成. 书写表达式的细节:1,运 ...

  10. ConcurrentModificationException

    //需求:如何集合中有给定的元素就在集合中在插入一个元素public class ListIteratorDemo2 { public static void main(String[] args) ...