SMS106 短信验证码接口测试
SMS106 短信验证码接口测试
一.什么是SMS106:
106短信通道是指仅中国移动、中国联通提供的网关短信平台,实现与客户指定号码进行短信批量发送和自定义发送的目的,即你收到的短信在手机上以106开头的短信称为106短信。 短信通道的分类国内短信通道主要分为:106通道、电信虚拟短信通道:电话区号(类似021)的、1069三网合一企业实名制通,106通道一般显示为:106通道(10657移动,联通10655,电信10659)。全网移动企业短信通通道10657,联通10655,电信10659全部能够实现上下行,全国支持,适合通知祝福类的短信,限制房地产、发票、私募基金和SP等客户信息。
二.Demo:
1.接口网:
private static string SendForJieKouWang(string phone)
{ //支持htpp get,post请求,如返回104错误,检查验证码内容是否系统提供的模板。
//sms.106jiekou.com/utf8/sms.aspx?account=9999&password=接口密码&mobile=13900008888&content=您的验证码是:7409。请不要把验证码泄露给其他人。如非本人操作,可不用理会!。
string url = "http://sms.106jiekou.com/utf8/sms.aspx"; string account = "";
string password = "";
int num = BuildCode();
string content = "您的验证码是:" + num + "。请不要把验证码泄露给其他人。如非本人操作,可不用理会!"; StringBuilder sb = new StringBuilder();
sb.Append(url);
sb.Append("?account=" + account);
sb.Append("&password=" + password);
sb.Append("&mobile=" + phone);
sb.Append("&content=" + content); HttpWebRequest request = (HttpWebRequest)WebRequest.Create(sb.ToString());
request.Method = "GET";
request.Timeout = ; HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
string result = sr.ReadToEnd();
sr.Close();
code = num;
return result;
//直接返回状态码:成功是100
}
2.网易云通信:
private static string SendForWangYiYun(string phone)
{ string url = "https://api.netease.im/sms/sendcode.action";
string mobile = "mobile=" + phone;
byte[] byteArr = Encoding.UTF8.GetBytes(mobile.ToString()); HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = byteArr.Length;
request.Timeout = ; string appKey = "43c75a269800f3fa008812481db1b031";
string appSecret = "9c74d37ab7f1";
string nonce = "4tgggergigwow323t231";
string curTime = GetCurTime();
string checkSum = HashCodeForSHA1(appSecret + nonce + curTime); request.Headers.Add("AppKey", appKey);
request.Headers.Add("Nonce", "4tgggergigwow323t23t");
request.Headers.Add("CurTime", curTime);
request.Headers.Add("CheckSum", checkSum); Stream requestStream = request.GetRequestStream();
requestStream.Write(byteArr, , byteArr.Length);
requestStream.Close(); HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
string result = sr.ReadToEnd();
sr.Close();
response.Close();
SMSResult smsResult = JsonConvert.DeserializeObject<SMSResult>(result);
code = Convert.ToInt32(smsResult.Obj);
return result; //{ "code":200,"msg":"1","obj":"5996"}
}
3.上海创明:
private static string SendForDuanxinWang(string phone)
{ string sendurl = "http://101.37.79.158/OpenPlatform/OpenApi";
string action = "sendOnce";
string ac = "1001@101012750001"; //用户名
string authkey = "1E37CA014926157DDC29A59ECA9FBD81"; //密钥
string cgid = ""; //通道组编号
string csid = ""; //签名编号 ,可以为空时,使用系统默认的编号
int num = BuildCode();
string c = "【创明短信】验证码:" + num + ", [验证码告知他人将导致帐号被盗,请勿泄露]"; // 短信的内容,不能为空 StringBuilder sb = new StringBuilder();
sb.Append("action=" + action);
sb.Append("&ac=" + ac);
sb.Append("&authkey=" + authkey);
sb.Append("&cgid=" + cgid);
sb.Append("&csid=" + csid);
sb.Append("&m=" + phone);
sb.Append("&c=" + c); byte[] byteArr = Encoding.GetEncoding("utf-8").GetBytes(sb.ToString()); HttpWebRequest request = (HttpWebRequest)WebRequest.Create(sendurl);
request.Method = "POST";
request.Timeout = ;
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = byteArr.Length; Stream requestStream = request.GetRequestStream();
requestStream.Write(byteArr, , byteArr.Length);
requestStream.Close(); HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader responseStream = new StreamReader(response.GetResponseStream(), Encoding.ASCII);
string result = responseStream.ReadToEnd();
responseStream.Close();
response.Close();
code = num;
return result; //返回xml
//<? xml version = "1.0" ?>
// < xml result = "1" name = "sendOnce" >
// < Item remain = "0.100" price = "0.1" total = "1" msgid = "8450826309420610" sid = "1001" cid = "901012750001" />
// </ xml >
}
4.云通讯:
private static string SendForYunTongXun(string phone)
{ //注册不能免费试用,可以通过联系客服可以提供测试账号及密码,要求参数json格式
string url = "http://vsms.253.com/msg/send/json";
string account = "N3723588";
string password = "qdzCbTt5lEf411";
int num = BuildCode();
string msg = "【253云通讯】您的验证码是:" + num + ""; //可选项
string sendtime = "";
string extend = "";
string uid = "";
//string json = "{ \"account\":\"N3723588\",\"password\":\"qdzCbTt5lEf411\",\"msg\":\"254786\",,\"phone\":\"13520073575\"}";
Param p = new Param();
p.account = account;
p.password = password;
p.msg = msg;
p.phone = phone;
string json=JsonConvert.SerializeObject(p); byte[] dataArr = Encoding.UTF8.GetBytes(json); HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
request.ContentType = "application/json";
request.ContentLength = dataArr.Length;
request.Timeout = ; Stream requestStream = request.GetRequestStream();
requestStream.Write(dataArr, , dataArr.Length);
requestStream.Close(); HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
string result = sr.ReadToEnd();
sr.Close();
response.Close();
code = num;
return result;
//"{\"time\":\"20170608113306\",\"msgId\":\"\",\"errorMsg\":\"无此用户\",\"code\":\"101\"}" error
//"{\"time\":\"20170608113520\",\"msgId\":\"17060811352028802\",\"errorMsg\":\"\",\"code\":\"0\"}" ok
}
三.注意事项:
参数一些公司为了安全会吧一些关键的参数放入header中;
首先必须登录其官网注册,来获得自己需要的参数;
仅供参考,请勿拷贝粘贴,多动手,你的技术就会提升一大截。(拷贝你也用不了,某些隐秘参数我会乱输的,安全第一)
SMS106 短信验证码接口测试的更多相关文章
- Atitit. 破解 拦截 绕过 网站 手机 短信 验证码 方式 v2 attilax 总结
Atitit. 破解 拦截 绕过 网站 手机 短信 验证码 方式 v2 attilax 总结 1. 验证码的前世今生11.1. 第一代验证码 图片验证码11.2. 第二代验证码 用户操作 ,比如 ...
- jQuery获取短信验证码+倒计时实现
jQuery 短信验证码倒计时 <script type="text/javascript" charset="utf-8"> $(function ...
- 转载:Android自动化测试- 自动获取短信验证码
前言:android应用的自动化测试必然会涉及到注册登录功能,而许多的注册登录或修改密码功能常常需要输入短信验证码,因此有必要能够自动获得下发的短信验证码. 主要就是实时获取短信信息. android ...
- App开发(Android与php接口)之:短信验证码
最近和同学们一起开发一个自主项目,要用到短信验证码,在网上搜索了很久,看到一个推荐贴,提到了很多不错的短信服务商.经过测试,帖子中提到的服务商他们的短信到达率和到达速度也都不错.最后,由于经费问题,我 ...
- android自动获取短信验证码
前言:android应用的自动化测试必然会涉及到注册登录功能,而许多的注册登录或修改密码功能常常需要输入短信验证码,因此有必要能够自动获得下发的短信验证码.主要就是实时获取短信信息.android上获 ...
- Atitit usrQBM1603短信验证码规范
Atitit usrQBM1603短信验证码规范 短信验证码扩展至短信服务和验证码服务1 主要方法1 参考模板1 短信验证码扩展至短信服务和验证码服务 主要方法 Line 27: public cla ...
- atitit 短信验证码的源码实现 .docx
atitit 短信验证码的源码实现 .docx 参考 Atitit usrQBM1603短信验证码规范1 主要方法1 源码实现1 参考 Atitit usrQBM1603短信验证码规范 主要方法 L ...
- Android学习笔记之短信验证码的获取和读取
PS:最近很多事情都拖拖拉拉的..都什么办事效率啊!!! 还得吐槽一下移动运营商,验证码超过五次的时候,直接把我的手机号封闭.真是受够了. 学习笔记: 1.Android之如何获取短信验证码. 2.如 ...
- php实现的IMEI限制的短信验证码发送类
php实现的IMEI限制的短信验证码发送类 <?php class Api_Sms{ const EXPIRE_SEC = 1800; // 过期时间间隔 const RESEND_SEC = ...
随机推荐
- 011. 解决VS2015中CS1528: Expected ; or = (cannot specify constructor arguments in declaration)
编译器错误消息: CS1528: Expected ; or = (cannot specify constructor arguments in declaration) 源错误: 行 94: ...
- 「小程序JAVA实战」 小程序私有页面的生命周期以及导航(10)
转自:https://idig8.com/2018/08/09/xiaochengxu-chuji-10/ 之前讲了小程序全局的生命周期,今天咱们说说单个页面的生命周期!源码:https://gith ...
- nat123软件windows版
转自:http://www.nat123.com/pages_8_565.jsp 同时支持内网和公网IP.只要可以上网,即可将所有应用发布外网. >>nat123客户端windows版本软 ...
- Hibenate错误汇总:java.lang.NoClassDefFoundError: org/jboss/logging/BasicLogger
转自:https://bioubiou.iteye.com/blog/1769950 1 Hibenate异常汇总:java.lang.NoClassDefFoundError: org/jboss/ ...
- openGL 变换06
变换 使用(多个)矩阵(Matrix) 对象可以更好的变换(Transform)一个物体. 向量 向量最基本的定义就是一个方向. 或者说 向量有一个方向(Direction)和大小(Magnitude ...
- RTMP_EnableWrite(rtmp)
发布流关键函数: RTMP_EnableWrite(rtmp); 将rtmp设置可写状态,会发出publish指令,否则是play指令:
- wince驱动开发入门
因为课题前期调研没做好,用的CPU板卡和数据采集卡来自两个部门.加上买的是裸板,自己定制的OS,技术支持不爱搭理.所以给的AI板卡的驱动一直装不上,自己在郁闷中寻找答案,就扎进了wince驱动的知识库 ...
- laravel策略类,实现当前登陆的用户是否具有删除,修改文章的权限
策略类依赖月门脸类Auth 首先创建一个门脸类 make:auth 然后再创建一个策略 php artisan make:policy PostPolicy 定义Auth的登陆类,用的是哪个模型登陆 ...
- Part5核心初始化_lesson4---关闭中断
1.关闭cpsr寄存器里面的I(中断)和F(快速中断)位: 2.设置中断屏蔽寄存器. 针对2440: 这是中断处理过程,当有中断源(没有子中断源)来的时候,它会把这个中断记录在SRCPND里面:它还要 ...
- Django-Web框架之创建项目和应用
Django我们是基于python3来演示的.首先我们来安装一下django框架.使用pip3 install django安装的是最新的版本: 我们在pycharm中创建django工程.如图所示: ...