免费短信接口
短信接口文档

Web Service接入模式Web Service 发送短信模式Web Service 路径:/WS/LinkWS.asmx系统提供8个接口: 注册接口Reg、更改密码接口UpdPwd、修改注册信息UpdReg、查询余额接口SelSum、发送信息接口Send、群发短信接口 BatchSend 、短信报告接口 GetReportSMS、接收短信Get注册接口Reg输入参数:参数说明类型LoginName代理商账号StringLoginPwd 代理商密码StringCorpName 企业名称StringLinkMan 联系人StringTel 联系电话StringMobile 联系人手机StringEmail 邮件StringMemo 其他备注StringCorpID 用户账号StringPass 用户密码String输出参数:输出返回值参数状态说明OK 注册成功错误文本失败C# 实例:try{Dxt.LinkWS LinkWs=new dxt.LinkWS();String ReS=LinkWs.Reg(LoginName, LoginPwd, CorpName, LinkMan, Tel, Mobile, Email, CorpID, Pass);if(ReS=="OK"){MessageBox.Show("注册成功" );}else{MessageBox.Show("注册失败!" );}}catch (.WebException WebExcp){MessageBox.Show("网络错误,无法连接到服务器!" );}更改密码UpPwd输入参数参数说明类型CorpID 帐号StringPwd 密码StringNewPwd 新密码String输出参数:输出返回值参数状态说明0 密码修改成功–1 账号未注册–2 其他错误–3 密码错误C# 实例:try{Dxt.LinkWS LinkWs=new Dxt.LinkWS();intUpdPwd=LinkWs.Reg(CorpID.Text.Trim(),Pwd.Text.Trim(),NewPwd.Text.Trim());if(ReS==0){MessageBox.Show("密码修改成功" );}else if(ReS==-1){MessageBox.Show("账号未注册" );}else if(ReS==-2){MessageBox.Show("其他错误!" );}else if(ReS==-3){MessageBox.Show("密码错误!" );}}catch (.WebException WebExcp){MessageBox.Show("网络错误,无法连接到服务器!" );修改注册信息 UpdReg输入参数:参数说明类型CorpID 账号String Pwd 密码String CorpName 企业名称String LinkMan 联系人String Tel 联系电话String Mobile 联系人手机String Email 邮件String Memo 其他备注String输出参数:输出返回值参数状态说明0 修改成功–1 账号未注册–2 其他错误–3 密码错误C# 实例:try{Dxt.LinkWS LinkWs=new dxt.LinkWS();ReS=LinkWs.UpdReg(CorpID.Text.Trim(),Pwd.Text.Trim(),CorpName.Text.Trim(),LinkMan.Text.Tr im(),Tel.Text.Trim(),Mobile.Text.Trim(),Email.Text.Trim(),Memo.Text.Trim());if(ReS==0){MessageBox.Show("成功修改注册信息" );}else if(ReS==-1){MessageBox.Show("帐号未注册!" );}else if(ReS==-2){MessageBox.Show("其他错误!" );}else if(ReS==-3){MessageBox.Show("帐号密码不匹配!" );}}catch (.WebException WebExcp){MessageBox.Show("网络错误,无法连接到服务器!" );查询余额SelSum输入参数参数说明类型CorpID 帐号StringPwd 密码String输出参数:输出返回值参数状态说明0 剩余条数–1 账号未注册–2 其他错误–3 密码错误C# 实例:try{Dxt.LinkWS LinkWs=new dxt.LinkWS();int ReS=LinkWs.SelSum(CorpID.Text.Trim(),Pwd.Text.Trim());if(ReS>=0)MessageBox.Show("还剩"+ReS.ToString()+"条" );}else if(ReS==-1){MessageBox.Show("帐号未注册!" );}else if(ReS==-2){MessageBox.Show("其他错误!" );}else if(ReS==-3){MessageBox.Show("帐号密码不匹配!" );}}catch (.WebException WebExcp){MessageBox.Show("网络错误,无法连接到服务器!" );}发送短信 Send(返回状态报告ID)输入参数:参数说明类型CorpID 账号StringPwd 密码StringMobile 发送手机号码StringContent 发送内容(需要UrlEncode)StringCell 子号StringSendTime 定时发送时间String 2012/2/6 17:02:00 输出参数:输出返回值参数状态说明大于0的数字发送成功(得到大于0的数字、作为取报告的id)–1 账号未注册–2 其他错误–3 密码错误–4 手机号格式不对–5 余额不足–6 定时发送时间不是有效的时间格式–7 禁止10小时以内向同一手机号发送相同短信-10 需要审核的信息C# 实例:try{Dxt.LinkWS LinkWs=new Dxt.LinkWS();intReS=LinkWs.Send2(CorpID.Text.Trim(),Pwd.Text.Trim(),SendMobile.Text.ToString().Trim(),Sen dContent.Text.ToString().Trim(),"",SendTime.Text.ToString().Trim());if (ReS == 0){MessageBox.Show("发送成功!" );}else if(ReS==-1){MessageBox.Show("帐号未注册!") ;}else if(ReS==-2){MessageBox.Show("其他错误!") ;}else if(ReS==-3){MessageBox.Show("帐号密码不匹配!") ;}else if(ReS==-4){MessageBox.Show("手机号码不正确!") ;}else if(ReS==-5){MessageBox.Show("余额不足!") ;}else if(ReS==-6){MessageBox.Show("定时发送时间不是有效时间!") ;}else if(ReS==-7){MessageBox.Show("禁止10小时之内向同一手机发送相同内容") ;}}catch (.WebException WebExcp){MessageBox.Show("网络错误,无法连接到服务器!" );}群发短信 BatchSend(返回状态报告ID)输入参数:备注:相同内容的号码尽量一个包提交(一次性最多支持600个号码)。
(中国移动)互联网短信网关接口协议(CMPP2.0)

中国移动通信互联网短信网关接口协议(China Mobile Peer to Peer, CMPP)(V2.0)中国移动通信集团公司2002年4月目录前言 (4)1.围 (5)2.缩略语 (5)3.网络结构 (6)4.CMPP功能概述 (6)5. 协议栈 (8)6. 通信方式 (8)6.1 长连接 (9)6.2 短连接 (11)6.3 本协议中涉及的端口号 (12)6.4 交互过程中的应答方式 (12)7.消息定义 (12)7.1基本数据类型 (12)7.2消息结构 (13)7.3 消息头格式(Message Header) (13)7.4信息资源站实体(SP)与互联网短信网关(ISMG)间的消息定义 (13)7.4.1 SP请求连接到ISMG(CMPP_CONNECT)操作 (13)7.4.1.1 CMPP_CONNECT消息定义(SP ISMG) (13)7.4.1.2 CMPP_CONNECT_RESP消息定义(ISMG SP) (14)7.4.2 SP或ISMG请求拆除连接(CMPP_TERMINATE)操作 (14)7.4.2.1 CMPP_TERMINATE消息定义(SP ISMG或ISMG SP) (14)7.4.2.2 CMPP_TERMINATE_RESP消息定义(SP ISMG或ISMG SP) (14)7.4.3 SP向ISMG提交短信(CMPP_SUBMIT)操作 (15)7.4.3.1 CMPP_SUBMIT消息定义(SP ISMG) (15)7.4.3.2 CMPP_SUBMIT_RESP消息定义(ISMG SP) (16)7.4.4 SP向ISMG查询发送短信状态(CMPP_QUERY)操作 (17)7.4.4.1 CMPP_QUERY消息的定义(SP ISMG) (17)7.4.4.2 CMPP_QUERY_RESP消息的定义(ISMG SP) (17)7.4.5 ISMG向SP送交短信(CMPP_DELIVER)操作 (18)7.4.5.1 CMPP_DELIVER消息定义(ISMG SP) (18)7.4.5.2 CMPP_DELIVER_RESP消息定义(SP ISMG) (20)7.4.6 SP向ISMG发起删除短信(CMPP_CANCEL)操作 (20)7.4.6.1 CMPP_CANCEL消息定义(SP ISMG) (20)7.4.6.2 CMPP_CANCEL_RESP消息定义(ISMG SP) (21)7.4.7 链路检测(CMPP_ACTIVE_TEST)操作 (21)7.4.7.1 CMPP_ACTIVE_TEST定义(SP ISMG或ISMG SP) (21)7.4.7.2 CMPP_ACTIVE_TEST_RESP定义(SP ISMG或ISMG SP) (21)7.5互联网短信网关(ISMG)之间的消息定义 (21)7.5.1 源ISMG请求连接到目的ISMG(CMPP_CONNECT)操作 (21)7.5.2 源ISMG请求拆除到目的ISMG的连接(CMPP_TERMINATE)操作 (21)7.5.3链路检测(CMPP_ACTIVE_TEST)操作 (21)7.5.4 源ISMG向目的ISMG转发短信(CMPP_FWD)操作 (22)7.5.4.1 CMPP_FWD定义(ISMG ISMG) (22)7.5.4.2 CMPP_FWD_RESP定义(ISMG ISMG) (25)7.6互联网短信网关(ISMG)与汇接网关(GNS)之间的消息定义 (26)7.6.1 ISMG请求连接到GNS或GNS请求连接到ISMG(CMPP_CONNECT)操作 (26)7.6.2 ISMG请求拆除到GNS的连接或GNS请求拆除到ISMG的连接(CMPP_TERMINATE)操作 (26)7.6.3 ISMG向汇接网关查询MT路由(CMPP_MT_ROUTE)操作 (26)7.6.3.1 CMPP_MT_ROUTE消息定义(ISMG GNS) (26)7.6.3.2 CMPP_MT_ROUTE_RESP消息定义(GNS ISMG) (26)7.6.4 ISMG向汇接网关查询MO路由(CMPP_MO_ROUTE)操作 (27)7.6.4.1 CMPP_MO_ROUTE消息定义(ISMG GNS) (27)7.6.4.2 CMPP_MO_ROUTE_RESP消息定义(GNS ISMG) (27)7.6.5ISMG向汇接网关获取路由(CMPP_GET_ROUTE)操作 (27)7.6.5.1 CMPP_GET_ ROUTE消息定义(ISMG GNS) (27)7.6.5.2 CMPP_GET_ ROUTE_RESP消息定义(GNS ISMG) (28)7.6.6 ISMG向汇接网关更新MT路由(CMPP_MT_ROUTE_UPDATE)操作 (28)7.6.6.1 CMPP_MT_ROUTE_UPDATE消息定义(ISMG GNS) (28)7.6.6.2 CMPP_MT_ROUTE_UPDATE_RESP消息定义(GNS ISMG) (29)7.6.7 ISMG向汇接网关更新MO路由(CMPP_MO_ROUTE_UPDATE)操作 (29)7.6.7.1 CMPP_MO_ROUTE_UPDATE消息定义(ISMG GNS) (29)7.6.7.2CMPP_MO_ROUTE_UPDATE_RESP消息定义(GNS ISMG) (29)7.6.8汇接网关向ISMG更新MT路由(CMPP_PUSH_MT_ROUTE_UPDATE)操作 (30)7.6.8.1 CMPP_PUSH_MT_ROUTE_UPDATE消息定义(GNS ISMG) (30)7.6.8.2 CMPP_PUSH_MT_ROUTE_UPDATE_RESP消息定义(ISMG GNS).. 307.6.9汇接网关向ISMG更新MO路由(CMPP_PUSH_MO_ROUTE_UPDATE)操作 (30)7.6.9.1 CMPP_PUSH_MO_ROUTE_UPDATE消息定义(GNS ISMG) (30)7.6.9.2 CMPP_PUSH_MO_ROUTE_UPDATE_RESP消息定义(ISMG GNS).. 317.7系统定义 (31)7.7.1 Command_Id定义 (31)附录1 MO状态报告的产生 (33)修订历史..................................................... 错误!未定义书签。
一信通短信接口文档

