Ejemplo n.º 1
0
        public WebServiceProxy(string wsdlUrl)
        {
            this._wsdlUrl = wsdlUrl;
            string wsdlName = WebServiceProxy.getWsclassName(wsdlUrl);

            this._wsdlName = wsdlName;
            this._assName  = string.Format(_wsdlNamespace, wsdlName);
            this._assPath  = Path.GetTempPath() + this._assName + getMd5Sum(this._wsdlUrl) + ".dll";
            this.CreateServiceAssembly();
        }
Ejemplo n.º 2
0
    protected void Page_Load(object sender, EventArgs e)
    {
        Base.HttpRequest http = new Base.HttpRequest();
        // com.w_9eat.websoftinterface2010.WsWzMobile ws = new com.w_9eat.websoftinterface2010.WsWzMobile();
        //  string get_= ws.get_shop("ws0577", "shbomai", "123456");

        //  string url = "http://websoftinterface2010.9eat.com/wswzmobile/20131012/WsWzMobile.asmx?wsdl";//wsdl地址

        //string url = "http://www.ldsms.com/SmsService.asmx?wsdl";//wsdl地址
        //string name = "GetBalance";//javaWebService开放的接口
        //TPSVService.WebServiceProxy wsd = new TPSVService.WebServiceProxy(url, name);
        //string[] str = { "iek-8207", "bl,it6089" };
        //try
        //{
        //    string suc = (string)wsd.ExecuteQuery(name, str).ToString();
        //    Response.Write(suc);
        //}
        //catch(Exception ex )
        //{
        //    Response.Write(ex.Message);
        //}


        string url  = "http://websoftinterface2010.9eat.com/wswzmobile/20131012/WsWzMobile.asmx?wsdl"; //wsdl地址
        string name = "get_shop";                                                                      //javaWebService开放的接口

        TPSVService.WebServiceProxy wsd = new TPSVService.WebServiceProxy(url, name);
        string[] str = { "ws0577", "shbomai", "123456" };
        try
        {
            string suc = (string)wsd.ExecuteQuery(name, str).ToString();
            Response.Write(suc);
        }
        catch (Exception ex)
        {
            Response.Write(ex.Message);
        }


        //iek-8207
        //bl,it6089

        //  http://localhost/App_WebReferences/com/w_9eat/websoftinterface2010/WsWzMobile.wsdl
        // string smsurl = "http://websoftinterface2010.9eat.com/wswzmobile/20131012/WsWzMobile.asmx/get_shop?sn=ws0577&userid=shbomai&pwd=123456";
        //  string smsurl = "http://www.ldsms.com/SmsService.asmx/GetBalance?username=iek-8207&password=bl,it6089";

        //  http.OpenRequest(smsurl, smsurl);
    }
Ejemplo n.º 3
0
    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            clientip = Fun.getClientIp();
            save_request();
            Stream       RequestStream       = Request.InputStream;
            StreamReader RequestStreamReader = new StreamReader(RequestStream);
            RequestXml = RequestStreamReader.ReadToEnd();
            RequestStream.Close();
            //RequestXml = "<?xml version=\"1.0\" encoding=\"utf-8\"?>";
            //RequestXml = RequestXml + "<MIAP>";
            //RequestXml = RequestXml + "<MIAP-Header>";
            //RequestXml = RequestXml + "<TransactionID>20110909090909000001</TransactionID>";
            //RequestXml = RequestXml + "<Version>1.0</Version>";
            //RequestXml = RequestXml + "<MessageName>ActiveTestReq</MessageName>";
            //RequestXml = RequestXml + "<TestFlag>1</TestFlag>";
            //RequestXml = RequestXml + "</MIAP-Header>";
            //RequestXml = RequestXml + "<MIAP-Body>";
            //RequestXml = RequestXml + "<ActiveTestReq>";
            //RequestXml = RequestXml + "<BPID>110110</BPID>";
            //RequestXml = RequestXml + "</ActiveTestReq>";
            //RequestXml = RequestXml + "</MIAP-Body>";
            //RequestXml = RequestXml + "</MIAP>";

            li_db = 1;

            try
            {
                HeaderXml = Fun.getAllHyperLinks(RequestXml, "<MIAP-Header>", "</MIAP-Header>")[0].Value;
                BPID      = Fun.getAllHyperLinks(RequestXml, "<BPID>", "</BPID>")[0].Value;
                //检测ip是否是合理的ip地址

                Boolean lb_check = checkClient(BPID, clientip);
                if (lb_check == false)
                {
                    li_db         = -1;
                    ReturnCode    = "1";
                    ReturnMessage = "错误格式的XML";//ex.Message ;

                    Response.Write("错误的BPID" + BPID + "和客户端" + clientip);
                    return;
                }
                getRequestHead(HeaderXml);
                if (li_db == 1)
                {
                    body = Fun.getAllHyperLinks(RequestXml, "<MIAP-Body>", "</MIAP-Body>")[0].Value;
                    //根据body 获取对应的数据  ActiveTestReq <BPID>110110</BPID>
                    getM106(MessageName);
                    if (dt_m106.Rows.Count == 0)
                    {
                        li_db         = -1;
                        ReturnCode    = "1";
                        ReturnMessage = MessageName + "接口未定义";
                    }
                    else
                    {
                        string    key_Sql = "Select S_M905.nextval as c from dual ";
                        DataTable dt_key  = new DataTable();
                        db.ExcuteDataTable(dt_key, key_Sql, CommandType.Text);
                        m905_key = dt_key.Rows[0][0].ToString();

                        string send_xml   = Fun.getAllHyperLinks(body, "<" + MessageName + ">", "</" + MessageName + ">")[0].Value; //<ActiveTestReq>
                        string where_sql  = dt_m106.Rows[0]["WHERE_SQL"].ToString();
                        string select_sql = dt_m106.Rows[0]["SELECT_SQL"].ToString();
                        string update_sql = dt_m106.Rows[0]["UPDATE_SQL"].ToString();
                        where_sql  = where_sql.Replace("[LOG_KEY]", m905_key);
                        select_sql = select_sql.Replace("[LOG_KEY]", m905_key);
                        if (update_sql.IndexOf("SQL=") == 0)
                        {
                            update_sql = update_sql.Replace("SQL=", "");
                            #region 获取传入的参数值 并校验 参数的准确性
                            /*获取传入的参数值 并校验 参数的准确性 */
                            for (int i = 0; i < dt_m10601.Rows.Count; i++)
                            {
                                string col = dt_m10601.Rows[i]["COL"].ToString();

                                MatchCollection colls = Fun.getAllHyperLinks(body, "<" + col + ">", "</" + col + ">");

                                string data = string.Empty;
                                if (colls != null && colls.Count > 0)
                                {
                                    data = Fun.getAllHyperLinks(body, "<" + col + ">", "</" + col + ">")[0].Value;
                                }

                                string NECESSARY = dt_m10601.Rows[i]["NECESSARY"].ToString();
                                if (NECESSARY == "1" && (data == "" || data == null))
                                {
                                    li_db         = -1;
                                    ReturnCode    = "1";
                                    ReturnMessage = col + ":字段不允许为空 ";
                                    break;
                                }
                                dt_m10601.Rows[i]["col_data"] = data;
                                update_sql = update_sql.Replace("[" + col + "]", data);
                            }
                            #endregion


                            DataTable dt_sql = new DataTable();
                            db.ExcuteDataTable(dt_sql, update_sql, CommandType.Text);
                            update_sql = dt_sql.Rows[0][0].ToString();
                        }

                        if (update_sql.IndexOf("M107_KEY=") == 0)
                        {
                            #region 处理 M107

                            // --先 M106 从M10601找列  替换到M107的Get_SQL 然后用Get_SQl 的数据替换 sendxml的数据 作为请求
                            //--请求的结果在日志表M10702中  如果成功以后执行 update_sql 组 M106的返回包
                            string    M107_KEY = update_sql.Replace("M107_KEY=", "");
                            DataTable dt_m107  = new DataTable();
                            string    Sql      = "Select t.* from M107 t where m107_key=" + M107_KEY;
                            db.ExcuteDataTable(dt_m107, Sql, CommandType.Text);
                            if (dt_m107.Rows.Count == 0)
                            {
                                ReturnCode    = "1";
                                ReturnMessage = "M107_KEY=" + M107_KEY + "不存在 ";
                            }
                            else
                            {
                                #region 开始处理 M107
                                string Get_Sql    = dt_m107.Rows[0]["GET_SQL"].ToString();
                                string Update_SQL = dt_m107.Rows[0]["UPDATE_SQL"].ToString();


                                /*格式化SQL*/
                                #region 获取传入的参数值 并校验 参数的准确性
                                /*获取传入的参数值 并校验 参数的准确性 */
                                for (int i = 0; i < dt_m10601.Rows.Count; i++)
                                {
                                    string col = dt_m10601.Rows[i]["COL"].ToString();

                                    MatchCollection colls = Fun.getAllHyperLinks(body, "<" + col + ">", "</" + col + ">");

                                    string data = string.Empty;
                                    if (colls != null && colls.Count > 0)
                                    {
                                        data = Fun.getAllHyperLinks(body, "<" + col + ">", "</" + col + ">")[0].Value;
                                    }

                                    string NECESSARY = dt_m10601.Rows[i]["NECESSARY"].ToString();
                                    if (NECESSARY == "1" && (data == "" || data == null))
                                    {
                                        li_db         = -1;
                                        ReturnCode    = "1";
                                        ReturnMessage = col + ":字段不允许为空 ";
                                        break;
                                    }
                                    dt_m10601.Rows[i]["col_data"] = data;

                                    Get_Sql    = Get_Sql.Replace("[" + col + "]", data);
                                    Update_SQL = Update_SQL.Replace("[" + col + "]", data);
                                    where_sql  = where_sql.Replace("[" + col + "]", data);
                                    select_sql = select_sql.Replace("[" + col + "]", data);
                                }
                                #endregion

                                if (li_db != -1)
                                {
                                    #region 写M905日志
                                    string log_sql = "Insert into M905(M905_KEY,SEND_XML,enter_date,BPID)";
                                    log_sql = log_sql + " Select " + m905_key + ",'" + RequestXml + "',sysdate,'" + BPID + "' from dual";
                                    db.BeginTransaction();
                                    li_db = db.ExecuteNonQuery(log_sql, CommandType.Text);
                                    if (li_db < 0)
                                    {
                                        ReturnCode    = "1";
                                        ReturnMessage = "M905日志失败 ";
                                        db.Rollback();
                                    }
                                    else
                                    {
                                        /*开始执行sql*/
                                        db.Commit();
                                    }
                                    #endregion
                                    Get_Sql    = Get_Sql.Replace("[M905_KEY]", m905_key);
                                    Update_SQL = Update_SQL.Replace("[M905_KEY]", m905_key);
                                    if (li_db != -1)
                                    {
                                        #region 处理M107
                                        string    m107_send_xml = dt_m107.Rows[0]["send_xml"].ToString();
                                        DataTable dt_send       = new DataTable();
                                        db.ExcuteDataTable(dt_send, Get_Sql, CommandType.Text);



                                        if (dt_send.Rows.Count != 1)
                                        {
                                            ReturnCode    = "1";
                                            ReturnMessage = "M107_KEY=" + M107_KEY + " ,GET_SQL错误 ";
                                        }
                                        else
                                        {
                                            string CHECKMSG = "";
                                            try
                                            {
                                                CHECKMSG = dt_send.Rows[0]["CHECKMSG"].ToString();
                                            }
                                            catch
                                            {
                                                CHECKMSG = "";
                                            }
                                            if (CHECKMSG.Length <= 1)
                                            {
                                                string M107_type   = dt_m107.Rows[0]["M107_TYPE"].ToString();
                                                string m107_http   = dt_m107.Rows[0]["LINK_URL"].ToString();
                                                bool   lb_open     = false;
                                                string receivexml_ = "";

                                                // if M107_type == "SOCKET"

                                                #region 组HTTP包
                                                string sendxml_ = m107_send_xml;
                                                for (int c = 0; c < dt_send.Columns.Count; c++)
                                                {
                                                    string col_data = dt_send.Rows[0][c].ToString();
                                                    string col      = dt_send.Columns[c].ColumnName.ToUpper();
                                                    sendxml_ = sendxml_.Replace("[" + col + "]", col_data);
                                                }

                                                #endregion
                                                #region 发送http请求
                                                if (M107_type == "WEBSERVICES")
                                                {
                                                    try
                                                    {
                                                        string url = m107_http;                                                           //wsdl地址

                                                        string name   = Fun.getAllHyperLinks(sendxml_, "<Method>", "</Method>")[0].Value; //javaWebService开放的接口
                                                        int    ccount = int.Parse(Fun.getAllHyperLinks(sendxml_, "<ParmCount>", "</ParmCount>")[0].Value);
                                                        TPSVService.WebServiceProxy wsd = new TPSVService.WebServiceProxy(url, name);
                                                        string[] str = new string[ccount];
                                                        for (int rr_ = 0; rr_ < ccount; rr_++)
                                                        {
                                                            str[rr_] = Fun.getAllHyperLinks(sendxml_, "<P" + rr_.ToString() + ">", "</P" + rr_.ToString() + ">")[0].Value;
                                                        }

                                                        receivexml_ = (string)wsd.ExecuteQuery(name, str).ToString();
                                                        lb_open     = true;
                                                    }
                                                    catch (Exception ex)
                                                    {
                                                        lb_open = false;
                                                    }

                                                    if (lb_open == false)
                                                    {
                                                        ReturnCode    = "1";
                                                        ReturnMessage = "M107_KEY=" + M107_KEY + "发送请求失败 ";
                                                    }
                                                    else
                                                    {
                                                        ReturnMessage = "";
                                                    }
                                                }

                                                if (M107_type == "HTTP" || M107_type == "HTTP_GET")
                                                {
                                                    Bm.HttpRequest http_ = new Bm.HttpRequest();
                                                    http_.CharacterSet     = "utf-8";
                                                    http_.RequestUriString = m107_http;
                                                    if (M107_type == "HTTP_GET")
                                                    {
                                                        lb_open = http_.OpenRequest(m107_http + "?" + sendxml_, m107_http + "?" + sendxml_);
                                                    }
                                                    else
                                                    {
                                                        lb_open = http_.OpenRequest(m107_http, m107_http, sendxml_);
                                                    }
                                                    if (lb_open == false)
                                                    {
                                                        ReturnCode    = "1";
                                                        ReturnMessage = "M107_KEY=" + M107_KEY + "发送请求失败 ";
                                                    }
                                                    else
                                                    {
                                                        receivexml_ = http_.HtmlDocument;
                                                    }
                                                }
                                                if (M107_type == "SOCKET")
                                                {
                                                    lb_open = true;
                                                    try
                                                    {
                                                        Socket client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

                                                        string[] ipport = m107_http.Split(':');


                                                        IPEndPoint ie = new IPEndPoint(IPAddress.Parse(ipport[0]), int.Parse(ipport[1]));//服务器的IP和端口

                                                        client.Connect(ie);

                                                        client.Send(Encoding.Default.GetBytes(sendxml_));

                                                        byte[] data1      = new byte[1024];
                                                        int    recv       = client.Receive(data1);
                                                        string stringdata = Encoding.Default.GetString(data1, 0, recv);


                                                        receivexml_ = stringdata;
                                                    }
                                                    catch (Exception ex)
                                                    {
                                                        lb_open       = false;
                                                        ReturnCode    = "1";
                                                        ReturnMessage = "M107_KEY=" + M107_KEY + "发送请求失败 :" + ex.Message;
                                                    }
                                                }


                                                if (lb_open == true)
                                                {
                                                    #region 执行 http请求以后 的处理

                                                    string m10702_key = save_log(M107_KEY, sendxml_, receivexml_, "0");
                                                    Update_SQL = Update_SQL.Replace("[M10702_KEY]", m10702_key);


                                                    db.BeginTransaction();
                                                    li_db = db.ExecuteNonQuery(Update_SQL, CommandType.Text);
                                                    if (li_db < 0)
                                                    {
                                                        li_db          = -1;
                                                        ReturnCode     = "1";
                                                        ReturnMessage += "Deal failed";
                                                        db.Rollback();
                                                        //  break;
                                                    }
                                                    else
                                                    {
                                                        db.Commit();
                                                        log_sql = "Select t.XML_RES,t.XML_MSG from M905 t where M905_KEY = " + m905_key;
                                                        DataTable dt_m905 = new DataTable();
                                                        db.ExcuteDataTable(dt_m905, log_sql, CommandType.Text);
                                                        ReturnCode     = dt_m905.Rows[0]["XML_RES"].ToString();
                                                        ReturnMessage += dt_m905.Rows[0]["XML_MSG"].ToString();
                                                    }
                                                    #endregion

                                                    string selSq = select_sql + " " + where_sql;
                                                    db.ExcuteDataTable(dt_resp, selSq, CommandType.Text);
                                                }
                                                #endregion
                                            }
                                            else
                                            {
                                                ReturnCode    = "1";
                                                ReturnMessage = CHECKMSG;
                                            }
                                        }
                                        #endregion
                                    }
                                }
                                #endregion
                            }

                            #endregion
                        }
                        else
                        {
                            where_sql  = where_sql.Replace("[LOG_KEY]", m905_key);
                            select_sql = select_sql.Replace("[LOG_KEY]", m905_key);

                            #region 获取传入的参数值 并校验 参数的准确性
                            /*获取传入的参数值 并校验 参数的准确性 */
                            for (int i = 0; i < dt_m10601.Rows.Count; i++)
                            {
                                string col = dt_m10601.Rows[i]["COL"].ToString();

                                MatchCollection colls = Fun.getAllHyperLinks(body, "<" + col + ">", "</" + col + ">");

                                string data = string.Empty;
                                if (colls != null && colls.Count > 0)
                                {
                                    data = Fun.getAllHyperLinks(body, "<" + col + ">", "</" + col + ">")[0].Value;
                                }

                                string NECESSARY = dt_m10601.Rows[i]["NECESSARY"].ToString();
                                if (NECESSARY == "1" && (data == "" || data == null))
                                {
                                    li_db         = -1;
                                    ReturnCode    = "1";
                                    ReturnMessage = col + ":字段不允许为空 ";
                                    break;
                                }
                                dt_m10601.Rows[i]["col_data"] = data;

                                where_sql  = where_sql.Replace("[" + col + "]", data);
                                select_sql = select_sql.Replace("[" + col + "]", data);
                                update_sql = update_sql.Replace("[" + col + "]", data);
                            }
                            #endregion

                            dt_m106.Rows[0]["WHERE_SQL_N"]  = where_sql;
                            dt_m106.Rows[0]["SELECT_SQL_N"] = select_sql;

                            #region

                            string log_sql = "Insert into M905(M905_KEY,SEND_XML,enter_date,BPID)";
                            log_sql = log_sql + " Select " + m905_key + ",'" + RequestXml + "',sysdate,'" + BPID + "' from dual";
                            db.BeginTransaction();
                            li_db = db.ExecuteNonQuery(log_sql, CommandType.Text);
                            if (li_db < 0)
                            {
                                #region
                                li_db          = -1;
                                ReturnCode     = "1";
                                ReturnMessage += "Deal failed";
                                db.Rollback();
                                //  break;
                                #endregion
                            }
                            else
                            {
                                /*开始执行sql*/
                                db.Commit();
                                #region 处理 update_SQL
                                if (update_sql.Length > 10)
                                {
                                    exec_sql   = update_sql;
                                    update_sql = update_sql.Replace("[LOG_KEY]", m905_key);
                                    db.BeginTransaction();
                                    try
                                    {
                                        li_db = db.ExecuteNonQuery(update_sql, CommandType.Text);
                                        if (li_db < 0)
                                        {
                                            li_db          = -1;
                                            ReturnCode     = "1";
                                            ReturnMessage += "Deal failed";
                                            db.Rollback();
                                            //  break;
                                        }
                                        else
                                        {
                                            db.Commit();
                                            log_sql = "Select t.XML_RES,t.XML_MSG from M905 t where M905_KEY = " + m905_key;
                                            DataTable dt_m905 = new DataTable();
                                            db.ExcuteDataTable(dt_m905, log_sql, CommandType.Text);
                                            ReturnCode     = dt_m905.Rows[0]["XML_RES"].ToString();
                                            ReturnMessage += dt_m905.Rows[0]["XML_MSG"].ToString();
                                        }
                                    }
                                    catch (Exception ex)
                                    {
                                        db.Rollback();
                                        li_db         = -1;
                                        ReturnCode    = "1";
                                        ReturnMessage = GetOracleMsg(ex.Message);
                                    }
                                }
                                #endregion
                                string selSq = select_sql + " " + where_sql;
                                db.ExcuteDataTable(dt_resp, selSq, CommandType.Text);
                                /* 和 组成要返回的xm*/
                            }
                            #endregion
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                li_db         = -1;
                ReturnCode    = "1";
                ReturnMessage = "错误格式的XML" + ex.Message;
                ReturnMessage = GetOracleMsg(ex.Message);
                //  ReturnCode = "2";
                //   ReturnMessage = "Part of the process is successful";
            }
            try
            {
                string ls_url = SetXml();

                /* if (ls_url != null && ls_url != "")
                 * {
                 *  Response.Redirect(ls_url);
                 * }
                 * else
                 * {
                 *  Response.Write(ResponseXml);
                 * }
                 */
                Response.Write(ResponseXml);
            }
            catch
            {
                Response.Write(ResponseXml);
            }
        }
        catch (Exception ex)
        {
            Response.Write(ex.Message);
        }
    }