一、短信猫或短信猫池
有单口单卡的,也有4口,8口的,甚至16口或32口短信猫池;能用GSM卡,UISM卡或是CDMA卡;使用USB连接线或是串口线,有的支持大小卡。
1、AT指令:串口连接,挺复杂,一串AT指令看着就晕;
2、DLL或OCX调用:可以是串口,USB口,调用相关方法发送;
3、网口调用:TCP连接,按时指定的协议格式发送,比较简单;
4、数据库开发接口:设置好数据的地址,用户名和密码,只要把需要发送的内容写入到数据库,就是短信猫定时去数据库里取内容,不用关心别的,但总是感觉这样怪怪的;
5、文本文件:按照短信猫的要求,在特定的文件夹,写入规则格式的文本文件,同样收取短信的时候,也是在指定的文件夹下读取。
二、第三方短信提供商
一般0.1元/条,有的提供商还有最低消费,或是购买套餐,达到一定的量有优惠,一般号码不固定,可能每次收到的短信号码都不同,如果号码有要求,还是注意了。
1、HTTP:调用地址传入参数,有的还需要绑定IP,通用性强,可以跨平台;
2、WebService:调用Web服务,调用指定的方法,也是通用性强,可以跨平台;
3、DLL:调用服务提供商的DLL,封装了短信通读协议;
我几年前用过一个“吉信通”,接口下载地址 http://winare.cn/download/开发包.rar ,(2013年3月18日亲测下载地址可以用)有兴趣的朋友可以下载看看,有VB,VC,JAVA,C#,PHP,Delphi等语言的例子,包括DLL,HTTP,WebService,数据库的调用方式。
三、企信通(中国移动)
企信通是中国移动为集团客户推出的商务短信平台,通过整合Internet国际互联网和GSM移动通信网的网络优势,企信通能够将企业的内部办公系统、客户服务系统、ERP系统等与移动网络结合在一起,以短信的方式实现企业内部办公、对外营销、企业生产数据采集等,利用短信随时、随身的特点为企业客户、企业员工提供标准化的企业短信服务。
企信通用套餐:
同时要求也比较高“行业高端通道端口速度快,稳定性高。收到后显示网关号106开头。一般情况10秒内可以收到。99%以上到达率。要求内容严格,接收方必须是自己的客户。不能乱发广告,被系统监测发现后冻结帐户,扣除余额”。够恨吧。
说了半天,据说这个只能在平台上发,不能用接口,用接口的要用三网合一的短信,0.06元/条,提供HTTP的接口。
企信通接口文档V1.0.doc 日期:2012-10-09
一、短信下发接口(有IP鉴权)
1、 服务器接口地址:http://114.255.71.158:8061/
2、 短信发送参数说明:
参数名称 |
参数说明 |
备注 |
username |
用户名 |
分配 |
password |
系统访问接口密码 |
分配 |
phone |
要发送的手机号码 |
电话号码 |
message |
短信内容 |
信息内容 |
epid |
企业id |
分配 |
linkid |
备用 |
唯一ID,可为空 |
subcode |
扩展小号 |
可为空 |
3、 示例:
http://114.255.71.158:8061/?username=***&password=***&message=ceshi&phone=13910123456&epid=111&linkid=&subcode=
4、 发送返回参数说明:
返回代码 |
代码说明 |
00 |
提交成功 |
1 |
参数不完整 |
2 |
鉴权失败(包括:用户状态不正常、密码错误、用户不存在、地址验证失败,黑户) |
3 |
号码数量超出50条 |
4 |
发送失败 |
5 |
余额不足 |
6 |
发送内容含屏蔽词 |
5、 说明:
1) 接口有IP鉴权,非鉴权IP地址不允许访问
2) 接口统一使用get方式提交,字段不分先后顺序
3) 各字段名统一使用小写方式
4) Phone为电话号码字段,最多一次传50个手机号,以英文半角逗号隔开;
5) message为短信内容,强制采用gb2312编码格式传送短信内容;
6) linkid字段为每次的发送标识,要有唯一性,长度不超过20位;
7) username为用户名,建议使用英文名称;
8) epid为客户企业ID,使用数字格式;
9) subcode为发送时传送的扩展码,可为空;
10) password为密码字段,兼容明文密码与32位的MD5密文密码,建议使用32位的MD5密文密码;
11) 注意:如果返回值错误,重复提交次数不要超过3次
二、上行接收接口(手机用户给发送方回复的信息)
上行信息通过HTTP协议进行传送。接口地址由合作方提供相应的URL。URL参数请参见说明:
数据结构名称 |
参数说明 |
备注 |
Phone |
主叫号码(源地址) |
|
msgContent |
用户上行消息内容 |
|
spNumber |
用户上行目的号码,如10657500123 |
下发地址码 |
三、状态报告接收接口
状态报告通过HTTP协议进行传送。接口地址由合作方提供相应的URL。相关传送数据如下:
数据结构名称 |
最大长度 |
解释 |
说明 |
PlatForm |
10 |
平台名称 |
|
FUnikey |
40 |
流水号 |
|
FOrgAddr |
15 |
源地址 |
|
FDestAddr |
15 |
目的地址 |
|
FSubmitTime |
15 |
响应时间 |
|
FFeeTerminal |
15 |
计费号码 |
|
FServiceUPID |
10 |
计费代码 |
|
FReportCode |
15 |
状态报告 |
|
FLinkID |
30 |
LinkID |
|
FAckStatus |
10 |
鸿联平台管理控制 |
非0值为未发送至网关。 |
完整的URL示例:
http://192.168.0.1/arthhome/test.asp?PlatForm=SMS1065M&FUnikey=B2D0851824E76184003A5B2813227415089&ForgAddr=1065750001&FdestAddr=13227415089&fsubmittime=20090619143556&FFeeTerminal=13227415089&FserviceUPID=SQT1234&FreportCode=0&FLinkID=3630383136353700&FAckStatus=0
三、余额查询接口(有IP鉴权)
http://114.255.71.158:8061/getfee/?username=***&password=***&epid=***
参数说明:
参数名称 |
参数说明 |
备注 |
username |
用户名 |
分配 |
password |
系统访问接口密码 |
分配 |
epid |
企业id |
分配 |
返回值:
条数
C#怎么调用,来点儿代码吧:
需要引用:
using System.Net;
using System.IO;
public string SendSMS() { string url = "http://114.255.71.158:8061/?username=***&password=***&message=ceshi&phone=13910123456&epid=111&linkid=&subcode="; HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(url); req.Method = "Get"; WebResponse wr = req.GetResponse(); using (StreamReader t_StreamReader = new StreamReader(wr.GetResponseStream(), Encoding.GetEncoding("utf-8"))) { //返回值 return t_StreamReader.ReadToEnd(); } }
HTTP调用还有GET和POST两种,自己测试。