短信验证,诸如大型的网站注册验证,都避免不了手机短信的验证工作。且越来越多的企业开始利用短信平台开展各种短信增值业务。下面就和大家分享一下我的实践过程。

短信验证,是需要第三方的短信接口平台支撑的,当然是要付费的,要不咱怎么可能平白无故就是手机联系起来还发短信呢?对吧!我是通过申请的测试账号来实践的。

我是使用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

小灵通或座机号码数

本次提交的小灵通或座机号码数数量

3·返回值说明: 在接收到客户端发送的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注入字符

用户名或密码错误

表示用户名或密码错误

短信号码不能为空

提交的被叫号码为空

短信内容不能为空

发送内容为空

包含非法字符:

表示检查到不允许发送的非法字符

对不起,您当前要发送的量大于您当前余额

当支付方式为预付费是,检查到账户余额不足

其他错误

其他数据库操作方面的错误

最后看一下效果图吧:

c#——完美实现短信验证相关推荐

  1. Android短信验证

    短信验证借助了mob.com(移动开发者服务平台),该服务平台提供了以下功能模块(需要自己注册账号) ShareSDK:让App快速拥有强大的分享功能,提供全面的社会化数据统计. 短信验证码:可轻松实 ...

  2. php中短信验证大致流程,实现php手机短信验证功能的基本思路

    现在很多网站为了避免用户烂注册,都在注册环节添加有手机短信验证功能,用户注册时需要短信验证码才可以,那么这种手机短信验证功能是如何实现的呢?其基本思路是什么呢?下面乐信小编就来为大家介绍下: 实现手机 ...

  3. 简单的短信验证功能的实现

    相信有很多朋友在做三方登陆的时候会加入短信验证的功能,最近刚好被分配安排实现这一需求,本人新手一枚,特地去网上搜了资料,目前用的比较多的大汉.云通讯还有MOB的smssdk,对比之下,最终选择了完全免 ...

  4. 阿里云短信验证解决方案(java版)(redis存储)

    阿里云短信验证解决方案(java版)(redis存储) 参考文章: (1)阿里云短信验证解决方案(java版)(redis存储) (2)https://www.cnblogs.com/Amos-Tur ...

  5. 收下这个“短信验证”的最佳实践项目!

    短信验证这样的功能是不是进本每个应用都会用到?那么你有积累下相关的开发模块或服务了吗?不管有没有,今天TJ给大家推荐一个现成的短信验证功能的开源项目! 一个合规.安全.可靠的短信验证码项目模块应该具备 ...

  6. 七丶青龙nvjdc部署教程+短信验证登录对接傻妞

    青龙nvjdc部署教程+短信验证登录对接傻妞Nolanjdc 没有服务器的先自行购买,这里推荐腾讯云2H4G8M首年70–点击购买 青龙面板安装教程 傻妞机器人安装教程 XDD安装教程 QQ交流:10 ...

  7. java实现手机短信验证全过程

    点个赞,看一看,好习惯!本文 GitHub https://github.com/OUYANGSIHAI/JavaInterview 已收录,这是我花了 3 个月总结的一线大厂 Java 面试总结,本 ...

  8. android-短信验证功能,Android实现获取短信验证码的功能以及自定义GUI短信验证详解...

    <Android实现获取短信验证码的功能以及自定义GUI短信验证详解>由会员分享,可在线阅读,更多相关<Android实现获取短信验证码的功能以及自定义GUI短信验证详解(8页珍藏版 ...

  9. 中国网建java发送短信_短信验证登陆-中国网建提供的SMS短信平台

    一.JAVA发送手机短信常见的有三种方式(如下所列): 使用webservice接口发送手机短信,这个可以使用sina提供的webservice进行发送,但是需要进行注册 使用短信mao的方式进行短信 ...

最新文章

  1. php union all,Union与Union All的区别
  2. 跟小静读CLR via C#(05)- 访问限定、数据成员
  3. 阿里再推社交“Real如我”,是电商巨头的流量焦虑
  4. nginx php7 fastcgi,Windows下搭建PHP7+FastCGI+Nginx环境
  5. 使用javasript 遍历页面CheckBox
  6. java获取500错误_HTTP 500错误
  7. uva-465(overflow)
  8. JAVA核心知识总结
  9. 系统动力学模型_蓝谷学术动态|典型海洋生态系统动力学模型构建、应用及发展入选2020年经典中国国际出版工程...
  10. this 的4种绑定机制
  11. 正则表达式 中括号与加号
  12. 记一次mysql_query(): xxx is not a valid MySQL-Link resource
  13. 域名与DNS(域名解析服务器)
  14. 为什么我不再推荐使用MVC框架?
  15. 企业 IT 治理沙龙·北京站:业务优先?治理优先?您的企业是哪种上云姿势?...
  16. python web框架django面试题收藏
  17. 解决在iOS复制失败问题 iOS/Android通用
  18. 读书笔记 - -《Python网络编程》重点
  19. 公司测试部门来了个00后卷王之王,老油条感叹真干不过,但是...
  20. 计算机导么是进制,计算机基础 进制简介和转换

热门文章

  1. Endgame P.O.O
  2. AVL树的理解及自写AVL树
  3. 三维目标检测论文阅读:PointPillars: Fast Encoders for Object Detection from Point Clouds
  4. 微型计算机的体积虽小 但是性价比比较高,[问答题,简答题] 简述公共管理与企业管理的区别。...
  5. 服务器双因素认证微软Ad,12-双因素认证(MIX)配置举例
  6. 一个连接态DRX下的paging接收专利
  7. 2021-04-01裁判文书网数据python爬虫更新下载
  8. 第29届奥运会中国代表团夺金榜
  9. 锐捷Wlan——AC热备实验(DHCP在核心交换机)
  10. 基于全卷积神经网络的前列腺磁共振图像分割