c#发送短息验证码
<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#发送短息验证码的更多相关文章
- 超实用的JavaScript代码段 Item4 --发送短信验证码
发送短信验证码 实现点击“发送验证码”按钮后,按钮依次显示为“59秒后重试”.“58秒后重试”…直至倒计时至0秒时再恢复显示为“发送验证码”.在倒计时期间按钮为禁用状态 . 第一步.获取按钮.绑定事件 ...
- Laravel5中使用阿里大于(鱼)发送短信验证码
在做用户注册和个人中心的安全管理时,我实现借助第三方短信平台(阿里大于(鱼))在Laravel框架中进行手机验证的设置:阿里大于,是阿里通信旗下优质便捷的云通信服务平台,整合了三大运营商的通信能力,为 ...
- 微信小程序发送短信验证码完整实例
微信小程序注册完整实例,发送短信验证码,带60秒倒计时功能,无需服务器端.效果图: 代码: index.wxml <!--index.wxml--> <view class=&quo ...
- java + maven 实现发送短信验证码功能
如何使用java + maven的项目环境发送短信验证码,本文使用的是榛子云短信 的接口. 1. 安装sdk 下载地址: http://smsow.zhenzikj.com/doc/sdk.html ...
- android发送短信验证码并自动获取验证码填充文本框
android注册发送短信验证码并自动获取短信,截取数字验证码填充文本框. 一.接入短信平台 首先需要选择短信平台接入,这里使用的是榛子云短信平台(http://smsow.zhenzikj.com) ...
- java 阿里云接口实现发送短信验证码
此刻自己做的小项目中,需要用到手机发送短信验证码实现注册功能,于是就去阿里云注册了账号,并实现随机发送验证码的功能 第一步:在阿里云官网登录注册 已有支付宝或淘宝的账号可以直接登录,最后需要实名认 ...
- Java 实现手机发送短信验证码
Java 实现手机发送短信验证码 采用引入第三方工具的方式,网上查了半天,发现简单的实现方式便是注册一个中国网建的账号,新建账号的时候会附带赠几条免费短信,彩信 ,之后想要在使用就得花钱了.简单的操作 ...
- Yii2发送短信验证码完全解决方案
概述 在做项目的时候,需要用到短信发送验证码功能.不能不说Yii2的牛逼,很容易就搞定了.下面我整理一下具体功能和流程,分享给大家. 主要功能 通过Yii2 rules验证手机号 通过js验证是否为手 ...
- 阿里云短信服务发送短信验证码(JAVA开发此功能)
开发此功能需注册阿里云账号,并开通短信服务(免费开通) 充值后,不会影响业务的正常使用!(因为发送验证类短信:1-10万范围的短信是0.045元/条).开发测试使用,充2块钱测试足够了 可参考阿里云官 ...
随机推荐
- git下载/上传文件提示:git did not exit cleanly
问题:git操作下载/上传文件,提示信息如下 TortoiseGit-git did not exit cleanly (exit code 1) TortoiseGit-git did not ex ...
- 读spring源码(二)-XmlBeanDefinitionReader-解析BeanDefinition
上次说到ApplicationContext加载BeanDefinition时会创建一个XmlBeanDefinitionReader,将XML解析.BeanDefinition加载委托给XmlBea ...
- git本机服务器配置(二):TortoiseGit的安装
1. 下载TortoiseGit https://tortoisegit.org/ 1.1 下载安装包 下载对应安装包,如果不知道自己该下载哪个,那就下载32位的. 1.2 下载语言包 下载和安装包相 ...
- 题解-Codeforces917D Stranger Trees
Problem \(\mathrm{Codeforces~917D}\) 题意概要:一棵 \(n\) 个节点的无向树.问在 \(n\) 个点的完全图中,有多少生成树与原树恰有 \(k\) 条边相同,对 ...
- PHP提取页面第一张图为缩略图的代码
<?php $p = '/<img.*?src=[\'|\"](.+?)[\'|\"].*?>/i'; preg_match_all($p,$str,$match ...
- The Apache Tomcat installation at this directory is version 8.5.40. A Tomcat 8.0 installation is expected.
问题描述 Eclipse 配置 Apache Tomcat 8.5.40(8.0.x 以上版本),会报如下错误信息: 解决方法 1)在 Apache Tomcat 的安装目录中找到 lib 目录下的 ...
- shell echo/read/printf/流程控制章节笔记
// echo read printf 流程控制 命令 1.read 命令从标准输入中读取一行,并把输入行的每个字段的值指定给 shell 变量 read hello 输入xxx echo $hell ...
- 处理soapUI特殊返回报文 【原】
String message ="<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + & ...
- FreeRTOS 启动进程调度后,程序卡死的部分原因分析。
现象:1,RTOS 使用时 系统卡启动文件 B .处. 原因分析:该种情况是由于定义开启了中断,但是未开启中断处理服务.程序执行到中断响应式无对应的程序响应 ...
- 【玩转开源】BananaPi R2 —— 第一篇 Openwrt安装
最近手上拿到一块香蕉派的R2,这块板子可以用作路由器,所以决定在板子上面跑一下Openwrt. R2的外观长这个样子,看起来还是比较酷的: 硬件介绍 CPU 是MTK的4核芯片mt7623n,搭配mt ...