如何用程序发短信

一、短信猫或短信猫池

有单口单卡的,也有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系统等与移动网络结合在一起,以短信的方式实现企业内部办公、对外营销、企业生产数据采集等,利用短信随时、随身的特点为企业客户、企业员工提供标准化的企业短信服务。

企信通用套餐:

企信通1

同时要求也比较高“行业高端通道端口速度快,稳定性高。收到后显示网关号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两种,自己测试。

posted @ 2013-03-19 15:57  wk986  阅读(2613)  评论(0编辑  收藏  举报