我现在做的一个项目·要用 短信 提醒的方式来通知客户
(用短信的方式发送数据到对方的手机上)
可我有不会·有没有高手来指点一下· 比如用什么方法··软件··
最好有个实例·· 各位高手加QQ :303384685 谢谢
(用短信的方式发送数据到对方的手机上)
可我有不会·有没有高手来指点一下· 比如用什么方法··软件··
最好有个实例·· 各位高手加QQ :303384685 谢谢
下面有一个移动和联通接口发送的类using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Text;
using System.Net;
using System.IO;
using cn.sh.unicom.groupsms;/// <summary>
/// Mobmsg 的摘要说明
/// </summary>
public class Mobmsg
{ private string _MobNum;
private string _MobMsg; public Mobmsg()
{
//
// TODO: 在此处添加构造函数逻辑
//
} public Mobmsg(string MobNum, string MobMsg)
{
this._MobNum = MobNum;
this._MobMsg = MobMsg;
} public void SendMsg()
{
if (CheckType(this._MobNum))
ToMobile();
else
ToUnicom();
}
public void ToMobile()
{//移动的接口
Encoding encoding = Encoding.GetEncoding("gb2312");
string enterpriseid = "123456";//企业代码
string accountid = "123";
string pwd = "yourpwd";
string postData = "enterpriseid=" + enterpriseid + "&accountid=" + accountid + "&pswd=" + pwd + "&mobs=" + this._MobNum + "&msg=" + this._MobMsg;
string strUrl = "http://211.136.163.68:8000/httpserver";
byte[] data = encoding.GetBytes(postData);
// 准备请求...
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(strUrl);
myRequest.Method = "POST";
myRequest.ContentType = "application/x-www-form-urlencoded";
myRequest.ContentLength = data.Length;
Stream newStream = myRequest.GetRequestStream();
// 发送数据
newStream.Write(data, 0, data.Length);
newStream.Close();
} public void ToUnicom()
{//联通的接口
cn.sh.unicom.groupsms.Login myLogin = new cn.sh.unicom.groupsms.Login();
string MySessionID = ""; myLogin.username = "yourname"; //用户名123456789
myLogin.userType = "0";
myLogin.password = "yourpwd"; //密码
LoginMes mes1 = new LoginMes();
mes1.login = myLogin; SmWSImplService Binding = new SmWSImplService();
OpResult Value1 = new OpResult();
try
{
Value1 = Binding.memberLogin(mes1);
}
catch
{
;
} MySessionID = Value1.sessionId;//'得到sessionid
SendBatchSMS(Binding, MySessionID, this._MobMsg, "companycode");//companycode为企业代号1112345
Value1 = Binding.logout(mes1);
} public bool CheckType(string MobileNum)
{
string ForeStr = MobileNum.Substring(0, 3);
int ForeNum = Convert.ToInt32(ForeStr);
if (ForeNum <= 134)
return false;
else
return true; }
public void SendBatchSMS(SmWSImplService Binding, string SessionID, string SmsMsg, string AccountID)
{
BatchMsg MySendSM = new BatchMsg();
OpResult Value1 = new OpResult();
string[] SendAddrs = new string[1];
SendAddrs[0] = this._MobNum; //发送号码数组 手机号码
MySendSM.sessionId = SessionID;
MySendSM.msgContent = SmsMsg;
MySendSM.destAddrs = SendAddrs;
Value1 = Binding.SendBatchMessage(MySendSM);
MySendSM=null;
Value1 = null; }
}在调用联通的接口的时候还要添加一个 http://groupsms.unicom.sh.cn/websms/services/SmWSImpl?wsdl webservice然后我们可以在其它页面使用
Mobmsg msg = new Mobmsg("要发送信息的手机号码","要发送的内容");
msg.SendMsg();
这里也有实际的操作,可以看看
http://www.msuniversity.edu.cn/m_FegoArticle/Detail.aspx?articleid=244&category=digital.windowsMobile&username=whutclub&portalid=
一、向移动或联通申请短信网关,然后通过短信网关来发送短信,电脑不需要增加硬件,只需要使用相应的软件就可以了。
二、用短信猫插入普通的SIM卡,再通过串口连接电脑,然后再电脑上操作串口来发送短信。至于C#发送短信的代码网上很多,我只提供一个思路。最主要的组件的是.NET 2。0中的serialport类。首先用serialport类来打开短信猫所在COM口,然后根据各个GSM模块所支持的AT指令来发送短信。发送过程中需要注意的问题主要是中文短信转换成PDU码和PDU码转换成中文短信的问题。不过现在已经有高手写出了现成的类,来解决着两个问题。楼主如果需要可以联系我。
地址:http://221.130.185.108/smseting/wwwroot/api/get_send/
类型:GET 方式
参数: ?uid=ID&pwd=密码&mobile=手机号&msg=短信内容&dtime=时间(时间为空为立即发送,格式:2007-12-01 00:00:00)
返值:0发送成功!;2余额不足!;1用户名或密码错误!;3超过发送最大量100条;4此用户不允许发送!;5手机号或发送信息不能为空!;6含有敏感字,请修改后发送!;7超过70个字,请修改后发送!
GET 接口目前只支持100个号码,以分号“;”分隔。 地址:http://221.130.185.108/smseting/wwwroot/api/post_send/
类型:POST 方式
参数: ?uid=ID&pwd=密码&mobile=手机号&msg=短信内容&dtime=时间(时间为空为立即发送,格式:2007-12-01 00:00:00)
返值:0发送成功!;2余额不足!;1用户名或密码错误!;3超过发送最大量1000条;4此用户不允许发送!;5手机号或发送信息不能为空!;6含有敏感字,请修改后发送!;7超过70个字,请修改后发送!
POST 接口目前只支持1000个号码,以分号“;”分隔。 http://221.130.185.108/smseting/wwwroot/api/user_info/?uid=ID&pwd=密码
查询用户余额接口
其中ID和密码可以直接使用您在本系统中的帐号信息。在本系统中,您同样可以查看到调用接口发送的扣费明细,方便对接口的管理。
再有问题,留言或发站内信问我。