简介:可以WEB服务方式通过服务平台向中国移动、中国联通、中国电信和中国网通用户实时或定时发送短消息。
安装实施:请和当地电信、移动部门联系。
限制说明:
1、所发的用户必须在白名单中,具体白名单由运营商维护。
2、发短信的数量有配额,比如发送600条,如果要提高需要向运营商联系,当然是要钱的。
短信发送
Webservices 名称 :SMServiceS
Webservices 地址 :http://0.0.0.0/ESB/services/SMServiceS?wsdl
方法定义:int sendSMXML(String SMInfo);
方法描述:发送短信,相同配置的短息可批量发送,每次发送最多不超过 600 条。请严格按照示例提供的 xml
</SM_INFOS>
含在<![CDATA[短信内容]]>中
C#版(注CMPP库由运营商提供,这里不便提供)
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Services; using CMPP; namespace SMSend { /// <summary> /// Send 的摘要说明 /// </summary> [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [System.ComponentModel.ToolboxItem(false)] // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。 // [System.Web.Script.Services.ScriptService] public class Send : System.Web.Services.WebService { [WebMethod] public String SendMessage(string phonenumber, string content) { string[] phoneArr = null; string resvalue = ""; string url = "http://10.1.1.1/ESB/services/SMService?wsdl"; int returnvalue = -1; try { phoneArr = phonenumber.Split(','); foreach (string s in phoneArr) { resvalue += s + ","; } if (resvalue.LastIndexOf(",") > 0) { resvalue = resvalue.Substring(0, resvalue.Length - 1); } string xml = "<SM_INFO><API_INFO key='' apiKey='' secondKey='' effectTime='' specialId=''>"; xml += "<SEND_INFO subcode=''><MOBILES>" + resvalue + "</MOBILES><CONTENT><![CDATA[" + content + "]]></CONTENT></SEND_INFO></API_INFO></SM_INFO>"; LimitCMPP cmpp = new LimitCMPP(url); returnvalue= cmpp.sendSM(xml); } catch (Exception ex) { return ("短信发送出错:" + ex.Message); } return getresult(returnvalue); } String getresult(int value) { switch (value) { case 0: return "成功"; case -100: return "系统错误,操作失败"; case -101: return "认证失败,token 错误或此 token 未激活"; case -102: return "服务器集群配置有误,短信不能正常提交"; case -103: return "服务已关闭:"; case -201: return "参数格式错误"; case -202: return "访问 IP 不在绑定列表"; case -203: return "API 接口不存在"; case -204: return "xml 格式错误"; case -205: return "部分号码因错误不能正确提交"; case -301: return "涉及的接口已被关闭"; default: return "未知错误"; } } } }
try { Service service = new Service(); Call call = (Call) service.createCall(); //拼接参数 String si = "<SM_INFO><API_INFO key=\"" sysPort=\"no\" effectTime=\"\" specialId=\"\">" + "<SEND_INFO subcode=\"\" priority=\"5\"><MOBILES>电话号码</MOBILES><CONTENT><![CDATA[短信内容]]></CONTENT></SEND_INFO></API_INFO></SM_INFO>"; //设置调用方法 call.setOperationName("sendSM"); //设置调用地址 call.setTargetEndpointAddress(new java.net.URL("http://127.0.0.1/ESB/services/SMServiceS?wsdl")); //设置参数名和参数类型 call.addParameter(new QName("SMInfo"),org.apache.axis.encoding.XMLType.SOAP_STRING,javax.xml.rpc.ParameterMode.IN); //设置返回值类型 call.setReturnType(org.apache.axis.encoding.XMLType.SOAP_INT); //执行调用 int response = (Integer)call.invoke(new Object[] {si}); //打印返回值 System.out.println("-----" + response); } catch (Exception e) { e.printStackTrace(); } /* 使用axis1.4 所使用的包 activation.jar axis-ant.jar axis.jar commons-discovery-0.2.jar commons-logging-1.0.4.jar jaxrpc.jar log4j-1.2.8.jar mail.jar saaj.jar tools.jar wsdl4j-1.5.1.jar */ xmlsec.jar