⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 provision.aspx.cs

📁 本程序实现中国移动短信MISC平台的PROVISION接口.
💻 CS
字号:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Xml ;
using System.IO;
using System.Text ;
using Provision;
namespace Provision
{
	/// <summary>
	/// WebForm1 的摘要说明。
	/// </summary>
	public class Provision : System.Web.UI.Page
	{
		private void Page_Load(object sender, System.EventArgs e)
		{
			Response.ContentType="text/xml";
			CurrentPath = Server.MapPath("");

			//获取DSMP请求xml串
			String reqStr = GetRequestXml();
			WriteXmlPackage(reqStr);
			//根据DSMP请求串构造一个参数对象
			XmlParams xmlParam = new XmlParams (reqStr);
			//获取返回给DSMP的tranactionid
			String tranID = xmlParam.GetTransID();
			String FileName = Provision.CurrentPath + "\\logs\\"+ "aircom.txt";
			//XmlParams.WriteLog(FileName,"www" );
			//根据简G的处理结果向DSMP返回响应
			String tmpRst = xmlParam.Proceed();
			String respStr = GetResponse(tranID,tmpRst);
			//响应provision
			Response.Write(respStr);

            WriteXmlPackageResp(respStr);
			Response.Flush();
			//记录请求/响应日志
			xmlParam.SaveAsLog("misc");
			Response.End();
		}
		//读取DSMP请求包中的数据,并用utf-8解码
		private String  GetRequestXml()
		{
			String rst = null;
			try
			{
				Stream s = Request.InputStream ;
				StreamReader sr = new StreamReader(s,Encoding.UTF8 );
				rst =  sr.ReadToEnd().Trim();
			}
			catch{}
			return rst;
		}
		
		//响应DSMP
		/*
		 *	 这里的响应没有失败,只有成功,这样就可以确保这个用户的定制关系产生
		 * 因此这里的response从一个模板文件中读取,并且把DSMP的transactionid替换成
		 * dsmp请求包中的transactionid,这样就可以成功响应
		 */ 
		private String GetResponse(String tranID)
		{
			String respStr = null;
			StreamReader sr = null;
			try
			{
				String filePath = 	Server.MapPath("") +"\\xml\\SyncOrderRelationResp.xml";
				sr				=	File.OpenText(filePath);
				respStr			=	sr.ReadToEnd().Trim();
				respStr			=	respStr.Replace("#TRANSID#",tranID);
				
			}
			catch{}
			finally
			{
				sr.Close();
			}
			return respStr;
		}
		private String GetResponse(String tranID,String hRet)
		{
			String rst = GetResponse(tranID);
			if ( hRet.Equals("0") ) 
				return rst;
			if ( hRet.Equals("-1") )//-1表示该用户为黑名单里的用户,不能定购业务
				rst = rst.Replace("<hRet>0</hRet>","<hRet>-1</hRet>");
			//else	//1表示该用户在内部处理时出现异常.
			//	rst = rst.Replace("<hRet>0</hRet>","<hRet>1</hRet>");
			return rst;

		}
		private void WriteXmlPackage(String xml)
		{
			String FileName = Provision.CurrentPath + "\\logs\\"+ DateTime.Now.ToString("yy_MM_dd")+"_PROVISION.txt";
			XmlParams.WriteLog(FileName,xml);
		}
		//临时加上对返回包的记录
		private void WriteXmlPackageResp(String xml)
		{
			String FileName = Provision.CurrentPath + "\\logs\\"+ DateTime.Now.ToString("yy_MM_dd")+"_PROVISION_Resp.txt";
			XmlParams.WriteLog(FileName,xml);
		}
		public static String CurrentPath;
		
		#region Web 窗体设计器生成的代码
		override protected void OnInit(EventArgs e)
		{
			//
			// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
			//
			InitializeComponent();
			base.OnInit(e);
		}
		
		/// <summary>
		/// 设计器支持所需的方法 - 不要使用代码编辑器修改
		/// 此方法的内容。
		/// </summary>
		private void InitializeComponent()
		{    
			this.Load += new System.EventHandler(this.Page_Load);
		}
		#endregion
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -