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

📄 default.aspx.cs

📁 移动MISC1.6正向、反向定制、取消接口
💻 CS
📖 第 1 页 / 共 4 页
字号:
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 + -