<add key="WebReference.Service.PostUrl" value="http://106.ihuyi.cn/webservice/sms11.php?method=Submit" />

前台页面:

<input type="button" name="PassWord" id="btyzm" onclick="time(this)" value="获取验证码" />
<script type="text/javascript">

    var wait = 60;
    function time(o) {
        if(wait === 0) {
            o.removeAttribute("disabled");
            o.value = "获取验证码";
            wait = 60;
        } else {
            if(wait === 60) {
                o.setAttribute("disabled", true);
                var loginName = getUserInfo();
                if(loginName === "") {
                    o.removeAttribute("disabled");
                    o.value = "获取验证码";
                    return false;
                } else {
                    var obj = new Object();
                    $.InvokeAjaxV3({
                        url: "Api/V3/PhoneSMS/SendMessage",
                        data: {
                            Phone: loginName
                        },
                        async: false,
                        callBack: function(data) {
                            obj = $.StrToJson(data).Results;
                            if(obj.Status != 0) {
                                alert(obj.Msg);
                                o.removeAttribute("disabled");
                                o.value = "获取验证码";
                            }
                        }
                    });
                    if(obj.Status != 0) {
                        return false;
                    }
                }             }             o.value = "重新获取(" + wait + ")";
            wait--;
            setTimeout(function() {
                time(o);
            }, 1000);
        }
    }     function getUserInfo() {
        var loginName = $.trim($("#LoginName").val());
        if(loginName === "") {
            alert("请输入手机号!");
            return "";
        }
        return loginName;
    }
</script>
后台开发:
/// <summary>
/// 发送短信  1失败 0 成功
/// </summary>
/// <param name="user"></param>
/// <returns></returns>
[Validation(false), Results(false), HttpPost, Route("SendMessage"), Description("发送短信  1失败 0 成功")]
public object SendMessage(SendMessage user)
{
    if (user.Phone == null || user.Phone.Length > 11)
    {
        return new {Status = 1, Msg = "手机号码不正确!"};
    }     var userInfo = GetUserInfoQueryable(w => w.LoginName == user.Phone).FirstOrDefault(); ;          
    if (userInfo == null)
    {            
        return new { Status=1, Msg = "手机号码不存在" };
    }            
    DateTime time =DateTime.Now.AddMinutes(-1);
    int count = GetPhoneSmsQueryable(ex => ex.Phone == user.Phone && ex.CreateTime > time).Count();
    if (count > 0)
    {         
        return new { Status = 1, Msg = "码获验证需间隔60秒!" };
    }
    var obj = new EntityModel.T_PhoneSMS
    {
        Phone = userInfo.LoginName,
        Code = new Random().Next(100000, 999999).ToString()
    };
    DBContext.ExAdd(obj);
    //调用发送短息接口
    BaseInfoController ba = new BaseInfoController();
    ba.SendMSG("", "", new EntityModel.Custom.MSGEntity()
    {
        mobile = obj.Phone,
        content = "您的验证码是:【" + obj.Code + "】。请不要把验证码泄露给其他人!",
    });     return    new { Status = 0, Msg = "成功" }; 
}
[System.Web.Http.HttpPost, System.Web.Http.Route("SendMSG"), DescriptionAttribute("发送短信")]
[NoValidationAttribute]
public string SendMSG(string format, string LoginKey, EntityModel.Custom.MSGEntity entity)
{
    try
    {
        string PostUrl = ConfigurationManager.AppSettings["WebReference.Service.PostUrl"];
        string account = "";//用户名是登录用户中心->验证码、通知短信->帐户及签名设置->APIID
        string password = ""; //密码是请登录用户中心->验证码、通知短信->帐户及签名设置->APIKEY
        string mobile = entity.mobile;
        string content = entity.content;         //Session["mobile"] = mobile;
        //Session["mobile_code"] = mobile_code;         string postStrTpl = "account={0}&password={1}&mobile={2}&content={3}";         UTF8Encoding encoding = new UTF8Encoding();
        byte[] postData = encoding.GetBytes(string.Format(postStrTpl, account, password, mobile, content));         HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(PostUrl);
        myRequest.Method = "POST";
        myRequest.ContentType = "application/x-www-form-urlencoded";
        myRequest.ContentLength = postData.Length;         Stream newStream = myRequest.GetRequestStream();
        // Send the data.
        newStream.Write(postData, 0, postData.Length);
        newStream.Flush();
        newStream.Close();         HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
        if (myResponse.StatusCode == HttpStatusCode.OK)
        {
            StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);             //Response.Write(reader.ReadToEnd());             string res = reader.ReadToEnd();
            int len1 = res.IndexOf("</code>");
            int len2 = res.IndexOf("<code>");
            string code = res.Substring((len2 + 6), (len1 - len2 - 6));
            //Response.Write(code);             int len3 = res.IndexOf("</msg>");
            int len4 = res.IndexOf("<msg>");
            string msg = res.Substring((len4 + 5), (len3 - len4 - 5));
            return msg;         }
        else
        {
            return "发送失败!";
            //访问失败
        }
    }
    catch (Exception e)
    {
        throw e;
    }
}

c#发送短息验证码的更多相关文章

  1. 超实用的JavaScript代码段 Item4 --发送短信验证码

    发送短信验证码 实现点击“发送验证码”按钮后,按钮依次显示为“59秒后重试”.“58秒后重试”…直至倒计时至0秒时再恢复显示为“发送验证码”.在倒计时期间按钮为禁用状态 . 第一步.获取按钮.绑定事件 ...

  2. Laravel5中使用阿里大于(鱼)发送短信验证码

    在做用户注册和个人中心的安全管理时,我实现借助第三方短信平台(阿里大于(鱼))在Laravel框架中进行手机验证的设置:阿里大于,是阿里通信旗下优质便捷的云通信服务平台,整合了三大运营商的通信能力,为 ...

  3. 微信小程序发送短信验证码完整实例

    微信小程序注册完整实例,发送短信验证码,带60秒倒计时功能,无需服务器端.效果图: 代码: index.wxml <!--index.wxml--> <view class=&quo ...

  4. java + maven 实现发送短信验证码功能

    如何使用java + maven的项目环境发送短信验证码,本文使用的是榛子云短信 的接口. 1. 安装sdk 下载地址: http://smsow.zhenzikj.com/doc/sdk.html ...

  5. android发送短信验证码并自动获取验证码填充文本框

    android注册发送短信验证码并自动获取短信,截取数字验证码填充文本框. 一.接入短信平台 首先需要选择短信平台接入,这里使用的是榛子云短信平台(http://smsow.zhenzikj.com) ...

  6. java 阿里云接口实现发送短信验证码

    此刻自己做的小项目中,需要用到手机发送短信验证码实现注册功能,于是就去阿里云注册了账号,并实现随机发送验证码的功能 第一步:在阿里云官网登录注册   已有支付宝或淘宝的账号可以直接登录,最后需要实名认 ...

  7. Java 实现手机发送短信验证码

    Java 实现手机发送短信验证码 采用引入第三方工具的方式,网上查了半天,发现简单的实现方式便是注册一个中国网建的账号,新建账号的时候会附带赠几条免费短信,彩信 ,之后想要在使用就得花钱了.简单的操作 ...

  8. Yii2发送短信验证码完全解决方案

    概述 在做项目的时候,需要用到短信发送验证码功能.不能不说Yii2的牛逼,很容易就搞定了.下面我整理一下具体功能和流程,分享给大家. 主要功能 通过Yii2 rules验证手机号 通过js验证是否为手 ...

  9. 阿里云短信服务发送短信验证码(JAVA开发此功能)

    开发此功能需注册阿里云账号,并开通短信服务(免费开通) 充值后,不会影响业务的正常使用!(因为发送验证类短信:1-10万范围的短信是0.045元/条).开发测试使用,充2块钱测试足够了 可参考阿里云官 ...

随机推荐

  1. Object Detection / Human Action Recognition 项目

    https://towardsdatascience.com/real-time-and-video-processing-object-detection-using-tensorflow-open ...

  2. 内网环境上部署k8s+docker集群:集群ftp的yum源配置

    接触docker已经有一年了,想把做的时候的一些知识分享给大家. 因为公司机房是内网环境无法连接外网,所以这里所有的部署都是基于内网环境进行的. 首先,需要通过ftp服务制作本地的yum源,可以从ht ...

  3. Mysql查看登录用户以及修改密码和创建用户以及授权(转载)

    本文转自(https://www.cnblogs.com/manzb/p/6491924.html) 1.mysql查看当前登录用户,当前数据库: select user(); select data ...

  4. LeetCode第十八题-四数之和

    4Sum 问题简介:定n个整数和整数目标的数组nums,是否有元素a,b,c,d在nums中,使a+b+c+d=target? 举例: 给定数组 nums = [1, 0, -1, 0, -2, 2] ...

  5. Sublime Text 3删除插件

    Ctrl+Shift+P调出命令窗口,输入remove: 选择第二个Remove Package,会看到如下界面: 里面列出了你已经安装的插件,之后选择你想要卸载的就好了.

  6. WPF 10天修炼 第二天- XAML语言

    XAML是什么 XAML是一种与.NET CLR紧密集成的声明性UI标记语言.XAML中的对象元素对应到CLR中的类型或结构.XAML命名空间对应到CLR中类的命名空间,元素类型则对应到CLR中的类型 ...

  7. 推荐前端开发手机调试打印神器console.log()

    下面说的这个插件很牛,相信很多人都不知道,但找问题的时候很需要,直接上干货如下: vConsole:一个轻量.可拓展.针对手机网页的前端开发者调试面板. 下载 vConsole 的最新版本.(不要直接 ...

  8. Deep face recognition: a survey v4

    http://www.cnblogs.com/shouhuxianjian/p/9789243.html

  9. kvm虚拟机中鼠标不同步的问题解决方法

    环境:Centos7.6安装kvm创建windows虚拟机,通过novnc连接到虚拟机上发现存在鼠标位置偏移问题 解决方法: 方法一: 经测试,windows系列虚拟机关闭鼠标加速亦可缓解该问题,不过 ...

  10. listagg within group

    oracle 多行合并成一行: listagg within group 可以和递归方法一起使用查询路径: 例如: SELECT LISTAGG(t.FOLDER_NAME, '/') WITHIN ...