一信通企业信息服务平台接口手册目录一信通企业信息服务平台 (1)1.概述 (3)1.1编制目的 (3)1.2容概述 (3)1.3名称解释 (3)1.4参考文献 (3)2.短信 (4)2.1HTTP接口 (4)2.1.1消息协议 (4)2.1.2发送短信 (4)2.1.3回执接口 (5)2.1.4剩余短信条数查询 (6)2.1.5回复容接口 (7)2.2W EBSERVICE接口 (7)2.2.1消息协议 (7)2.2.2发送短信 (8)2.2.3回执接口 (9)2.2.4上行回复容查询接口 (9)2.2.5上行回复容确认接口 (10)2.2.6容审核 (11)修改历史1.概述1.1编制目的该接口文档手册编写在于描述易派企业信息服务平台UMS(以下简称UMS)具体的接口协议,供第三方系统能够顺利接入一信通短信网关。
1.2容概述本规主要讲了第三方系统接入短信通系统的协议要求,协议三大状态和协议指令的格式和响应信息。
1.3名称解释1.4参考文献2.短信2.1http接口2.1.1消息协议接口地址: guangdong.ums86.:8899/sms/Api/通过接口提交参数时, 参数容必须为GB2312 编码, 且经过url编码后的容。
例如:“您好”的url编码为“%C4%FA%BA%C3”接口返回的容是一些键值对的字符串集合,形式为:“k1=v1&k2=v2&k3=v3…”返回容中的键值显示为url编码形式, 经过url解码后的键值是GB2312编码的字符串。
例如:返回容“result=0&description=%B7%A2%CB%CD%B3%C9%B9%A6&faillist=”表示的实际容为“result=0&description=发送成功&faillist=”2.1.2发送短信功能描述:短信发送调用格式:对 guangdong.ums86.:8899/sms/Api/Send.do进行post返回格式: result=&description=错误描述&faillist=失败列表post参数说明:实际返回容为“result=0&description=发送成功”2.1.3回执接口功能描述:短信回执调用方式:ftp返回格式:文本文件ftp服务信息:返回文本文件格式:文件名:arrive_000139_25288_00f_6一行容:SPID=197258 MESSAGEID=910320f1 ID=2432901361 CALLMDN=2501 MDN= RESULT=0 DESC=DELIVRD ARRIVE_TIME=402Java解析这行的方法// 解析一行记录public static Properties parse(String line) {String parsePattern="([^=\t]+)=([^\t]*)";Matcher m = pile(parsePattern).matcher(line);Properties result = new Properties();while (m.find()) {String key = m.group(1).trim();String value = m.group(2).trim();result.put(key.toUpperCase(), value);}return result;}如果要获取取接受短信的则使用:String mdn= (String)result.get("MDN");即可其他字段类似方式2.1.4剩余短信条数查询功能描述:剩余短信条数查询接口调用格式:对guangdong.ums86.:8899/sms/Api/SearchNumber.do进行post返回格式: result=&description=错误描述&faillist=失败列表2.1.5回复容接口功能描述:将上行回复的容通过http协议进行post到企业方调用格式: url由企业方提供,然后对该url进行post,post的格式为xml,格式如下: <packet><reply><mdn></mdn><callmdn>111</callmdn><msg>回复容测试</msg><replytime>2012-01-01 00:00:00</replytime></reply></packet>返回格式:返回格式为xml,格式如下:<returncode>0</returncode>post参数说明:返回值:2.2Webservice接口2.2.1消息协议接口地址:guangdong.ums86.:8899/sms_hb/services/Sms?wsdl2.2.2发送短信功能描述:短信发送调用格式:利用webservice客户端进行http请求返回格式:SmsResponseSmsRequest请求参数说明:SmsResponse返回值:实际返回容为“result=0&description=发送成功”2.2.3回执接口功能描述:短信回执调用方式:利用webservice客户端进行http请求返回格式: ReportResponseReportRequest请求参数说明:ReportResponse返回值:实际返回容为“001,,0; 001,,0;001,,0;”2.2.4上行回复容查询接口功能描述:上行回复容查询调用方式:利用webservice客户端进行http请求返回格式: ReplyResponseReplyResponse返回值:2.2.5上行回复容确认接口功能描述:上行回复容查询调用方式:利用webservice客户端进行http请求返回格式: ReplyConfirmResponse ReplyConfirmRequestReplyConfirmResponse返回值:2.2.6容审核功能描述:短信发送调用格式:利用webservice客户端进行http请求返回格式:AuditingResponseAuditingRequest请求参数说明:AuditingResponse返回值:实际返回容为“result=0&description=短信容审核通过”。
WebService短信接口

