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 短信验证码接口测试的更多相关文章

  1. Atitit. 破解  拦截 绕过 网站 手机 短信 验证码  方式 v2 attilax 总结

    Atitit. 破解  拦截 绕过 网站 手机 短信 验证码  方式 v2 attilax 总结 1. 验证码的前世今生11.1. 第一代验证码 图片验证码11.2. 第二代验证码  用户操作 ,比如 ...

  2. jQuery获取短信验证码+倒计时实现

    jQuery 短信验证码倒计时 <script type="text/javascript" charset="utf-8"> $(function ...

  3. 转载:Android自动化测试- 自动获取短信验证码

    前言:android应用的自动化测试必然会涉及到注册登录功能,而许多的注册登录或修改密码功能常常需要输入短信验证码,因此有必要能够自动获得下发的短信验证码. 主要就是实时获取短信信息. android ...

  4. App开发(Android与php接口)之:短信验证码

    最近和同学们一起开发一个自主项目,要用到短信验证码,在网上搜索了很久,看到一个推荐贴,提到了很多不错的短信服务商.经过测试,帖子中提到的服务商他们的短信到达率和到达速度也都不错.最后,由于经费问题,我 ...

  5. android自动获取短信验证码

    前言:android应用的自动化测试必然会涉及到注册登录功能,而许多的注册登录或修改密码功能常常需要输入短信验证码,因此有必要能够自动获得下发的短信验证码.主要就是实时获取短信信息.android上获 ...

  6. Atitit usrQBM1603短信验证码规范

    Atitit usrQBM1603短信验证码规范 短信验证码扩展至短信服务和验证码服务1 主要方法1 参考模板1 短信验证码扩展至短信服务和验证码服务 主要方法 Line 27: public cla ...

  7. atitit 短信验证码的源码实现  .docx

    atitit 短信验证码的源码实现  .docx 参考 Atitit usrQBM1603短信验证码规范1 主要方法1 源码实现1 参考 Atitit usrQBM1603短信验证码规范 主要方法 L ...

  8. Android学习笔记之短信验证码的获取和读取

    PS:最近很多事情都拖拖拉拉的..都什么办事效率啊!!! 还得吐槽一下移动运营商,验证码超过五次的时候,直接把我的手机号封闭.真是受够了. 学习笔记: 1.Android之如何获取短信验证码. 2.如 ...

  9. php实现的IMEI限制的短信验证码发送类

    php实现的IMEI限制的短信验证码发送类 <?php class Api_Sms{ const EXPIRE_SEC = 1800; // 过期时间间隔 const RESEND_SEC = ...

随机推荐

  1. 洛谷 P3302 [SDOI2013]森林 Lebal:主席树 + 启发式合并 + LCA

    题目描述 小Z有一片森林,含有N个节点,每个节点上都有一个非负整数作为权值.初始的时候,森林中有M条边. 小Z希望执行T个操作,操作有两类: Q x y k查询点x到点y路径上所有的权值中,第k小的权 ...

  2. 微信扫码支付PHP接入总结

    微信扫码支付分为两种模式, 模式一比较复杂,需要公众号配置回调地址. 模式二比较简单,只需要在代码中配置回调地址就可以了. 我这次使用的是模式二. 需要配置参数, const APPID = 'xxx ...

  3. 010. VS2015创建MVC项目

    1. 文件→新建→项目 2.选择空模板→选中MVC 3. 预览(如果是使用aspx, 则可以删除Views中的web.config, 如果使用Razor则不要删除, 否则会报Views/Home/In ...

  4. java成神之——Stream和Optional

    Stream流 基本使用 流关闭 平行流 流重用 iterator转换成流 分组计数 无限流 流转集合 压缩流 统计数值流 集合转换流遍历 流拼接 reduce 使用流生成随机字符串 流的包装流 几种 ...

  5. springboot成神之——RestTemplate访问Rest

    本文介绍RestTemplate访问Rest demo package com.springlearn.learn; import java.util.Arrays; import org.sprin ...

  6. 第二章 Java内存区域与内存溢出异常(待续)

    ·········

  7. composer 的设计原理及其基本用法

    相信有在用PHP的朋友近年来常听到composer这个套件管理工具.它到底是做什么用的?又是为了解决什么问题而存在呢? 要了解这个,得先从历史开始说起…. PHP最早加载类的方法 初学PHP时,最早会 ...

  8. MongDB安装使用

    4.MongoDB 下载 MongoDB 提供了可用于 32 位和 64 位系统的预编译二进制包,你可以从MongoDB官网下载安装,MongoDB 预编译二进制包下载地址:https://www.m ...

  9. HTTP之报文

    HTTP 报文 用于 HTTP 协议交互的信息被称为 HTTP 报文.请求端(客户端)的 HTTP 报文叫做请求报文,响应端(服务器端)的叫做响应报文.HTTP 报文本身是由多行(用 CR+LF 作换 ...

  10. 【294】◀▶ Python 字符串说明

    目录: 一.Python访问字符串中的值 二. Python 转义字符 三.Python 字符串运算符 参考:Python 字符串 一.Python访问字符串中的值   Python不支持单字符类型, ...