移动MISC 订阅接口
以前公司做SP时候写的...过去的日子..
using System;
using System.Text;
using System.Xml;
using System.Web;
using System.IO;
namespace Library.Misc

{
/**//// <summary>
/// 移动短信MISC16 正向订购同步数据接口
/// </summary>
public class SyncOrderRelationReq
{

构造函数#region 构造函数
/**//// <summary>
/// 获取传递的参数对象
/// </summary>
public SyncOrderRelationReq()
{
GetSyncOrder(System.Web.HttpContext.Current.Request.InputStream);
}
#endregion

属性#region 属性
private string _msgType;
/**//// <summary>
/// 设置或获取 消息类型
/// </summary>
public string MsgType
{
get
{ return _msgType; }
set
{ _msgType = value; }
}
private string _transactionID;
/**//// <summary>
/// 设置或获取 消息编号
/// </summary>
public string TransactionID
{
get
{ return _transactionID; }
set
{ _transactionID = value; }
}
private string _version;
/**//// <summary>
/// 设置或获取 消息编号
/// </summary>
public string Version
{
get
{ return _version; }
set
{ _version = value; }
}
private string _send_Address;
/**//// <summary>
/// 设置或获取 发送方的地址
/// </summary>
public string Send_Address
{
get
{ return _send_Address; }
set
{ _send_Address = value; }
}
private string _dest_Address;
/**//// <summary>
/// 设置或获取 接收方的地址
/// </summary>
public string Dest_Address
{
get
{ return _dest_Address; }
set
{ _dest_Address = value; }
}
private string _feeUser_ID;
/**//// <summary>
/// 设置或获取 计费用户标识
/// </summary>
private string FeeUser_ID
{
get
{ return _feeUser_ID; }
set
{ _feeUser_ID = value; }
}
private string _destUser_ID;
/**//// <summary>
/// 设置或获取 使用用户标识
/// </summary>
private string DestUser_ID
{
get
{ return _destUser_ID; }
set
{ _destUser_ID = value; }
}
private string _linkID;
/**//// <summary>
/// 设置或获取 临时订购关系的事务ID
/// </summary>
public string LinkID
{
get
{ return _linkID; }
set
{ _linkID = value; }
}
private string _actionID;
/**//// <summary>
/// 设置或获取 服务状态
/// 1: 开通服务;
/// 2: 停止服务;
/// 3: 激活服务;
/// 4: 暂停服务;
/// </summary>
public string ActionID
{
get
{ return _actionID; }
set
{ _actionID = value; }
}
private string _actionReasonID;
/**//// <summary>
/// 设置或获取 服务状态管理动作代码,具
/// 体值如下:
/// 1:用户发起行为
/// 2:系统发起行为
/// 3: 扣费失败导致的服务取消
/// 4:其他
/// </summary>
public string ActionReasonID
{
get
{ return _actionReasonID; }
set
{ _actionReasonID = value; }
}
private string _spID;
/**//// <summary>
/// 设置或获取 SP 的企业代码
/// </summary>
public string SPID
{
get
{ return _spID; }
set
{ _spID = value; }
}
private string _spServiceID;
/**//// <summary>
/// 设置或获取 SP 的企业代码
/// </summary>
public string SPServiceID
{
get
{ return _spServiceID; }
set
{ _spServiceID = value; }
}
private string _accessMode;
/**//// <summary>
/// 设置或获取SInteger 服务的访问方式
/// 1:WEB
/// 2:WAP
/// 3:SMS
/// </summary>
public string AccessMode
{
get
{ return _accessMode; }
set
{ _accessMode = value; }
}
private string _featureStr;
/**//// <summary>
///设置或获取服务订购参数
/// </summary>
public string FeatureStr
{
get
{ return _featureStr; }
set
{ _featureStr = value; }
}
private string _feeUserMSISDN;
/**//// <summary>
/// 获取或设置扣费手机帐号
/// </summary>
public string FeeUserMSISDN
{
get
{ return _feeUserMSISDN; }
set
{ _feeUserMSISDN = value; }
}
private string _descUserMSISDN;
/**//// <summary>
/// 获取或设置接收手机帐号
/// </summary>
public string DescUserMSISDN
{
get
{ return _feeUserMSISDN; }
set
{ _feeUserMSISDN = value; }
}
private bool _createCompany = false;
/**//// <summary>
/// 设置或获取是否解析完成
/// </summary>
public bool CreateComplete
{
get
{ return _createCompany; }
set
{ _createCompany = value; }
}
private string _requestStreamStr = string.Empty;
/**//// <summary>
/// 获取请求流的内容
/// </summary>
public string GetRequestStreamStr
{
get
{return _requestStreamStr;}
}
#endregion

解析同步信息体#region 解析同步信息体
/**//// <summary>
/// 解析同步信息体
/// </summary>
/// <param name="requeststream"></param>
private void GetSyncOrder(Stream requeststream)
{
try
{
XmlDocument XMLdoc = new XmlDocument();
XMLdoc.Load(requeststream);
XmlNamespaceManager xnm = new XmlNamespaceManager(XMLdoc.NameTable);
xnm.AddNamespace("SOAP-ENV", "http://schemas.xmlsoap.org/soap/envelope/");
xnm.AddNamespace("nmBody", "http://www.monternet.com/dsmp/schemas/");
XmlNode nodeHeader = XMLdoc.SelectSingleNode("//SOAP-ENV:Header", xnm);
//TransactionID
this.TransactionID = nodeHeader.ChildNodes[0].InnerText;
//body对象
XmlNode nodeBody = XMLdoc.SelectSingleNode("//SOAP-ENV:Body", xnm).ChildNodes[0];
//计费用户节点
XmlNode feeuserNode = nodeBody.ChildNodes[4];
//发送用户节点
XmlNode destuserNode = nodeBody.ChildNodes[5];
this.AccessMode = SetNodeValue(nodeBody, "AccessMode");
this.ActionID = SetNodeValue(nodeBody, "ActionID");
this.LinkID = SetNodeValue(nodeBody, "LinkID");
this.ActionReasonID = SetNodeValue(nodeBody, "ActionReasonID");
this.Dest_Address = SetNodeValue(nodeBody, "Dest_Address");
this.DestUser_ID = SetNodeValue(nodeBody, "DestUser_ID");
this.FeatureStr = SetNodeValue(nodeBody, "FeatureStr");
this.FeeUser_ID = SetNodeValue(nodeBody, "FeeUser_ID");
this.MsgType = SetNodeValue(nodeBody, "MsgType");
this.SPID = SetNodeValue(nodeBody, "SPID");
this.SPServiceID = SetNodeValue(nodeBody, "SPServiceID");
this.Version = SetNodeValue(nodeBody, "Version");
this.FeeUserMSISDN = SetNodeValue(feeuserNode, "MSISDN");
this.DescUserMSISDN = SetNodeValue(destuserNode, "MSISDN");
this.CreateComplete = true;
this._requestStreamStr = XMLdoc.InnerXml;
}
catch (Exception ex)
{
this.CreateComplete = false;
}
}



/**//// <summary>
/// 获取需要填充的属性的值
/// </summary>
/// <param name="node">查询的节点对象</param>
/// <param name="nodexml">属性的名称</param>
string SetNodeValue(XmlNode node, string nodename)
{
string ndvalue = string.Empty;
foreach (XmlNode nd in node.ChildNodes)
{
if (nd.Name.ToLower().Equals(nodename.ToLower()))
{
ndvalue = nd.InnerText;
break;
}
if (nd.HasChildNodes)
SetNodeValue(node.ChildNodes[0], nodename);
}
return ndvalue;
}
#endregion

解析完毕后响应信息#region 解析完毕后响应信息
/**//// <summary>
/// 解析完毕后响应信息
/// </summary>
/// <param name="result">处理请求后的响应代码</param>
public void ReturnSyncOrder(string result)
{
StringBuilder sb = new StringBuilder();
sb.Append("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
sb.Append("<SOAP-ENV:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:SOAP-ENC=\"http://schemas.xmlsoap.org/soap/encoding/\">");
sb.Append("<SOAP-ENV:Header>");
sb.AppendFormat("<TransactionID xmlns=\"http://www.monternet.com/dsmp/schemas/\">{0}</TransactionID>", this.TransactionID);
sb.Append("</SOAP-ENV:Header>");
sb.Append("<SOAP-ENV:Body>");
sb.Append("<SyncOrderRelationResp xmlns=\"http://www.monternet.com/dsmp/schemas/\">");
sb.Append("<MsgType>SyncOrderRelationResp</MsgType>");
sb.Append("<Version>1.5.0</Version>");
sb.AppendFormat("<hRet>{0}</hRet>", result);
sb.Append("</SyncOrderRelationResp>");
sb.Append("</SOAP-ENV:Body>");
sb.Append("</SOAP-ENV:Envelope>");
Encoding encode = Encoding.GetEncoding("UTF-8");
byte[] btsend = encode.GetBytes(sb.ToString());
HttpResponse response = System.Web.HttpContext.Current.Response;
response.ClearHeaders();
response.ContentType="text/xml";
response.ContentEncoding = encode;
Stream writestream = response.OutputStream;
writestream.Write(btsend, 0, btsend.Length);
response.Flush();
response.End();
writestream.Close();
}
#endregion

}
}
浙公网安备 33010602011771号