提供Web Service、Http 两种接⼊入模式注册接⼜⼝口Reg输⼊入参数:CorpID-帐号Pwd-密码CorpName-企业名称LinkMan-联系⼈人Tel-联系电话Mobile-联系⼈人⼿手机Email-邮件Memo-其他备注输出参数:整数,0:注册成功;-1、帐号已经注册;-2、其他错误;-3、帐号密码不匹配public int Reg(string CorpID,string Pwd,string CorpName,string LinkMan,string Tel,string Mobile,string Email,string Memo){}h t t p://w w w.512688.c o m/w s/R e g.a s p x? CorpID=*&Pwd=*&CorpName=*&LinkMan=*&Tel=*&Mobile=*&Email=*&Memo=*更改密码UpdPwd输⼊入参数:CorpID-帐号Pwd-密码NewPwd-新密码输出参数:整数,0:密码修改成功;-1、帐号未注册;-2、其他错误;-3、密码错误public int UpdPwd(string CorpID,string Pwd,string NewPwd){}/ws/UpdPwd.aspx?CorpID=*&Pwd=*&NewPwd=*修改注册信息UpdReg输⼊入参数:CorpID-帐号Pwd-密码CorpName-企业名称LinkMan-联系⼈人Tel-联系电话Mobile-联系⼈人⼿手机Email-邮件Memo-其他备注输出参数:整数,0:修改成功;-1、帐号未注册;-2、其他错误;-3、密码错误public int UpdReg(string CorpID,string Pwd,string CorpName,string LinkMan,string Tel,string Mobile,string Email,string Memo){}h t t p://w w w.512688.c o m/w s/U p d R e g.a s p x? CorpID=*&Pwd=*&CorpName=*&LinkMan=*&Tel=*&Mobile=*&Email=*&Memo=*查询余额SelSum输⼊入参数:CorpID-帐号Pwd-密码输出参数:整数,>=0,剩余条数;-1、帐号未注册;-2、其他错误;-3、密码错误public int SelSum(string CorpID,string Pwd){}/ws/SelSum.aspx?CorpID=*&Pwd=*发送短信Send输⼊入参数:CorpID-帐号Pwd-密码Mobile-发送⼿手机号Content-发送内容Cell-⼦子号(可为空)SendTime-定时发送时间(固定14位长度字符串,⽐比如:20060912152435代表2006年9⽉月12⽇日15时24分35秒,可为空)输出参数:整数,0,发送成功;-1、帐号未注册;-2、其他错误;-3、密码错误;-4、⼿手机号格式不对;-5、余额不⾜足;-6、定时发送时间不是有效的时间格式;注意:禁⽌止10⼩小时以内向同⼀一⼿手机号发送相同短信;public int Send(string CorpID,string Pwd,string Mobile,string Content,string Cell,string SendTime){}h t t p://w w w.512688.c o m/w s/S e n d.a s p x? CorpID=*&Pwd=*&Mobile=*&Content=*&Cell=*&SendTime=*群发短信BatchSend输⼊入参数:CorpID-帐号Pwd-密码Mobile-发送⼿手机号(多个号码以逗号分隔,最多⽀支持600个号码)Content-发送内容Cell-⼦子号(可为空)SendTime-定时发送时间(固定14位长度字符串,⽐比如:20060912152435代表2006年9⽉月12⽇日15时24分35秒,可为空)输出参数:整数,0,发送成功进⼊入待发进程;1、直接发送成功;-1、帐号尚未注册;-2、其他错误;-3、帐号或者密码错误;-4、⼀一次提交信息不能超过600个⼿手机号码;-5、企业号帐户余额不⾜足,请先充值再提交短信息!;-6、定时发送时间不是有效的时间格式;-7、发送短信内容包含⿊黑字典关键字;-8、发送内容需在3到250个字之间;-9、发送号码为空注意:禁⽌止10⼩小时以内向同⼀一⼿手机号发送相同短信;PublicInt BatchSend(stringCorpID,stringPwd,stringMobile,stringContent,stringCell,stringSendTime) {}h t t p://w w w.512688.c o m/w s/B a t c h S e n d.a s p x? CorpID=*&Pwd=*&Mobile=*&Content=*&Cell=*&SendTime=*群发短信GetReportFail输⼊入参数:CorpID-帐号,Pwd-密码,cell-⾃自定义输出参数:字符串,如果⽆无返回报告返回'全部正确提交,⽆无错误返回报告';-1、帐号未注册;-2、其他错误;-3、密码错误返回格式:||⼿手机号#返回内容#提交时间#定时时间#⼦子号||⼿手机号#返回内容#提交时间#定时时间#⼦子号……public string GetReportFail(string CorpID,string Pwd, string cell){}/ws /GetReportFail.aspx?CorpID=*&Pwd=*&cell=*接收短信Get输⼊入参数:CorpID-帐号,Pwd-密码输出参数:字串,具体字串;-1、帐号未注册;-2、其他错误;-3、密码错误返回格式:||⼿手机号#上⾏行内容#发送时间#⼦子号||⼿手机号#上⾏行内容#发送时间#⼦子号…… public string Get(string CorpID,string Pwd){}/ws/Get.aspx?CorpID=*&Pwd=*帐号充值ChargeUp输⼊入参数:CorpID-帐号Pwd-密码CardNo-充值卡卡号CardPwd-充值卡密码输出参数:整数,0,充值成功;-1、帐号未注册;-2、其他错误;-3、密码错误;-7、充值失败(可能原因:充值卡号密码不匹配或者卡已经被使⽤用)public int ChargeUp(string CorpID,string Pwd,string CardNo,string CardPwd){}/ws/ChargeUp.aspx?CorpID=*&Pwd=*&CardNo=*&CardPwd=*注销UnReg输⼊入参数:CorpID-帐号Pwd-密码输出参数:整数,0,注销成功;-1、帐号未注册;-2、其他错误;-3、密码错误public int UnReg(string CorpID,string Pwd){}/ws /UnReg.aspx?CorpID=*&Pwd=*。
分享一个GSM短信猫接口程序

