【API】短信通106端口验证短信的实现
信息时代,无论是电商还是网络营(chuan)销(xiao)都希望得道更多的用户信息。所以很多的网站注册上用到了手机验证码功能。网上有很多的SMS接口提供商。在选择的时候无非就是考虑到1、发送速度;2、短信价格;3、运营商服务以及技术支持。
找了几个感觉这个提供商还不错(http://www.pcf.cn/)。首先是发送的速度,因现在是过年时期短信也应该输入高峰期吧,这种情况下短信几乎是五秒内送达。其次是价格,从5分到1角不等,因会员等级不同价格不同。不过对于一般小网站的土(diao)豪(si)站长也是可以接受的。
写了一个HTTP POST的发送信息类,当然了官网也提供了相应的下载。手贱就愿意自己写,直接贴。说不定那天我也成为未来某某门户网站的BOSS那。。。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Text;
using System.Net;
using System.IO;
namespace SMS
{
public class CSMS
{
private string strUrl = "http://sms.106jiekou.com/utf8/sms.aspx";
private string strAccount = ""; // 用户登录名称 This is Login Name
private string strPassWord = ""; // 短信接口密码(非登录密码) This is Interface PassWord(Not Longin PassWord)
/// <summary>
/// 构造函数
/// </summary>
/// <param name="strAccount">登录用户帐号</param>
/// <param name="strPassWord">短信接口密码</param>
public CSMS(string strAccount, string strPassWord)
{
this.strAccount = strAccount;
this.strPassWord = strPassWord;
}
/// <summary>
/// 发送信息
/// </summary>
/// <param name="strTelNum">目标电话号码</param>
/// <param name="strContent">短信内容,必须为短信模版中审核通过</param>
/// <returns></returns>
public bool SendSMS(string strTelNum, string strContent, out string strError)
{
bool bResult = false;
strError = "";
string strPostData = "account={0}&password={1}&mobile={2}&content={3}";
UTF8Encoding utfEncoding = new UTF8Encoding();
byte[] bPostData = utfEncoding.GetBytes(string.Format(strPostData, this.strAccount, this.strPassWord, strTelNum, strContent));
try
{
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(this.strUrl);
myRequest.Method = "POST";
myRequest.ContentType = "application/x-www-form-urlencoded;charset=UTF-8";
myRequest.ContentLength = bPostData.Length;
Stream stream = myRequest.GetRequestStream();
// 发送数据 Send the data.
stream.Write(bPostData, 0, bPostData.Length);
stream.Flush();
stream.Close();
HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
if (myResponse.StatusCode == HttpStatusCode.OK)
{
int iResult = -1;
StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);
string strResult = reader.ReadToEnd();
int.TryParse(strResult, out iResult);
switch (iResult)
{
case -1:
strError = "Error:服务器返回值转换错误、" + strResult;
bResult = false;
break;
case 100:
strError = "";
bResult = true;
break;
default:
bResult = false;
strError = "Error:服务器拒绝发送、请查看官方API返回值信息;错误代码(" + iResult + ")";
break;
}
}
}
catch (Exception ex)
{
bResult = false;
strError = "Error:" + ex.Message;
}
return bResult;
}
}
}
返回发送的状态码说明:
状态码 说明
100 发送成功
101 验证失败
102 手机号码格式不正确
103 会员级别不够
104 内容未审核
105 内容过多
106 账户余额不足
107 Ip受限
108 手机号码发送太频繁,请换号或隔天再发
109 帐号被锁定
110 手机号发送频率持续过高,黑名单屏蔽数日
120 系统升级
注:由于某些网民的特殊爱好可能回去你网站捣乱,所以短信验证的时候要加上验证、IP地址限制、ID限制、手机号限制以及短信通帐号密码安全保护。毕竟这花的是站长的血(guang)汗(gao)钱。当然了土豪例外。。。
【API】短信通106端口验证短信的实现的更多相关文章
- 企业短信通 C# HTTP接口 发送短信
/* 功能: 企业短信通 C# HTTP接口 发送短信 修改日期: 2014-09-01 说明: http://api.cnsms.cn/?ac=send&uid=用户账号&pwd=M ...
- [工具开发] 一信通 Web 短信发送客户端
一.简介 为了协助公司运营部对几家短信平台进行测试,我根据各自的接口文档编写了几个简单的短信发送客户端: 下面是一信通 Web 短信发送客户端,使用 HTTP GET 方法. 二.效果图 1. 首页 ...
- 基于SMS短信平台给手机发送短信
JAVA发送手机短信,我知道的有三种方式,恰逢项目需求,自己整理了基于SMS的短信发送,其他两种这里就说说一下 使用webservice接口发送手机短信,这个可以使用sina提供的webservice ...
- 从iMessage到微信,QQ离线短信服务,米聊,易信
把iMessage.米聊.QQ离线短信服务.微信.易信放到一下,毫无疑问大家能够看出他们的共同点,iMessage与米聊我们就不用说了,有雷布斯的存在就有米聊的存在,QQ离线短信服务是提供给QQ会员的 ...
- Delphi阿里云短信【支持短信发送、短信批量发送和查询短信发送记录】
作者QQ:(648437169) 点击下载➨Delphi阿里云短信 阿里云api文档 [Delphi 阿里云短信]是最新的阿里云短信接口,不是阿里大于短信接口,支持SendSm ...
- 【免费】iPhone上最好用的短信群发软件: 高速短信4.1
免费的最新的联系人.群组.多人发送短信软件短信群发4.1已经出炉.欢迎下载! *归属地信息让你时时记着好友的地方,让陌生号码变得不陌生: *您能够选择最经常使用的联系人然后发送高速短信; *群联系人 ...
- 4、下行短信发送WebService、下行短信发送服务 -功能详细设计 --短信平台
3. 下行短信发送WebService 开发一个WebService,供第三方系统调用,用于发送短信.WebService接收数据后,将信息存储入数据库的短信发送数据表中. WebService参数 ...
- java实现发短信功能---腾讯云短信
目录 java实现发短信功能 前言 开发环境 腾讯云 ---短信 代码 效果 结束语 java实现发短信功能 前言 如今发短信功能已经成为互联网公司的标配,本篇文章将一步步实现java发送短信 考察了 ...
- G客短信平台开发,资源短信功能使用说明
短信平台使用资源短信操作顺序 联系微信:290615413 1:登录客户端 2:点击左侧 发送短信中的,资源短信 3:资源短信申请操作 3.1:选择相应的省市 会显示资源数量. 3.2:然后输入申请 ...
随机推荐
- js实现页面a向页面b传参的方法
方法一:使用HTML5本地化存储(localStorage) 组件(本地最大能存储5M数据)localStorage是本地永久存储数据,是cookie的优化 方法二:使用cookie将数据存放在客户的 ...
- 常见浏览器兼容问题、盒模型2种模式以及css hack知识讲解
什么是浏览器兼容问题?所谓的浏览器兼容性问题,是指因为不同的浏览器对同一段代码有不同的解析,造成页面显示效果不统一的情况.在大多数情况下,我们的需求是,无论用户用什么浏览器来查看我们的网站或者登陆我们 ...
- 【Win10】使用 ValidationAttribute 实现数据验证
WPF 中数据验证的方式多种多样,这里就不说了.但是,在 Windows Phone 8.1 Runtime 中,要实现数据验证,只能靠最基础的手动编写条件判断代码来实现.如果用过 ASP.NET M ...
- 自定义ConfigurationSection,创建多个嵌套的ConfigurationElementCollection节点
由于接口地址都是固定的,所以想到使用自定义节点,来将接口都配置到web.config中. 很快,v1.0版本出炉: public class RequestConfigSection : Config ...
- IOS 之 PJSIP 笔记(二) iPJSUA 的简单使用
上一篇在编译完之后,就很不负责的结束了,本篇就对 PJSIP 库中提供的一个示例 iPJSUA 的使用,做一个简单的介绍.也能解除很多人对官方文档的一个困扰,起码我是被困扰过了. 首先,要确保你的 P ...
- Ubuntu 12.04下解决Tomcat自启动问题
当我们安装好Tomcat使用后发现,每次启动都需要在终端中手动键入sudo /var/tomcat/bin/startup.sh,那么我们怎么解决这个问题呢 http://hovertree.com/ ...
- HTML常用符号
HTML转义符号 HTML常用符号: 显示一个空格 < 小于 < <> 大于 > >& &符号 & &" 双引号 & ...
- 如何理解css中的float
最近一段时间一直在为一个即将上线的新站进行一些前端开发.自然,对CSS的使用是必不可少的了.我们在CSS 中很多时候会用到浮动来布局.常见的有 float:left 或者 float:right .简 ...
- ref与out的区别
若要使用 ref 参数,方法定义和调用方法均必须显式使用 ref 关键字,如下面的示例所示. class RefExample { static void Method(ref int i) { // ...
- SpreadJS 中应用 KnockoutJS 技术
SpreadJS 支持 Knockout (KO)技术, KnockoutJS 是一个使用 MVVM 模式的 JavaScript 库,允许双向数据绑定,使数据和UI界面进行实时的交互更新.关于KO的 ...