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. js返回上一页报网页过期问题解决

    1.detail详细页面加上返回按钮,返回到list列表页 <input type="button" value=" 返回 " onclick=" ...

  2. React Native 简介:用 JavaScript 搭建 iOS 应用 (1)

    [编者按]本篇文章的作者是 Joyce Echessa--渥合数位服务创办人,毕业于台湾大学,近年来专注于协助客户进行 App 软体以及网站开发.本篇文章中,作者介绍通过 React Native 框 ...

  3. codeforces 442C C. Artem and Array(有深度的模拟)

    题目 感谢JLGG的指导! 思路: //把数据转换成一条折线,发现有凸有凹 //有凹点,去掉并加上两边的最小值//无凹点,直接加上前(n-2)个的和(升序)//数据太大,要64位//判断凹与否,若一边 ...

  4. POJ 2135

    Farm Tour Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 10840   Accepted: 4011 Descri ...

  5. nginx规则和ci的支持

    CI框架下nginx重写规则,不再404 http://blog.csdn.net/EI__Nino/article/details/8599304 server { listen 80; serve ...

  6. $headers = $this->input->request_headers();返回请求头(header)数组

    请查看:CI中的输入类部分 建议用第一个 $headers = $this->input->request_headers() $this->input->request_he ...

  7. [你必须知道的.NET]第三十三回,深入.NET 4.0之,Lazy<T>点滴

    发布日期:2009.10.29 作者:Anytao © 2009 Anytao.com ,Anytao原创作品,转贴请注明作者和出处. 对象的创建方式,始终代表了软件工业的生产力方向,代表了先进软件技 ...

  8. Project Euler 101 :Optimum polynomial 最优多项式

    Optimum polynomial If we are presented with the first k terms of a sequence it is impossible to say ...

  9. Android核心分析之十八Android电话系统之RIL-Java

    Android RIL-Java 123.jpg (2.09 KB, 下载次数: 1) 下载附件  保存到相册 2012-3-21 10:47 上传   RIL-Java在本质上就是一个RIL代理,起 ...

  10. C 语言文件操作

    C 语言文件操作 1. 数据流:     程序与数据的交互以流的形式进行.fopen 即打开数据流,fclose 即刷新数据流.     所谓数据流,是一种抽象,表示这段数据像流一样,需要逐步接收,不 ...