市面上的短信猫,大多是TC35i、Tc35的模块。
下面的程序主要是针对西门子的TC35系列的GSM模块。
GSM模块的通讯采用AT指令。
上位机(PC、单片机、ARM等)通过串口与GSM模块连接。
上图是TC35i模块,推荐深圳亿纬西门子短信猫设备,这个模块+232电平转换电路+SIM卡座+天线部分等。
基于GSM短信的应用很多,例如远程控制、数据采集等等。
GSM短信猫编程的难点在与“程序与GSM”通讯是异步的。
例如:AT+CSQ 查询信号指令,PC通过RS232串口发送后,GSM短信猫要等一小会才回答,而且还可能不回答。
这样一来就导致编程复杂了。
下面的程序采用了串口中断接收、定时器、线程的方式配合。
实现了接收短信,并把接收到的短信存在数据库中。
然后定期发送短信。
[csharp]view plaincopying System;ing System.Collections.Generic;ing System.Linq;ing System.Text;ing System.Threading;ing System.Windows.Forms;7.space SMS9.{10.public class GSMModem11. {12.13.private string protName;14.private int BaudRate;15.private System.Collections.ArrayList alRecevingSM;// 短信接收缓冲区16.private System.Collections.ArrayList alSendSM; // 短信【待】发送缓冲区17.18.private System.Collections.ArrayList alAuthorizationNumber; //授权号码,系统只会回复授权号码19.20.int WORK_STATE;//短信猫工作状态21.22.//错误的短信数,主要是未经授权的号码发来的短信23.private int ErrorSMCount = 0;24.public int _ErrorSMCount25. {26.get27. {28.return ErrorSMCount;29. }30. }31./// <summary>32./// 0=自检33./// 1=接收34./// 2=发送35./// </summary>36.public int _WORK_STATE37. {38.get39. {40.return WORK_STATE;41. }42. }43.44.45.//接收和发送定时器不能同时工作,切记46.47.//短信接收轮询定时器,定时发送 AT+CGMR={0}48. System.Windows.Forms.Timer revTimer = new System.Windows.Forms.Timer();49.50.//短信发送队列定时器,定时发送 AT+CMGS={0}51. System.Windows.Forms.Timer sendTimer = new System.Windows.Forms.Timer();52.53.//短信猫自检54. System.Windows.Forms.Timer selfCheckingTimer = new System.Windows.Forms.Timer();55.56.57.//短信猫连接设备端口58. System.IO.Ports.SerialPort Port = new System.IO.Ports.SerialPort();59.60.//短信猫串口接收缓冲61./*备注:该缓冲变量由串口DataReceived事件负责接收,具体的处理过程由62. * Timer 定时器内的代码具体执行63. */64.string temp_gsm_str_buf = "";65.66.//67.int CMGD_MAX_ID = 0;//短信卡最大SM容量,通常情况下设置为2568.69.int CMGD_ID = 1; //当前串口发送读取的短信ID号70.71.int GSM_RST_ACT = 0;72.int GSM_MAX_RST_ACT = 8;73.74.int CGMS_Count = 0; //短信发送数量75.76.public int _CGMS_Count77. {78.get79. {80.return CGMS_Count;81. }82. }83.public int _CMGD_MAX_ID84. {85.get86. {87.return CMGD_MAX_ID;88. }89. }90.91.public int _CMGD_ID92. {93.get94. {95.return CMGD_ID;96. }97. }98.99.public int _GSM_RST_ACT100. {101.get102. {103.return GSM_RST_ACT;104. }105. }106.107.public int _GSM_MAX_RST_ACT 108. {109.get110. {111.return GSM_MAX_RST_ACT; 112. }113. }114.115. #region 短信猫工作状态116.117.string INF_GSM_CSQ;118.string INF_GSM_CSCS;119.string INF_GSM_CSCA;120.string INF_GSM_CNMI;121.bool INF_GSM_State;122.123.public string _INF_GSM_CSQ 124. {125.get126. {127.return INF_GSM_CSQ; 128. }129. }130.131.public string _INF_GSM_CSCS 132. {133.get134. {135.return INF_GSM_CSCS; 136. }137. }138.139.public string _INF_GSM_CSCA 140. {141.get142. {143.return INF_GSM_CSCA; 144. }145. }146.147.public string _INF_GSM_CNMI148. {149.get150. {151.return INF_GSM_CNMI;152. }153. }154.155.public bool _INF_GSM_State156. {157.get158. {159.return INF_GSM_State;160. }161. }162. #endregion163.164.165.private int _CmgsSleepTime;166.public GSMModem(string protName,167.string BaudRate,168.int CMGD_MAX_ID,169. System.Collections.ArrayList RecevingSM,170. System.Collections.ArrayList SendSM,171.int revTimerInterval,172.int sendTimerInterval,173.int selfCheckingTimerInterval,174.int CmgsSleepTime,175. System.Collections.ArrayList alAuthorizationNumber176. )177. {178. _CmgsSleepTime = CmgsSleepTime;//AT+CMGS 指令发送后,稍微延迟一定时间,让短信猫做出反应179.180.this.alAuthorizationNumber = alAuthorizationNumber;//保存授权号码181.182.this.CMGD_MAX_ID = CMGD_MAX_ID;183.184.this.protName = protName;185.this.BaudRate = int.Parse(BaudRate);186.this.alRecevingSM = RecevingSM;187.this.alSendSM = SendSM;188.189.190. selfCheckingTimer.Enabled = false;191.192. revTimer.Interval = revTimerInterval;193. revTimer.Enabled = false;194.195. sendTimer.Interval = sendTimerInterval;196. sendTimer.Enabled = false;197.198. revTimer.Tick += revTimer_Tick; //挂接短信轮询定时器199. sendTimer.Tick += sendTimer_Tick;200.201. selfCheckingTimer.Interval = selfCheckingTimerInterval; 202. selfCheckingTimer.Tick += selfCheckingTimer_Tick; 203.204. Port.DataReceived += Port_DataReceived;205. }206.207.public bool Start()208. {209.try210. {211. Port.PortName = protName;212. Port.BaudRate = BaudRate;213. Port.Open();//打开串口214.//短信猫先自检,自检成功了,才能进行接收或发送215. selfCheckingTimer.Enabled = true;216.217. }218.catch (Exception ex)219. {220. MessageBox.Show(ex.Message);221.return false;222. }223.return false;224. }225.226.public bool Stop()227. {228.229. sendTimer.Enabled = false;230. revTimer.Enabled = false;231. selfCheckingTimer.Enabled = false;232. Port.Close();233. CMGD_ID = 1;234. alRecevingSM.Clear();235. alSendSM.Clear();236. ErrorSMCount = 0;237.return true;238. }239.240.void Port_DataReceived(object sender, System.IO.Ports.SerialDataRec eivedEventArgs e)241. {242. System.IO.Ports.SerialPort serialPort = Port;243.244.int len = serialPort.BytesToRead;245.byte[] bs = new byte[len];246. serialPort.Read(bs, 0, len);247.if (len == 0)248. {249.return;250. }251.else252. {253.//接收处理254.string r = Encoding.ASCII.GetString(bs, 0, len);255. temp_gsm_str_buf += r;256.//接收数据处理257.//txtGsmRevLog.Invoke(new EventHandler(DoUpdate), r); //线程处理258. Console.Write(r);259. }260. }261.262.263.private bool AuthorizationPhoneNumber(string phoneID)264. {265.for (int i = 0; i < alAuthorizationNumber.Count; i++)266. {267.string s = alAuthorizationNumber[i].ToString();268.if (phoneID.Equals(s))269.return true;270. }271.272.return false;273.274. }275.bool DoGsmDataReceived()276. {277.//短信猫发回数据处理278.string str = temp_gsm_str_buf;279.if (str.Trim().StartsWith("+CMGR"))280. {281.int P1 = str.IndexOf("0891");282.if (P1 != -1)283. {284. str = str.Substring(P1);285.int P2 = str.IndexOf("\r\n");286.if (P2 != -1)287. {288.string uPDU = str.Substring(0, P2);289.string decMsg = PDUDecoding.DecodingMsg(uPDU); 290.string[] content = decMsg.Split(',');291.string stime = content[1].ToString();292.string sphoneId = content[0].ToString().Replace("+8 6", "");293.string sgsmtxt = content[2].ToString();294.//object[] row = { stime, sphoneId, sgsmtxt }; 295.296.if (AuthorizationPhoneNumber(sphoneId))297. {298. SMDATA sm = new SMDATA();299. sm.sTime = stime;300. sm.sPoneID = sphoneId;301. sm.sContent = sgsmtxt;302. sm.pdu = uPDU;303. sm.sType = "Admin";304. alRecevingSM.Add(sm);305.306.307. }308.else309. {310.//未经授权的用户,10086短信,广告信息,垃圾短信,用户手机号码311.string[] gsmCmd = sgsmtxt.Trim().Split('+'); 312.313.string cmd = gsmCmd[0].ToString();314.if (cmd == "CX")315. {316.if (gsmCmd.Length == 1)317. {318.//仅限用户手机号码319.320. SMDATA sm = new SMDATA();321. sm.sTime = stime;322. sm.sPoneID = sphoneId;323. sm.sContent = "CX"; //让BI查询车辆信息324. sm.pdu = uPDU;325. sm.sType = "User";326. alRecevingSM.Add(sm);327. }328. }329.else330. {331. Console.WriteLine("Error:" + stime + " " + sphoneId + " " + sgsmtxt);332. ErrorSMCount++;333. }334. }335.336.return true;337. }338. }339. }340.else341. {342.343. }344.345.return false;346. }347.348.349.350.bool DoGsmDataSend()351. {352.//短信猫发回数据处理353.string str = temp_gsm_str_buf;354.if (str.Trim().IndexOf("+CMGS") > -1)355. {356. temp_gsm_str_buf = "";357. CGMS_Count++;358.359.return true;360. }361.else362. {363.//接收到错误信息,可能是短信发送失败364. }365. temp_gsm_str_buf = "";366.return false;367. }368.369.//短信发送指令发送定时器370.int SendID;371.int AT_CMGS_LEN;372.373.void sendTimer_Tick(object sender, EventArgs e)374. {375. WORK_STATE = 2;//设置短信猫工作模式为发送376.if (DoGsmDataSend())377. {378. alSendSM.RemoveAt(SendID);379. }380.381.//没有发送的短信了382.if (alSendSM.Count == 0)383. {384. CMGD_ID = 1;385. sendTimer.Enabled = false; //关闭发送386. revTimer.Enabled = true; //打开接收387. }388.else389. {390. SendID = 0;391.392. SMDATA sendSM = (SMDATA)alSendSM[SendID];393.string sPoneID = sendSM.sPoneID;394.string sContent = sendSM.sContent;395.396.string msg = sContent;397.string pdu = PDUDecoding.GetPDUMsg(sPoneID, msg);398. AT_CMGS_LEN = PDUDecoding.getLenght(msg);399. GsmWrite(string.Format("AT+CMGS={0}\r", AT_CMGS_LEN.ToStrin g()));400. Thread.Sleep(_CmgsSleepTime); //500延时,如果短信猫反应慢,设置为1000401. GsmWrite(pdu + "\r");402.403. }404.405. }406.407.//短信轮询指令发送定时器408.void revTimer_Tick(object sender, EventArgs e)409. {410.//定时器每中断1次,接收1条指令411.412. WORK_STATE = 1;//设置短信猫工作模式为接收413.414.if (DoGsmDataReceived())415. {416.int old_CMGD_ID = CMGD_ID - 1;417. GsmWrite("AT+CMGD=" + old_CMGD_ID.ToString() + "\r"); 418. Thread.Sleep(1000);419. }420.421.if (CMGD_ID > CMGD_MAX_ID)422. {423. revTimer.Enabled = false;//停止接收424. sendTimer.Enabled = true;//启动短信发送425. }426.else427. {428.429.//再读取下一条430. temp_gsm_str_buf = "";431.432. GsmWrite("AT+CMGR=" + CMGD_ID.ToString() + "\r"); 433.434. CMGD_ID++;435.436. }437. }438.439.440.441.442.443. #region 短信猫初始信息444.445.446.private void selfCheckingTimer_Tick(object sender, EventArgs e) 447. {448.//先处理串口接收的数据449.//Console.WriteLine(temp_gsm_str_buf);450.451. WORK_STATE = 0; //设置工作状态为自检452.453.string str = "";454.if (temp_gsm_str_buf.Length > 0)455. {456.457.int CSQ = temp_gsm_str_buf.IndexOf("+CSQ");458.459.if (CSQ > -1)460. {461. str = temp_gsm_str_buf.Substring(CSQ);462.string[] content = str.Trim().Split(':');463.if (content.Length > 1)464. {465. INF_GSM_CSQ = content[1].ToString().Replace("OK", "").Replace("\r\n", "").Replace("\"", "");466.467. GSM_RST_ACT++;468. }469. temp_gsm_str_buf = "";470. }471.472.int CSCS = temp_gsm_str_buf.IndexOf("+CSCS");473.if (CSCS > -1)474. {475. str = temp_gsm_str_buf.Substring(CSCS);476.string[] content = str.Trim().Split(':');477.if (content.Length > 1)478. {479. INF_GSM_CSCS = content[1].ToString().Replace("OK", "").Replace("\r\n", "").Replace("\"", "");480. GSM_RST_ACT++;481. }482. temp_gsm_str_buf = "";483. }484.485.int CSCA = temp_gsm_str_buf.IndexOf("+CSCA");486.if (CSCA > -1)487. {488. str = temp_gsm_str_buf.Substring(CSCA);489.string[] content = str.Trim().Split(':');490.if (content.Length > 1)491. {492. INF_GSM_CSCA = content[1].ToString().Replace("OK", "").Replace("\r\n", "").Replace("\"", "");493. GSM_RST_ACT++;494. }495. temp_gsm_str_buf = "";496. }497.498.499.int CNMI = temp_gsm_str_buf.IndexOf("+CNMI");500.if (CNMI > -1)501. {502. str = temp_gsm_str_buf.Substring(CNMI);503.string[] content = str.Trim().Split(':');504.if (content.Length > 1)505. {506. INF_GSM_CNMI = content[1].ToString().Replace("OK", "").Replace("\r\n", "");507. GSM_RST_ACT++;508. }509. temp_gsm_str_buf = "";510. }511.512. }513.//514.switch (GSM_RST_ACT)515. {516.case 0: { GsmWrite("ATE0\r"); GSM_RST_ACT++; break; } 517.case 1: { GsmWrite("AT+CSQ\r"); break; }518.case 2: { GsmWrite("AT+CMGF=1\r"); GSM_RST_ACT++; break; } 519.case 3: { GsmWrite("AT+CSCS?\r"); break; }520.case 4: { GsmWrite("AT+CSCA?\r"); break; }521.case 5: { GsmWrite("AT+CMGF=0\r"); GSM_RST_ACT++; break; } 522.523.//AT+CNMI=0,0,0,0524.//case 6: { GsmWrite("AT+CNMI=3,1,0,0\r"); GSM_ACT++; break ; }525.case 6: { GsmWrite("AT+CNMI=0,0,0,0\r"); GSM_RST_ACT++; bre ak; }526.527.case 7: { GsmWrite("AT+CNMI?\r"); break; } 528.case 8:529. {530. INF_GSM_State = true;531. selfCheckingTimer.Enabled = false; 532.533. revTimer.Enabled = true;//启动接收534.535.//btnSendTestSM.Enabled = true; 536.//checkBox1.Enabled = true;537.538.//btnSendTestSM.Enabled = true; 539.//timer_gsm_REST.Enabled = false; 540.break;541. }542.543.default:544. {545. selfCheckingTimer.Enabled = false; 546.547.548.549.//timer_gsm_REST.Enabled = false; 550. INF_GSM_State = false;551. MessageBox.Show("短信猫自检失败!"); 552.553.554.break;555. }556. }557. }558.559. #endregion560.561.private void GsmWrite(string str)562. {563. Port.Write(str);564. Console.Write(str);565. }566.567.568.public int GetSMCount()569. {570.return alRecevingSM.Count;571. }572. }573.}在短信接收上,上面的代码实现了对垃圾号码、或着非授权号码进行了简单过滤。
优秀的短信验证码模板 -回复

优秀的短信验证码模板-回复1. 【网站/APP名】验证码:【验证码】,您正在进行操作,请勿将验证码泄露给他人。
2. 【网站/APP名】验证码:【验证码】,用于身份验证,请在5分钟内完成操作。
3. 尊敬的用户,您的验证码为【验证码】,请妥善保管,切勿泄露给他人。
4. 【网站/APP名】验证码:【验证码】,您正在进行重要操作,请勿泄露给任何人。
5. 亲爱的用户,您的验证码是【验证码】,请在页面中输入完成操作。
6. 【网站/APP名】验证码:【验证码】,用于验证您的身份,请勿转发他人。
7. 【网站/APP名】验证码:【验证码】,请您尽快输入以完成操作,切勿泄露给他人。
8. 尊敬的用户,您的验证码是【验证码】,请在页面中输入以完成验证。
9. 【网站/APP名】验证码:【验证码】,如非本人操作,请忽略该验证码。
10. 亲爱的用户,您的验证码是【验证码】,请勿将验证码透露给他人。
11. 【网站/APP名】验证码:【验证码】,请勿将验证码提供给他人,以防个人信息泄露。
12. 亲爱的用户,您正在进行重要操作,请使用验证码【验证码】确认您的身份。
13. 【网站/APP名】验证码:【验证码】,请妥善保管,谢谢。
14. 尊敬的用户,您的验证码是【验证码】,请在5分钟内输入验证完成操作。
15. 【网站/APP名】验证码:【验证码】,请在页面中输入以确认您的身份。
16. 亲爱的用户,您的验证码是【验证码】,请勿将验证码泄露给他人。
17. 【网站/APP名】验证码:【验证码】,仅用于您的身份验证,请勿转发给他人。
18. 【网站/APP名】验证码:【验证码】,请勿将验证码告知他人,以防泄露个人信息。
19. 尊敬的用户,您的验证码是【验证码】,请在页面中输入以完成操作验证。
20. 亲爱的用户,您的验证码是【验证码】,请在5分钟内使用以验证身份。
短信服务平台接口申请表

年 月 日
单 位 名 称
申请人
姓 名
联系电话
工作证号
系统名称
服务器IP地址
信息安全责任承诺
1、对短信服务平台接口的用户名和密码保密,不得将其透露给任何第三方机构或个人;
2 、严格遵守《互联网信息服务管理办法》,对使用短信服务平台接口发送的短信内容进行把关,不利用短信服务平台接口制作、复制、发布、传播含有下列内容的信息:
反对宪法所确定的基本原则的;
危害国家安全,泄露国家秘密,颠覆国家政权,破坏国家统一的;
损坏国家荣誉和利益的;
煽动民族仇恨、民族歧视,破坏民族团结的;
破坏国家民族宗教政策,宣扬邪教和封建迷信的;
散布谣言,扰乱社会秩序,破坏社会稳定罪的;
侮辱或者诽谤他人,侵害他人合法权益的;
含有法律、行政法规禁止的其他内容的。
3、保证不利用短信服务平台接口发送任何类型的商业广告信息。
申请人承诺在使用短信服务平台接口的过程中,服从监督和管理,并愿意承担因违反本承诺所引起的一切法律责任。
单位负责人(签字): 申请单位(盖章):
申请日期: 年 月 日
免费发短信的方法

免费发短信的方法
1. 使用手机运营商的免费短信服务,通常会有一定限制。
2. 下载手机应用程序,如WhatsApp、Messenger或WeChat等,可以发送免费短信。
3. 在电脑上使用免费短信网站,如Google Voice或Textem等。
4. 使用免费短信应用程序,如TextNow或TextPlus等。
5. 通过电子邮件发送短信,一些手机运营商允许发送特定格式的电子邮件作为短信。
6. 使用网页短信服务发送短信,如SendSMSNow或SendAText等。
7. 使用VoIP服务发送短信,如Skype或Google Voice等。
8. 利用社交媒体平台的短信功能发送免费短信,如Facebook Messenger、Instagram或Snapchat等。
9. 通过手机运营商的软短信服务,如彩信或视频短信等。
10. 加入手机提供的套餐计划,其中包括免费短信。
11. 参加手机应用程序的促销活动,有时可以获得免费短信额度。
12. 利用互联网电话服务发送短信,如Skype或Viber等。
13. 在免费Wi-Fi环境下使用短信应用程序发送短信,不需要使用手机网络。
7个免费发手机短信的网站

7个免费发手机短信的网站1.飞网传信(飞利浦公司免费手机短信)。
网址:(注册入口)优点:免费短信,移动及联通用户都可以注册、接收、互发。
速度快,即发即收,字数50个汉字。
网站稳定可长期使用。
初始注册限50条,如要增加短信必须在论坛发帖子赚取积分或参加本站活动换取短信,发几个帖子就行,非常容易。
2.麻烦网网址:除了收费的短信外,还有限制每条为35个字的“快乐短信”,这是免费的,只能移动用户使用。
但是需要手机注册。
3.雪宝宝短信在线网址:注册一个账号即可,不需要手机注册。
可以发给联通和移动(网上可以免费发给联通的网址实在不多)。
站长保证无论是发送方还是接受方都不会收费。
好处:所有的短信发送网站上都有记录的,方便你查询和发给其他人。
短信可以长达128个汉字。
在实际测试中,发现发给联通的有时候会出现接收方收不到短信的情况。
据网站说明可能会开展积分制度,积分高的用户可以保证发送成功率为100%。
这个网站除了免费短信外,还有免费留言簿、免费计数器、免费的网络电子相册?登录后还可以查询邮编、区号和手机号所在地。
4.zmcc网址:浙江移动的官方网站。
需要浙江移动的手机才能注册。
发送范围有限,据测试,至少浙江附近的移动手机是能收到的。
目前是免费的,但今后可能要收费,不过收费也是0.1元一条。
好处:上面还有通讯录之类的,便于你把常用的手机号码存在上面。
而且是官方的网站,注册了手机号也应该不会乱来。
不像有些网站知道了你的手机号马上给你一个包月。
5.生命颜色社区网址:不需要注册手机号码,只需要注册论坛账号就可以给所有移动手机发送。
注意不登录是看不到免费发送手机短信栏目的。
可以自定义短信署名。
限制短信长度为160个字符。
实际测试中,有时候会发出去了,但对方会收不到。
目前确实免费。
注意不要点击“发送给联通请按这里”这个链接,到网易界面上去了,那可是收费的……6.浙大无线工作坊网址:他们的目的是配合中国移动精品网络,推广移动梦网。
畅卓chanzor短信接口说明

客户接口说明客户接口说明 1第一章发送接口 21.1 请求地址 21.2参数说明 21.3返回值 2第二章余额及已发送量查询接口 32.1 请求地址 32.2参数说明 32.3返回值 3第三章非法关键词查询 43.1 请求地址 43.2参数说明 43.3返回值 4第四章状态报告接口 54.1 请求地址 54.2参数说明 54.3返回值 54.4错误返回值——状态报告请求错误返回格式及对应值 6第五章上行接口 65.1 请求地址 65.2参数说明 65.3返回值 75.4错误返回值——回复请求错误返回格式及对应值 7接口说明:客户接口部分提供http url方式的接口,根据客户需求可以提供相应接口,接口编码方式采用统一的UTF-8接口地址 :8001第一章发送接口1.1 请求地址请求地址是客户接口程序调用时请求的url地址,采用的是http post 接口,地址是:8001/sms.aspx 对应UTF-8:8001/smsGBK.aspx 对应GB2312入口地址一般不会发生变化,当发生变化的时候,会通知接口用户1.2参数说明:8001/sms.aspx:8001/smsGBK.aspx例如::8001/sms.aspx?action=send&account=账号&password=密码&mobile=手机号&content=内容&sendTime=1.3返回值在接收到客户端发送的http请求后,返回以xml的方式返回处理结果。
格式为:<?xml version="1.0" encoding="utf-8" ?><returnsms><returnstatus>status</returnstatus> ---------- 返回状态值:成功返回Success 失败返回:Faild<message>message</message> ---------- 返回信息:见下表<remainpoint> remainpoint</remainpoint> ---------- 返回余额<taskID>taskID</taskID> ----------- 返回本次任务的序列ID<successCounts>successCounts</successCounts> --成功短信数:当成功后返回提交成功短信数</returnsms>第二章余额及已发送量查询接口2.1 请求地址请求地址是客户接口程序调用的时候请求的url地址,采用的是http post 接口,地址是:8001/sms.aspx:8001/smsGBK.aspx入口地址一般不会发生变化,当发生变化的时候,会通知接口用户2.2参数说明例如:action=overage&userid=&account=账号&password=密码2.3返回值<?xml version="1.0" encoding="utf-8" ?><returnsms><returnstatus>status</returnstatus>-------返回状态值:成功返回Success 失败返回:Faild<message>message</message>--------------返回信息提示:见下表<payinfo>payinfo</payinfo>--------------返回支付方式后付费,预付费<overage>overage</overage>-------------返回余额<sendTotal>sendTotal</sendTotal>----返回总点数当支付方式为预付费是返回总充值点数</returnsms>第三章非法关键词查询3.1 请求地址请求地址是客户接口程序调用的时候请求的url地址,采用的是http post 接口,地址是:8001/sms.aspx:8001/smsGBK.aspx入口地址一般不会发生变化,当发生变化的时候,会通知接口用户3.2参数说明例如:action=checkkeyword&userid=&account=账号&password=密码&content=内容3.3返回值<?xml version="1.0" encoding="utf-8" ?><returnsms><message>message</message>--------------返回信息提示:见下表</returnsms>第四章状态报告接口4.1 请求地址请求地址是客户接口程序调用的时候请求的url地址,采用的是http post 接口,地址是:8001/statusApi.aspx入口地址一般不会发生变化,当发生变化的时候,会通知接口用户4.2参数说明例如:action=query&userid=&account=账号&password=密码4.3返回值<?xml version="1.0" encoding="utf-8" ?><returnsms><statusbox><mobile>134********</mobile>-------------对应的手机号码<taskid>1212</taskid>-------------同一批任务ID<status>10</status>---------状态报告----10:发送成功,20:发送失败<receivetime>2011-12-02 22:12:11</receivetime>-------------接收时间<errorcode>DELIVRD</errorcode>-上级网关返回值,不同网关返回值不同,仅作为参考</statusbox>。
java使用虚拟号接收短信的方法

java使用虚拟号接收短信的方法Java使用虚拟号接收短信的方法介绍在一些场景中,我们可能需要使用虚拟号码来接收短信,例如防止恶意注册、验证码验证等。
本文将介绍几种在Java中使用虚拟号码接收短信的方法。
方法一:第三方接口使用第三方接口是一种简单快捷的方法,不需要自己搭建接口服务。
以下是使用第三方接口的具体步骤:1.获取接口的API文档和参数说明;2.注册并获取access_token;3.调用发送短信的API,传入相应参数;4.解析API返回的结果,获取短信内容。
注意:使用第三方接口需要注意接口的稳定性和安全性。
方法二:使用短信网关接收短信通过使用短信网关接收短信,我们可以自己搭建接口服务,控制更加灵活。
以下是使用短信网关接收短信的具体步骤:1.搭建短信接口服务,可以使用Spring Boot等框架;2.调用短信网关的API,传入手机号码和短信内容;3.短信网关将收到的短信内容回调到你的接口服务;4.在接口服务中解析回调的短信内容,获取验证码或其他信息。
注意:使用短信网关接收短信需要自己搭建接口服务,并具备一定的开发能力和服务器资源。
方法三:使用模拟短信接口使用模拟短信接口是一种简单的方法,可以用于开发和测试阶段,但不适合在正式环境中使用。
以下是使用模拟短信接口的具体步骤:1.使用Java的Mock框架或编写模拟接口类;2.模拟短信接口类中保存短信内容和对应的手机号码;3.在代码中通过调用模拟接口类的方法来获取短信内容。
注意:使用模拟短信接口只能用于开发和测试,无法接收真实的短信。
总结本文介绍了三种Java使用虚拟号接收短信的方法:第三方接口、使用短信网关接收短信和使用模拟短信接口。
不同的方法适用于不同的场景,请根据实际需求选择合适的方法来实现。
无论选择哪种方法,都需要注意接口的稳定性和安全性,以确保短信的正常接收和使用。
方法一:第三方接口使用第三方接口是一种简单快捷的方法,不需要自己搭建接口服务。
移动代理服务器MAS(WebService)

IP地址为MAS服务器IP,API编码、用户名、密码为新增API接口中的接口编码、
登录用户和登录密码。数据库名称默认为mas,连接信息要与实现环境一致,否则
不能正常初始化。
在以上参数都填写完整后,那么请点击”init”按钮,出现初化成功后就可以正常
收发短信了。
webservice API接口初始化失败有哪些原因?
同的内容,只有循环调用sendsm方法来实现。
webservice API如何收发PDU短信?
首先:在MAS中新加了一个配置参数,具体如下:
usr/local/mas/WEB-INF/umaconfig.xml文件中增加PDU编码方式配置
参数<msgFmt_pdu></msgFmt_pdu>,此参数为字符串,每一种编码方
-5 数据库查询失败;
-6 参数错误;
-7 API编码非法;
-8 参数过长;
-9 没有初始化或初始化失败;
-10 API接接口处于暂停状态;
-11 短信网关未连接;
通过webservice API接口发送的短信在MAS的数据库中是否有发送记录?
在MAS数据库中不会保留通过API接口发送的记录 ,只保留了成功发送的短信。
编码; 15:含GB汉字)
客户在使用MAS1.2且客户需要使MAS跟他自己的PHP或jsp的网站相结合该建议 客户使用哪种语言的API接口?
请建议客户使用WEB SERVICE 接口
MAS1.2的WEB SERVICE如何部署服务端?
先将WEB SERVICE API包的bin目录下axis文件夹拷贝到MAS机器 tomcat
短信开发包接口文档

短信开发包接口文档版 本 号:V 2.0杭州爱赛德软件技术有限公司2001-6-8目录1.开发包说明 (3)2.接口函数一览表: (4)3.动态库接口函数说明 (5)3.1模块控制函数 (5)3.1.1打开模块(OpenComm) (5)3.1.2关闭模块(CloseComm) (5)3.1.3强制关闭模块(ForceCloseComm) (6)3.1.4读取模块序列号(GetSerialNo) (7)3.2短信息处理函数 (7)3.2.1发送短信息(SendMsg) (7)3.2.2接收短信(GetNewMsg) (8)3.2.3取得发送队列中短信息数目(GetUnSendCount) (9)3.2.4取得下一条发送的短信息(GetNextSendMsg) (9)3.2.5获取发送失败短信(GetFailedMsg) (10)3.3短信中心设置函数 (11)3.3.1取得短信中心号码(GetSCA) (11)3.3.2设置短信中心号码(SetSCA) (12)4.在D ELPHI中使用 (13)4.1各接口函数说明 (13)4.2函数申明 (13)4.3示例程序 (13)5.在VC中使用 (14)5.1各接口函数说明 (14)5.2在头文件里做函数申明: (14)5.3调用函数 (14)6.在VB中使用 (15)6.1各接口函数说明 (15)6.2函数申明 (15)6.3示例程序 (15)7.在C++B UILDER中使用 (16)7.1各接口函数说明 (16)7.2在头文件里做函数申明: (16)7.3调用函数 (16)1.开发包说明文件及目录列表:文件名称说明GSM MODEM操作手册.pdf 如何正确使用GSM MODEMDll/AscendComm.dll 通讯处理动态连接库Dll/AscendSMS.dll 短信处理动态连接库Dll/AscendSMS.lib LIB库文件(VC中使用)Dll/短信开发包接口文档.pdf 接口说明文档Example目录例子程序源代码目录,包括VC ,VB,Delphi,C++Builder,PB,Lotus Notes等Tools目录包括串口测试工具和模块测试工具2.接口函数一览表:3.动态库接口函数说明3.1模块控制函数3.1.1打开模块(OpenComm)打开模块,以便进行短信息的收发操作。
8个在线接收手机短信验证码的免费网络服务整理

8个在线接收⼿机短信验证码的免费⽹络服务整理⼀直以来Email和⼿机号码都是在线服务⽤来验证使⽤者⾝份的主要⽅式,现在还加⼊直接以第三⽅帐号例如微信、微博、Google等注册登⼊,这些过程不外乎是减少被短时间内⼤量注册或滥⽤的可能性,但某些时候我们并不希望被知道真实⾝份,就可以使⽤⼀些⽅法绕过验证,例如注册时通过⽤后即丢的暂时邮箱收验证信,⼿机⽅⾯也有临时⼿机号码可以使⽤,就能够在不被得知真实数据的情况下完成注册或通过⾝份认证等程序。
⼿机号码牵涉的层⾯较多、较复杂,相较于暂时邮箱来说这类服务就更少⼀些,⽽且多半是所有⼈共享号码,当然也会看到其他⼈的短信内容。
但如果是要⽤于注册帐户通过验证,或者想收⼀则短信⼜不希望告诉对⽅真实号码,本⽂要介绍的7个在线收⼿机短信验证码的免费服务或可研究⼀下,这些⼯具虽然功能和界⾯很简单阳春却很实⽤。
另⼀⽅⾯,当你临时需要某个国家的⼿机门号,也能从这⾥碰碰运⽓,不过并不保证永久固定或有效,如果你想要⼀个能长时间使⽤的国外⼿机号码,也能参考「Ring4在⼿机上产⽣美国等各国⼿机号码,可拨打电话及收发短信」注册⼀个,价格随着不同国家⽽有所差异。
但也提醒使⽤者,⽆论是暂时邮箱或暂时⼿机号码等匿名⼯具都有⾮常完整的使⽤记录,因此请别抱持侥幸⼼态将它做为诈欺或⾮法⽤途。
以下要介绍的服务皆从⽹络整理,不保证可以持续稳定提供服务,如果⽆法使⽤,请换其他同性质服务再试⼀次。
1. Receive SMS Online如果你想保护个⼈隐私,不希望对⽅获取你的真实⼿机号码,Receive SMS Online就是⼀个很实⽤的⼯具,每次在⾸页会有六个美国⼿机号码,点击后就能开启短信收件匣,缺点是所有的短信都会公开于⾸页也⽆法删除隐藏,不过可以正常显⽰中⽂内容。
2. Receive FREE SMS OnlineReceive FREE SMS Online提供24组来⾃世界各地的抛弃式、随⽤即丢的⼿机号码,涵盖地区包括美国、英国、德国、巴西、俄国、法国、澳⼤利亚、加拿⼤、瑞⼠、印度尼西亚、以⾊列、西班⽛和⾹港,⽆需注册,也提供付费租⽤各国门号,最低可租⽤⼀个⽉。
避免短信接口被黑客盗刷攻击的方法

避免短信接口被黑客盗刷攻击的方法随着短信应用越来越普及,短信接口被黑客盗刷攻击的情况也屡有
发生。
为了保护用户的安全、防止账号被盗刷,需要采取相应措施来
保障短信接口的安全性。
以下是一些有效的方法:
1.采用高强度密码
短信接口的密码必须是高强度的,密码长度应该至少为8位,包含大
写字母、小写字母、数字和特殊字符,尽可能复杂。
此外,密码应该
经常更换,至少每三个月更换一次。
2.加强管理
所有操作人员应该经过必要的培训,加强对账号管理的监控。
为了避
免泄漏,不要随便将密码告诉其他人。
3.控制访问权限
为不同的人员设置不同的访问权限,限制其对短信接口的使用。
同时
要定期检查账号的使用情况,如果发现异常情况及时处理。
4.使用身份认证技术
可以把短信接口与身份证件一起使用,在发送短信之前进行身份认证,这样可以有效地避免黑客盗刷攻击。
5.使用SSL加密技术
SSL加密技术可以确保短信信息的安全传输,可以有效地防止黑客对
短信接口进行攻击。
总之,短信接口的安全防护工作需要全方位、多角度考虑,只有采用多种措施建立起完善的安全机制,才能够有效地避免黑客盗刷攻击的风险。
android实现免费短信验证

android实现免费短信验证前⾔获取短信验证码的的第三⽅很多,今天介绍⼀个获取短信验证码的demo,它有以下优势1. 短信到达率⼏乎100%2. 代码经过我封装,集成简单3. 获取短信验证码免费下⾯对此demo的讲解涉及以下内容:1. 短信平台使⽤简介2. 短信验证集成配置3. 短信验证代码封装4. 倒计时类简单讲解5. 短信验证在代码中的使⽤6. 项⽬结构与效果图实现过程⼀.短信平台使⽤简介短信平台地址及此平台发送短信验证的特点在demo中的MobSDKHelper类的最上⾯有详细解释,这⾥就不再赘述了。
⼆.短信验证集成配置2.1 在你的project的build.gradle中添加配置buildscript {repositories {google()jcenter()//添加MobSDK的maven地址maven {url "/android"}}dependencies {classpath 'com.android.tools.build:gradle:3.0.0'// 注册MobSDKclasspath 'com.mob.sdk:MobSDK:+'}}2.2 在你的app moduel的build.gradle中添加配置// 添加插件apply plugin: 'com.mob.sdk'// 在MobSDK的扩展中注册SMSSDK的相关信息MobSDK {appKey "244e915baae1a"appSecret "b5eb7df4657dbde9b36b673cef463a3e"SMSSDK {// gui false}}短信验证的获取有两种⽅式,分为有界⾯集成和⽆界⾯集成,上⾯代码中的“gui false”即为禁⽤有界⾯集成的代码,也就是设置为false后,只能使⽤⽆界⾯集成⽅法进⾏获取验证码三.短信验证代码封装短信验证码的获取及验证,我封装到了MobSDKHelper类中,下⾯对MobSDKHelper中涉及要⽤到的⽅法做以解释请求获取短信验证码,你可以这样,其中phone为你的设置的⼿机号码,如"185********":MobSDKHelper.getInstance().sendCode("86", phone, new MobSDKHelper.SendListener() {@Overridepublic void success(String phone) {//请求验证码成功的处理逻辑//......}@Overridepublic void failed() {//请求验证码失败的处理逻辑//......}});⼿机收到验证码并填⼊editText中,点击注册来验证验证码是否正确,你可以这样,其中phone为电话号码,code为收到的验证码: MobSDKHelper.getInstance().submitCode("86", phone, code,new MobSDKHelper.SubmitListener() {@Overridepublic void success(String phone) {//验证成功,做注册逻辑//......}@Overridepublic void failed() {//验证失败,做失败处理逻辑//......}});注销短信验证服务,⼀般在activity的onDestroy()⽅法中进⾏,注销你可以类似这样处理:@Overrideprotected void onDestroy(){MobSDKHelper.getInstance().unRegistSMSS();super.onDestroy();}四.倒计时类简单讲解短信验证涉及到倒计时的问题,我封装了⼀个倒计时类CountDownTimerHelper,下⾯对其使⽤做讲解CountDownTimerHelper继承于CountDownTimer类,初始化的话,你可以这样://初始化mCountDownTimerHelper=new CountDownTimerHelper(context,button,millisInFuture,countDownInterval);//解释:context为上下⽂//button 为点击获取验证码的Button对象//millisInFuture 为总共需要倒计时的时间,单位为毫秒//countDownInterval 为倒计时时间间隔,单位毫秒开启倒计时,你可以如下处理:mCountDownTimerHelper.startTimer();取消倒计时,⼀般在activity的onDestroy()⽅法中进⾏,你可以类似如下处理@Overrideprotected void onDestroy(){if(mCountDownTimerHelper!=null){mCountDownTimerHelper.cancelTimer();}super.onDestroy();}五.短信验证在代码中的使⽤下⾯简单贴出在MainActivity中代码的使⽤范例:public class MainActivity extends BaseActivity{private EditText mEdtPhone;private EditText mEdtCode;private Button mBtnGet;private Button mBtnConfirm;private CountDownTimerHelper mCountDownTimerHelper;@Overrideprotected int getContentViewId() {return yout.activity_main;}@Overrideprotected void initView() {mEdtPhone=findViewById(R.id.edt_phone);mEdtCode=findViewById(R.id.edt_code);mBtnGet=findViewById(R.id.btn_get);mBtnConfirm=findViewById(R.id.btn_confirm);}@Overrideprotected void initData() {mCountDownTimerHelper=new CountDownTimerHelper(MainActivity.this,mBtnGet,60000,1000);}@Overrideprotected void setListener() {mBtnGet.setOnClickListener(this);mBtnConfirm.setOnClickListener(this);}@Overridepublic void onClick(View v) {String phone=mEdtPhone.getText().toString().trim();String code=mEdtCode.getText().toString().trim();switch (v.getId()) {case R.id.btn_get://发送mCountDownTimerHelper.startTimer();MobSDKHelper.getInstance().sendCode("86", phone, new MobSDKHelper.SendListener() {@Overridepublic void success(String phone) {//请求验证码成功的处理逻辑//......LogUtil.e(MainActivity.class,"===phone="+phone);}@Overridepublic void failed() {//请求验证码失败的处理逻辑//......LogUtil.e(MainActivity.class,"===发送失败了=====");}});break;case R.id.btn_confirm://提交MobSDKHelper.getInstance().submitCode("86", phone, code,new MobSDKHelper.SubmitListener() { @Overridepublic void success(String phone) {ToastUtil.showShortToast(MainActivity.this,"====验证成功===");LogUtil.e(MainActivity.class,"===验证成功====");//验证成功,做注册逻辑//......}@Overridepublic void failed() {ToastUtil.showShortToast(MainActivity.this,"====验证失败===");LogUtil.e(MainActivity.class,"===验证失败=====");}});break;default:break;}}@Overrideprotected void onDestroy(){MobSDKHelper.getInstance().unRegistSMSS();if(mCountDownTimerHelper!=null){mCountDownTimerHelper.cancelTimer();}super.onDestroy();}六.项⽬结构与运⾏效果图项⽬结构图运⾏效果图android实现免费短信验证注:本⽂著作权归作者,由demo⼤师代发,拒绝转载,转载需要作者授权。
大汉三通短信云接口手册V1.5.12

大汉三通短信云接口手册目录1、引言 (5)1.1.目的 (5)1.2.名词解释 (5)2、系统结构 (5)3、快速开发代码实例 (6)3.1.Java开发 (6)3.1.1.短信http接口(Json格式) (6)4、短信接口 (6)4.1.http接口(json格式) (6)4.1.1.短信下发 (6)4.1.2.批量短信下发 (8)4.1.3.短信状态报告 (10)4.1.4.获取回复短信 (11)5、短信错误码 (13)5.1.提交响应错误码 (13)5.2.状态报告错误码 (14)6、常见问题汇总 (15)7、动态短信验证码安全防护方案 (17)8、技术支持 (18)保密本文件及其内容为上海大汉三通通信股份有限公司保密资料。
本文件及其内容永远属于上海大汉三通通信股份有限公司拥有财产,在无上海大汉三通通信股份有限公司采用书面形式表示同意外,本文件a.不可以用于其他非原指定用途;b.不可以向第三方披露;c.不可采用任何形式进行复制和传播,包括但不限于传真、纸张邮件和电子邮件。
文档修改历史1、引言1.1.目的该接口手册编写目的在于描述短信云CTC-OSS(以下简称CTC- OSS)具体的接口协议,供设计和开发人员在开发过程中参考,也使用户对该平台的短信上、下行流程有一个全面的了解。
1.2.名词解释2、系统结构企业用户从上图可以看出,企业用户通过Internet网络接入大汉短信云,大汉短信云再连接到各运营商,为手机用户提供短、彩信息服务。
企业用户与大汉短信云之间采用本文中定义的接口进行通信。
3、快速开发代码实例3.1.Java开发3.1.1.短信http接口(Json格式)✧目录路径:java\sms_http\json\✧开发请参照:java\sms_http\json\readme.txt4、短信接口4.1.http接口(json格式)注:终端客户的接入方式设置为http接入时才能使用此接口。
什么是短信猫?有何作用与类别

什么是短信猫:所谓短信猫,其实是一种用来收发短信的设备,他和我们用的手机一样,需要手机SIM卡的支持,在需要收发短信的时候,在短信猫里面插入一张我们平时用的手机卡,插上电源,通过(USB或者串口、网口)数据线和电脑相连,在电脑的应用管理软件中就可以实现短信收发的功能。
工作原理:短信猫收发短信的原理,资费和我们的平常所用的手机是一样的,但因为短信猫专注于短信收发应用,所以相对于手机,短信猫在短信收发的速度要更快,可靠性更高,实时发送等优点,在企业短信中应用广泛。
标准短信猫=短信猫硬件+短信猫二次开发包。
标准短信猫是短信猫硬件和软件的有机结合体。
GSM-SM Modem短信猫是由中国移动商务网开发的基于无线方式进行短信收发的通信网关设备。
使用该设备可以轻松地实现通过本地无线网络快速发送和接收手机短信的功能,从而达到使用户(企业系统)无需上网即能动态发送和接收短信。
标准短信猫=短信猫硬件+短信猫二次开发包,这种说法不准确,准确的说短信猫硬件就是一个纯粹的硬件,是一个非智能设备,该设备是通过计算机的串口进行通讯,通过AT指令进行控制。
短信二次开发包是为了让一些上层语言的开发人员,或者说对硬件低层的AT指令不熟悉的程序员,快速开发应用程序,将该短信猫集成到自己的系统中去的一种接口方式。
短信二次开发接口有好多种,比如说OCX方式的短信二次开发控件,还有DLL动态链接库的接口方式,还有封装成中间件或者封装成一个Server的形势的数据库接口方式。
短信模块,实现短信收发功能主要电子元件,是一种基于无线GSM技术的工业级的MODEM配件,是一种内嵌GSM无线通信模块,与外围电路及电路板结合,插入移动运营商的手机SIM卡,可以与移动运营商的短信中心建立无线连接,本地通过与PC的连接可以实现计算机控制应用系统实现自由的短信收发。
概况:工业级的GSM/GPRS 终端(俗称“短信猫”),wavecom GSM/GPRS MODEM具有高可靠性,每小时可发送短信800条左右,比用手机发送短信更稳定、快捷。
模板消息接口

模板消息接口篇一:微信模板消息微信模板消息,有何想象空间?运营商短信业务的最后一块自留地——企业短信市场或将受影响A-A+罗超2014-01-15 06:46 37 微信运营商OTT投稿头条微信模板消息,有何想象空间?作者注:本文乃作者的独立分析解读。
发表前未与腾讯方面沟通,也不代表腾讯的立场与观点。
特此声明。
某接近微信内部人士透露,“微信模板消息”即将推出,现已启动内测。
这恐怕是在微信5.2版发布前最重磅的微信动态了,这将严重影响运营商的企业短信市场——运营商短信业务的最后一块自留地。
微信“模板消息”对“企业短、彩信”的替换公众账号申请内测后,公众账号管理后台的“功能”列表将出现与“群发功能”和“高级功能”并列的“模板消息”菜单。
公众账号可在此进行消息模板的配置,提交微信官方审批通过后,便可进行消息的群发。
内测期间,模板消息免费。
模板消息并不是什么新事物,此前几大运营商已陆续推出,又陆续关闭。
通过模板短信,企业可以提交文字内容和参数,文字内容是静态的,参数则可以通过API接口动态设置。
这些模板可以是短信验证码、消费通知信息、生日关怀信息、天气预报预警消息。
通过审批流程,避免垃圾短信。
我们平时收到的106开头的短号码短信,都可以通过“模板短信”实现,只不过运营商将其以不同形式进行销售。
有的是直接向政企大客户提供超级接口,例如金融、气象、应急办;有的是通过硬件例如MAS服务器将群发权限和设备打包;还有的是通过软件例如“企信通”、“校讯通”、“XX通”进行销售;通过互联网接口方式的销售反而是近年来运营商转型中的尝试,这是最便捷、最具扩展性的方式,目前已宣告失败。
不久前,因为“垃圾短信”问题,工信部一纸禁令,大量的短信端口被清理。
中国电信天翼平台的模板短信一夜之间被关闭,成为炮灰。
现在“微信模板消息”出现,可以补位,但又远不止于此。
从微信“模板消息”当前设计看,公众账号可发消息给关注者。
这限制了它的使用场景。