-
前言
(新人可以了解一下)
现在大多网站或者手机APP的注册都需要通过验证吗来实现,通过短信的方式用户可以收到短信验证码,将验证码填写进去输入信息就可以完成注册了。那么这种方式是怎么实现的呢?首先我们介绍一下手机为什么会收到短信呢?这里大部分都会使用第三方的服务,比如:云之讯,联通,阿里,这些供应商会以接口的形式提供给我们我们,我们只需要注册他们的服务就可以使用,下面也会具体介绍如何使用。根据短信提供的验证码信息就能完成注册吗?是的。那具体如何实现呢我们下面给大家介绍 -
具体实现
我们来说一下具体实现吧,首先把我们所有需要的空间都放入到From1中
这里需要两个 textbox 两个button 一个label1 一个timer1这里我就不重新命名了按照顺序 textbox1 textbox2 …这样大家也大概知道了他们的具体功能textBox1中输入手机号 textBox2中输入验证码 ,重点来了button1也就是我们的发送验证码按钮如何实现发送验证码呢?首先我们需要自己生成一串验证码的字符
源码StringBuilder stringBuilder = new StringBuilder();
Random random = new Random();
for (var i = 0; i < 4; i++)
{
stringBuilder.Append(random.Next(10).ToString());
}
用Random 来生成随机数填充到stringBuilder中 这里规定了4位的随机数(按照需求更改)
这里我们还需要建一个表verificationcode (Id,Code,InvalidTime)Id为唯一标示 Code为验证码 InvalidTime为过期时间 将stringBuilder中的字符放入Code ,InvalidTime取当前时间加上想要设置的过期时间间隔//15秒过期
var InvalidTime = DateTime.Now.AddSeconds(15);
这里我们设置的是15秒过期然后就是一个数据库的添加 这个就不介绍了 稍后会发出源码
接下来就是最主要的第三方服务的对接这里我选的是云之讯
到官网注册一下账号注册之后进入控制台我们可以看到这样的界面
AppID ,Account Sid,Auth Token 这些都是我们之后会用到的 接下来去创建短信模板
红框中的内容大家要注意 想要自定义验证码就必须这么写 接下来我们去看开发者文档
找到单发模板
这里就用到了我们之前控制台中的那几个值 param就是我们在在模板中圈出来的参数值,这里可以写多个以逗号隔开即可。准备工作都做好了接下来直接代码实现var Url = “https://open.ucpaas.com/ol/sms/sendsms”;
HttpClient httpClient = new HttpClient();
var data = new
{
sid = “39467b989d087c2d92c6132184a365d8”,
token = “23f757bad208226ec301e117e40006ed”,
appid = “2d92c6132139467b989d087c84a365d8”,
//模板Id
templateid = “154501”,
//验证码
param = Code,
//手机号
mobile = Mobile
};
var dataString = JsonConvert.SerializeObject(data);
HttpContent httpContent = new StringContent(dataString);
httpContent.Headers.ContentType = new MediaTypeHeaderValue(“application/json”);
var reponse = httpClient.PostAsync(Url, httpContent).Result;
这里的参数需要根据自己的情况更改大家试一下就可以发现手机已经可以收到验证码了最后就是根据输入的验证码在注册事件中做一下校验这里的代码就不贴出来了 下面给大家源码链接可以参考 https://github.com/boPrivateSpace/verificationcode