?? default.aspx.cs
字號:
?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.IO;
using System.Xml;
using System.Text;
using System.Data.Sql;
using System.Data.SqlClient;
using System.Data.SqlTypes;
using System.Net;
using System.Net.Sockets;
using System.Threading;
/// <summary>
/// 移動夢網 MISC 1.6 接口
/// 正向同步接口
/// </summary>
public partial class _Default : System.Web.UI.Page
{
uint i = 0;//Sequence_Id header
ulong l = 0;//Msg_Id body
Uri SuburiReq = new Uri("http://211.138.155.249");
protected void Page_Load(object sender, EventArgs e)
{
Client client = new Client();
client.Connect("127.0.0.1", 7890, "901236", "1236", ++i);
//基本參數
/*Request.ContentType = "text/xml";
Request.ContentEncoding = System.Text.Encoding.UTF8;
XmlDocument doc = new XmlDocument();
ProvisionInfo myP = new ProvisionInfo();
//返回結果參數
string MsgType = "SyncOrderRelationResp";
string TransactionID = "";
string Version = "1.5.0";
int hRet = 1;
//const int port = 8000;
////定義端口號
//TcpListener tcplistener = new TcpListener(port);
//Console.WriteLine("偵聽端口號: " + port.ToString());
//tcplistener.Start();
////偵聽端口號
//ProxyHttp proxy;
//while (true)
//{
// Socket socket = tcplistener.AcceptSocket();
// //并獲取傳送和接收數據的Scoket實例
// proxy = new ProxyHttp(socket);
// //Proxy類實例化
// Thread thread = new Thread(new ThreadStart(proxy.Run));
// //創建線程
// thread.Start();
// //啟動線程
// proxy.Run();
//}
using (Stream sm = Request.InputStream)
{
if (sm != null && sm.Length > 0)
{
doc.Load(Request.InputStream);
}
sm.Close();
}
//如果有數據
if (doc.InnerXml.Length > 0)
{
try
{
#region
XmlElement root = doc.DocumentElement;
foreach (XmlNode node in root.ChildNodes[0])//遍歷SOAP-ENV:Header節點
{
if (node.Name == "TransactionID")
{
myP.TransactionID = node.InnerText;
}
}
foreach (XmlNode node in root.ChildNodes[1].ChildNodes[0])//遍歷SOAP-ENV:Body節點的子節點SyncOrderRelationReq
{
if (node.Name == "Version")
{
myP.Version = node.InnerText;
}
else if (node.Name == "MsgType")
{
myP.MsgType = node.InnerText;
}
else if (node.Name == "LinkID")
{
myP.LinkID = node.InnerText;
}
else if (node.Name == "ActionID" && node.InnerText.Trim().Length > 0)
{
myP.ActionID = int.Parse(node.InnerText);
}
else if (node.Name == "ActionReasonID" && node.InnerText.Trim().Length > 0)
{
myP.ActionReasonID = int.Parse(node.InnerText);
}
else if (node.Name == "SPID")
{
myP.SPID = node.InnerText;
}
else if (node.Name == "SPServiceID")
{
myP.SPServiceID = node.InnerText;
}
else if (node.Name == "AccessMode" && node.InnerText.Trim().Length > 0)
{
myP.AccessMode = int.Parse(node.InnerText);
}
else if (node.Name == "FeatureStr")
{
myP.FeatureStr = node.InnerText;
}
else if (node.Name == "Send_Address" && node.ChildNodes.Count > 0)//子遍歷Send_Address節點
{
foreach (XmlNode node1 in node)
{
if (node1.Name == "DeviceType" && node1.InnerText.Trim().Length > 0)
{
myP.Send_Address_DeviceType = int.Parse(node1.InnerText);
}
else if (node1.Name == "DeviceID")
{
myP.Send_Address_DeviceID = node1.InnerText;
}
}
}
else if (node.Name == "Dest_Address" && node.ChildNodes.Count > 0)//子遍歷Dest_Address節點
{
foreach (XmlNode node1 in node)
{
if (node1.Name == "DeviceType" && node1.InnerText.Trim().Length > 0)
{
myP.Dest_Address_DeviceType = int.Parse(node1.InnerText);
}
else if (node1.Name == "DeviceID")
{
myP.Dest_Address_DeviceID = node1.InnerText;
}
}
}
else if (node.Name == "FeeUser_ID" && node.ChildNodes.Count > 0)//子遍歷FeeUser_ID節點
{
foreach (XmlNode node1 in node)
{
if (node1.Name == "UserIDType" && node1.InnerText.Trim().Length > 0)
{
myP.FeeUser_ID_UserIDType = int.Parse(node1.InnerText);
}
else if (node1.Name == "MSISDN")
{
myP.FeeUser_ID_MSISDN = node1.InnerText;
}
else if (node1.Name == "PseudoCode")
{
myP.FeeUser_ID_PseudoCode = node1.InnerText;
}
}
}
else if (node.Name == "DestUser_ID" && node.ChildNodes.Count > 0)//子遍歷DestUser_ID節點
{
foreach (XmlNode node1 in node)
{
if (node1.Name == "UserIDType" && node1.InnerText.Trim().Length > 0)
{
myP.DestUser_ID_UserIDType = int.Parse(node1.InnerText);
}
else if (node1.Name == "MSISDN")
{
myP.DestUser_ID_MSISDN = node1.InnerText;
}
else if (node1.Name == "PseudoCode")
{
myP.DestUser_ID_PseudoCode = node1.InnerText;
}
}
}
}
#endregion
//1、Version 與 MsgType 判斷
if (myP.Version == "1.5.0" && myP.MsgType == "SyncOrderRelationReq")
{
//2、SPID 判斷
if (myP.SPID == System.Configuration.ConfigurationManager.AppSettings["SPID"].ToString().Trim())
{
//3、SPServiceID 判斷
//if (myP.SPServiceID.ToUpper() == System.Configuration.ConfigurationManager.AppSettings["SPServiceID"].ToString().Trim().ToUpper())
//{
#region 同步操作
//正向訂購:請求為開通或激活服務都視為開通請求
string sOrder = myP.FeatureStr.Substring(myP.FeatureStr.IndexOf(" "), myP.FeatureStr.Length);
sOrder.Trim(); sOrder.ToUpper();
int nRe = -1;
if (myP.ActionID == 1 || myP.ActionID == 3)
{
if (sOrder.IndexOf("-DHTA") >= 0)
{
nRe = this.DHTA_Db(myP.FeeUser_ID_MSISDN, "-DHTA");
}
else if (sOrder.IndexOf("-DHTB") >= 0)
{
nRe = this.DHTA_Db(myP.FeeUser_ID_MSISDN, "-DHTB");
}
else if (sOrder.IndexOf("-DHTD") >= 0)
{
nRe = this.DHTA_Db(myP.FeeUser_ID_MSISDN, "-DHTD");
}
else { hRet = 1; }
//
if (nRe == 0)
{
hRet = 0;
}
else
{
hRet = 1;
}
}
//正向取消:請求為停止或暫停都視為取消
if (myP.ActionID == 2 || myP.ActionID == 4)
{
if (sOrder.IndexOf("-QSA") >= 0)
{
if (this.CancelUID_CheckTime(myP.FeeUser_ID_MSISDN, 1) == 0)
{
nRe = this.CancelUID(myP.FeeUser_ID_MSISDN, 1);
hRet = nRe;
}
else
{
hRet = 4011;
}
}
if (sOrder.IndexOf("-QSB") >= 0)
{
if (this.CancelUID_CheckTime(myP.FeeUser_ID_MSISDN, 2) == 0)
{
nRe = this.CancelUID(myP.FeeUser_ID_MSISDN, 2);
hRet = nRe;
}
else
{
hRet = 4011;
}
}
if (sOrder.IndexOf("-QSD") >= 0)
{
if (this.CancelUID_CheckTime(myP.FeeUser_ID_MSISDN, 3) == 0)
{
nRe = this.CancelUID(myP.FeeUser_ID_MSISDN, 3);
hRet = nRe;
}
else
{
hRet = 4011;
}
}
}
#endregion
//}
//else
//{
// hRet = 4004;//無效的SPServiceID
//}
}
else
{
hRet = 4003;//無效的SPID
}
}
else
{
hRet = 4000;//無效的MsgType
}
}
catch
{
hRet = 1;
}
}
#region 記錄日志
using (StreamWriter sw = new StreamWriter(HttpRuntime.AppDomainAppPath + @"MISC16Log" + DateTime.Now.ToString("yyyy_MM_dd") + ".txt", true, System.Text.Encoding.UTF8))
{
sw.WriteLine("request time:" + DateTime.Now.ToString());
sw.WriteLine("request ip:" + Request.UserHostAddress.ToString());
sw.WriteLine("request content:" + doc.InnerXml);
sw.WriteLine("result:" + hRet.ToString());
sw.WriteLine("");
sw.Close();
}
#endregion
#region
TransactionID = myP.TransactionID;
Response.Clear();
Response.ContentType = "text/xml";
Response.ContentEncoding = System.Text.Encoding.UTF8;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -