c#——完美实现短信验证
2016-02-05 16:10
337 查看
短信验证,诸如大型的网站注册验证,都避免不了手机短信的验证工作。且越来越多的企业开始利用短信平台开展各种短信增值业务。下面就和大家分享一下我的实践过程。
短信验证,是需要第三方的短信接口平台支撑的,当然是要付费的,要不咱怎么可能平白无故就是手机联系起来还发短信呢?对吧!我是通过申请的测试账号来实践的。
我是使用Http协议,c#开发语言,UTF-8编码格式实践的。
废话不多,先看代码:我再解释:
【解释】
1·请求地址:
请求地址是客户接口程序调用时请求的url地址,采用的是httppost 接口,地址是
客户端地址+sms.aspx例如:http://xtx.telhk.cn:8080/sms.aspx;
入口地址一般不会发生变化,当发生变化的时候,会通知接口用户
http://xtx.telhk.cn:8080/sms.aspx?action=send&userid=5581&account=ZK03&password=zk123456&mobile=13833611187&content=内容&sendTime=&taskName=本次任务描述&checkcontent=1&mobilenumber=10&countnumber=12&telephonenumber=2
2·请求地址带的参数说明:
3·返回值说明:
在接收到客户端发送的http请求后,返回以xml的方式返回处理结果。格式为:
最后看一下效果图吧:
短信验证,是需要第三方的短信接口平台支撑的,当然是要付费的,要不咱怎么可能平白无故就是手机联系起来还发短信呢?对吧!我是通过申请的测试账号来实践的。
我是使用Http协议,c#开发语言,UTF-8编码格式实践的。
废话不多,先看代码:我再解释:
protected void Button3_Click(object sender, EventArgs e) { //定义参数:参数格式为:key=value(userID=1&password=123456)结构。 string param = "action=send&userid=5581&account=ZK03&password=zk123456&content=" + TextBox2.Text + "&mobile=" + TextBox1.Text; if (CheckBox1.Checked)//是否定时发送 { param = param + TextBox4.Text; //格式 yyyymmddhhnnss } byte[] bs = Encoding.UTF8.GetBytes(param); //HttpWebRequest post提交方式通过在页面内容中填写参数的方法来完成数据的提交:参数格式为:key=value(userID=1&password=123456)结构。 HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create("http://xtx.telhk.cn:8080/sms.aspx"); req.Method = "POST"; req.ContentType = "application/x-www-form-urlencoded"; req.ContentLength = bs.Length; //HttpWebRequest.getRequestStream() :返回用于发送HttpWebRequest数据的流。返回stream实例后,可以通过使用stream。write方法发送带有httpwebrequest的数据。 //注意:检索流之前必须先设置contentlength属性的值 using (Stream reqStream = req.GetRequestStream()) { //Stream.Write(Byte[] buffer,Int32 offset,Int32 count):此方法是指从offset处开始将count个字节从buffer复制到当前流 //向当前流中写入字节序列,并将此流中的当前位置提升写入的字节数: reqStream.Write(bs, 0, bs.Length); } using (WebResponse wr = req.GetResponse()) { //这里对接收到的页面内容进行处理 StreamReader sr = new StreamReader(wr.GetResponseStream(), System.Text.Encoding.Default); string xml = sr.ReadToEnd().Trim(); byte[] buffer = Encoding.GetEncoding("GBK").GetBytes(xml); TextBox3.Text = Encoding.UTF8.GetString(buffer); } }
【解释】
1·请求地址:
请求地址是客户接口程序调用时请求的url地址,采用的是httppost 接口,地址是
客户端地址+sms.aspx例如:http://xtx.telhk.cn:8080/sms.aspx;
入口地址一般不会发生变化,当发生变化的时候,会通知接口用户
http://xtx.telhk.cn:8080/sms.aspx?action=send&userid=5581&account=ZK03&password=zk123456&mobile=13833611187&content=内容&sendTime=&taskName=本次任务描述&checkcontent=1&mobilenumber=10&countnumber=12&telephonenumber=2
2·请求地址带的参数说明:
参数名称 | 含义 | 说明 |
userid | 企业id | 企业ID |
account | 发送用户帐号 | 用户帐号,由系统管理员 |
password | 发送帐号密码 | 用户账号对应的密码 |
mobile | 全部被叫号码 | 发信发送的目的号码.多个号码之间用半角逗号隔开 |
content | 发送内容 | 短信的内容 |
sendTime | 定时发送时间 | 为空表示立即发送,定时发送格式2010-10-24 09:08:10 |
action | 发送任务命令 | 设置为固定的:send |
checkcontent | 是否检查内容包含非法 关键字 | 当设置为1时表示需要检查,默认0为不检查 |
taskName | 任务名称 | 本次任务 描述100个字以内 可以为空 |
countnumber | 号码总数量 | 本次提交的号码总数量 |
mobilenumber | 手机号码数量 | 本次提交的手机号码数量 |
telephonenumber | 小灵通或座机号码数 | 本次提交的小灵通或座机号码数数量 |
在接收到客户端发送的http请求后,返回以xml的方式返回处理结果。格式为:
<?xml version="1.0" encoding="utf-8" ?> <returnsms> <returnstatus>status</returnstatus> ---------- 返回状态值:成功返回Success 失败返回:Faild <message>message</message> ---------- 返回信息:见下表 <remainpoint> remainpoint</remainpoint> ---------- 返回余额 <taskID>taskID</taskID> ----------- 返回本次任务的序列ID <successCounts>successCounts</successCounts> --成功短信数:当成功后返回提交成功短信数 </returnsms>
返回信息提示 | 说明 |
ok | 提交成功 |
用户名或密码不能为空 | 提交的用户名或密码为空 + |
发送内容包含sql注入字符 | 包含sql注入字符 |
用户名或密码错误 | 表示用户名或密码错误 |
短信号码不能为空 | 提交的被叫号码为空 |
短信内容不能为空 | 发送内容为空 |
包含非法字符: | 表示检查到不允许发送的非法字符 |
对不起,您当前要发送的量大于您当前余额 | 当支付方式为预付费是,检查到账户余额不足 |
其他错误 | 其他数据库操作方面的错误 |
相关文章推荐
- php发送短信验证码完成注册功能
- 友盟短信验证 SMS_SDK 的使用
- 短信验证 掌淘 mob 1.1.1开发实例
- ASP.NET MVC + Bootstrap + XML + WCF 封装短信验证服务(一)
- ASP.NET MVC + Bootstrap + XML + WCF 封装短信验证服务(二)
- ASP.NET MVC + Bootstrap + XML + WCF 封装短信验证服务(三)
- Android Studio下Android客户端短信验证(详细+错误处理)
- 阿里大鱼数据库存储方案
- Thinkphp5使用阿里大于短信验证
- 短信验证码
- 使用阿里大于发送短信验证码并存储到redis中
- 第三方短信验证
- android 验证码之短信验证(云之讯短信平台)
- 验证短信集成
- Android 手机获取短信验证码—自带UI界面
- Android手机短信验证--Bmob短信验证
- android实现登录发送短信验证码或者语音验证码以及一个倒计时的内部类
- AndroidStudio短信验证功能收不到验证码
- Android 短信验证倒计时控件实现
- (十)、SpringBoot+Security 发送短信验证码