• 移动梦网MISC1.6正反向订购/取消


    一、业务实体模型类 

    using System;

    /// <summary>
    /// 移动梦网 MISC 1.6 接口
    /// 业务实体模型
    /// create by hello world at 2006-11-29 (QQ:8935300)
    /// </summary>

    namespace Com.Rondi.MISC16
    {

        
    public class ProvisionInfo
        {
            
    public ProvisionInfo() { }
            
    //消息类型
            private string msgType;
            
    //该消息编号
            private string transactionID;
            
    //该接口消息的版本号,本次所有的接口消息的版本都为“1.5.0”
            private string version;

            
    //Send_Address节点与Dest_Address节点
            /*发送方:设备类型
            0:MISC
            100:ISMG
            101:WAP SP PROXY
            1XX:其他业务网关
            200:WAP PORTAL
            201:WWW PORTAL
            202:VOICE PORTAL
            203:PDA PORTAL
            2XX:其他门户
            300:MMSC
            301:KJAVA SERVER
            302:LSP
            3XX:其它应用平台 
    */
            
    private int send_Address_DeviceType;
            
    //发送方:设备编号,设备编号采用各设备的入网编号,例如短信网关使用网关ID、对SP使用其企业代码,该设备编号由MISC分配,并且在同一设备类型中该编号唯一
            private string send_Address_DeviceID;
            
    //同上接收方
            private int dest_Address_DeviceType;
            
    //同上接收方
            private string dest_Address_DeviceID;

            
    //FeeUser_ID与DestUser_ID节点
            
    //计费用户标识:用户标识类型  1:用手机号标识 2:用伪码标识   3:两者同时标识
            private int feeUser_ID_UserIDType;
            
    //计费用户标识:用户手机号
            private string feeUser_ID_MSISDN;
            
    //计费用户标识:用户伪码
            private string feeUser_ID_PseudoCode;
            
    //同上使用用户标识
            private int destUser_ID_UserIDType;
            
    //同上使用用户标识
            private string destUser_ID_MSISDN;
            
    //同上使用用户标识
            private string destUser_ID_PseudoCode;

            
    //临时订购关系的事务ID
            private string linkID;
            
    /*服务状态管理动作代码,具体值如下:
            1: 开通服务;
            2: 停止服务;
            3: 激活服务;
            4: 暂停服务;
    */
            
    private int actionID;
            
    /*产生服务状态管理动作原因的代码,具体值如下:
            1:用户发起行为
            2:Admin&1860发起行为
            3:Boss停机
            4:Boss开机
            5:Boss过户
            6:Boss销户
            7:Boss改号
            8:扣费失败导致的服务取消
            9:其他
    */
            
    private int actionReasonID;

            
    //该字段及对应属性用于反向接口中Service_ID节点
            private int serviceIDType;
            
    //SP的企业代码
            private string spid;
            
    //SP中该服务的服务代码
            private string spServiceID;

            
    //服务的访问方式    1:WEB  2:WAP  3:SMS
            private int accessMode;
            
    //服务订购参数(base64加密),内容是长号码+空格+用户发送内容
            private string featureStr;

            
    public string MsgType
            {
                
    get { return this.msgType; }
                
    set { this.msgType = value; }
            }

            
    public string TransactionID
            {
                
    get { return this.transactionID; }
                
    set { this.transactionID = value; }
            }

            
    public string Version
            {
                
    get { return this.version; }
                
    set { this.version = value; }
            }

            
    public int Send_Address_DeviceType
            {
                
    get { return this.send_Address_DeviceType; }
                
    set { this.send_Address_DeviceType = value; }
            }

            
    public string Send_Address_DeviceID
            {
                
    get { return this.send_Address_DeviceID; }
                
    set { this.send_Address_DeviceID = value; }
            }

            
    public int Dest_Address_DeviceType
            {
                
    get { return this.dest_Address_DeviceType; }
                
    set { this.dest_Address_DeviceType = value; }
            }

            
    public string Dest_Address_DeviceID
            {
                
    get { return this.dest_Address_DeviceID; }
                
    set { this.dest_Address_DeviceID = value; }
            }

            
    public int FeeUser_ID_UserIDType
            {
                
    get { return this.feeUser_ID_UserIDType; }
                
    set { this.feeUser_ID_UserIDType = value; }
            }

            
    public string FeeUser_ID_MSISDN
            {
                
    get { return this.feeUser_ID_MSISDN; }
                
    set { this.feeUser_ID_MSISDN = value; }
            }

            
    public string FeeUser_ID_PseudoCode
            {
                
    get { return this.feeUser_ID_PseudoCode; }
                
    set { this.feeUser_ID_PseudoCode = value; }
            }

            
    public int DestUser_ID_UserIDType
            {
                
    get { return this.destUser_ID_UserIDType; }
                
    set { this.destUser_ID_UserIDType = value; }
            }

            
    public string DestUser_ID_MSISDN
            {
                
    get { return this.destUser_ID_MSISDN; }
                
    set { this.destUser_ID_MSISDN = value; }
            }

            
    public string DestUser_ID_PseudoCode
            {
                
    get { return this.destUser_ID_PseudoCode; }
                
    set { this.destUser_ID_PseudoCode = value; }
            }

            
    public string LinkID
            {
                
    get { return this.linkID; }
                
    set { this.linkID = value; }
            }

            
    public int ActionID
            {
                
    get { return this.actionID; }
                
    set { this.actionID = value; }
            }

            
    public int ActionReasonID
            {
                
    get { return this.actionReasonID; }
                
    set { this.actionReasonID = value; }
            }

            
    public int ServiceIDType
            {
                
    get { return this.serviceIDType; }
                
    set { this.serviceIDType = value; }
            }

            
    public string SPID
            {
                
    get { return this.spid; }
                
    set { this.spid = value; }
            }

            
    public string SPServiceID
            {
                
    get { return this.spServiceID; }
                
    set { this.spServiceID = value; }
            }

            
    public int AccessMode
            {
                
    get { return this.accessMode; }
                
    set { this.accessMode = value; }
            }

            
    public string FeatureStr
            {
                
    get { return this.featureStr; }
                
    set { this.featureStr = value; }
            }

        }
    }

    二、正向同步、取消接口

    using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    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;


    /// <summary>
    /// 移动梦网 MISC 1.6 接口
    /// 正向同步接口
    /// create by hello world at 2006-11-29
    /// </summary>
    public partial class MISC16_SyncOrderRelationReq : System.Web.UI.Page
    {
        
    protected void Page_Load(object sender, EventArgs e)
        {
            
    //基本参数
            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;

            
    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 同步操作
                                
    //正向订购:请求为开通或激活服务都视为开通请求
                                if (myP.ActionID == 1 || myP.ActionID == 3)
                                {
                                    
    if (...)//调用自己方法与数据库同步
                                        hRet = 0;
                                    
    else
                                        hRet 
    = 1;
                                }

                                
    //正向取消:请求为停止或暂停都视为取消
                                if (myP.ActionID == 2 || myP.ActionID == 4)
                                {
                                    
    //取消前检测是否存在订购关系(user表的grd_id是否大于0)
                                    if (...)
                                    {
                                       
    if (...)//调用自己方法与数据库同步
                                            hRet = 0;//取消成功
                                        else
                                            hRet 
    = 1;//调用取消存储过程发生异常,标识为未知错误
                                    }
                                    
    else
                                    {
                                        hRet 
    = 4011;//SP端不存在订购关系
                                    }
                                }

                                
    #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;

            StringBuilder xmlResult 
    = new StringBuilder("<?xml version="1.0" encoding="utf-8" ?>");
            xmlResult.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/">");
            xmlResult.Append(
    "<SOAP-ENV:Header>");
            
            xmlResult.Append(
    "<TransactionID xmlns="http://www.monternet.com/dsmp/schemas/">" + TransactionID + "</TransactionID>");
            
            xmlResult.Append(
    "</SOAP-ENV:Header>");

            xmlResult.Append(
    "<SOAP-ENV:Body>");
            xmlResult.Append(
    "<SyncOrderRelationResp xmlns="http://www.monternet.com/dsmp/schemas/">");

            xmlResult.Append(
    "<Version>" + Version + "</Version>");
            xmlResult.Append(
    "<MsgType>" + MsgType + "</MsgType>");
            xmlResult.Append(
    "<hRet>" + hRet.ToString() + "</hRet>");

            xmlResult.Append(
    "</SyncOrderRelationResp>");
            xmlResult.Append(
    "</SOAP-ENV:Body>");
            xmlResult.Append(
    "</SOAP-ENV:Envelope>");

            Response.Write(xmlResult.ToString());
            Response.End();
            
    #endregion

            
        }



    }

    三、反向订购

            /// <summary>
            
    /// 反向订购接口
            
    /// </summary>
            
    /// <remarks>
            
    /// 该消息编号:TransactionID
            
    /// 版本:Version
            
    /// 消息类型:MsgType
            
    /// 发送方设备类型:Send_Address_DeviceType
            
    /// 发送方设备编号:Send_Address_DeviceID
            
    /// 接收方设备类型:Dest_Address_DeviceType
            
    /// 接收方设备编号:Dest_Address_DeviceID
            
    /// 计费用户类别:FeeUser_ID_UserIDType
            
    /// ■计费用户手机:FeeUser_ID_MSISDN
            
    /// 使用用户类别:DestUser_ID_UserIDType
            
    /// ■使用用户手机:DestUser_ID_MSISDN
            
    /// 服务标识类别:ServiceIDType
            
    /// SP的企业代码:SPID
            
    /// SP的服务代码:SPServiceID
            
    /// </remarks>
            
    /// <param name="provisionInfo">瘦客户对象</param>
            
    /// <returns>MISC接口返回的hRet值(0成功,其它参考MISC相关文档)</returns>
            public int SubscribeServiceReq(ProvisionInfo myPro)
            {
                
    //返回值
                int result = 1;
                StringBuilder xml 
    = new StringBuilder("<?xml version="1.0" encoding="UTF-8" ?>");
                xml.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/">");
                xml.Append(
    "<SOAP-ENV:Header>");
                xml.Append(
    "<TransactionID xmlns="http://www.monternet.com/dsmp/schemas/">" + myPro.TransactionID + "</TransactionID>");//月+日+分+秒+毫秒
                xml.Append("</SOAP-ENV:Header>");

                xml.Append(
    "<SOAP-ENV:Body>");
                xml.Append(
    "<SubscribeServiceReq xmlns="http://www.monternet.com/dsmp/schemas/">");

                xml.Append(
    "<Version>" + myPro.Version + "</Version>");//1.5.0

                xml.Append(
    "<MsgType>" + myPro.MsgType + "</MsgType>");//SubscribeServiceReq

                xml.Append(
    "<Send_Address>");
                xml.Append(
    "<DeviceType>" + myPro.Send_Address_DeviceType.ToString() + "</DeviceType>");
                xml.Append(
    "<DeviceID>" + myPro.Send_Address_DeviceID + "</DeviceID>");//web.config
                xml.Append("</Send_Address>");

                xml.Append(
    "<Dest_Address>");
                xml.Append(
    "<DeviceType>" + myPro.Dest_Address_DeviceType.ToString() + "</DeviceType> ");//0
                xml.Append("<DeviceID>" + myPro.Dest_Address_DeviceID + "</DeviceID>");//web.config
                xml.Append("</Dest_Address>");

                xml.Append(
    "<FeeUser_ID>");
                xml.Append(
    "<UserIDType>" + myPro.FeeUser_ID_UserIDType.ToString() + "</UserIDType>");//1
                xml.Append("<MSISDN>" + myPro.FeeUser_ID_MSISDN + "</MSISDN>");
                xml.Append(
    "<PseudoCode />");
                xml.Append(
    "</FeeUser_ID>");

                xml.Append(
    "<DestUser_ID>");
                xml.Append(
    "<UserIDType>" + myPro.DestUser_ID_UserIDType.ToString() + "</UserIDType>");//1
                xml.Append("<MSISDN>" + myPro.DestUser_ID_MSISDN + "</MSISDN>");
                xml.Append(
    "<PseudoCode />");
                xml.Append(
    "</DestUser_ID>");

                xml.Append(
    "<Service_ID>");
                xml.Append(
    "<ServiceIDType>" + myPro.ServiceIDType.ToString() + "</ServiceIDType>");//1
                xml.Append("<SPID>" + myPro.SPID + "</SPID>");//web.config
                xml.Append("<SPServiceID>" + myPro.SPServiceID + "</SPServiceID>");//web.config
                xml.Append("<AccessNo />");
                xml.Append(
    "<FeatureStr />");
                xml.Append(
    "</Service_ID>");

                xml.Append(
    "<FeatureStr />");

                xml.Append(
    "</SubscribeServiceReq>");
                xml.Append(
    "</SOAP-ENV:Body>");
                xml.Append(
    "</SOAP-ENV:Envelope>");

                
    byte[] postData = System.Text.Encoding.UTF8.GetBytes(xml.ToString());

                HttpWebRequest myRequest 
    = (HttpWebRequest)WebRequest.Create(this.subscribeServiceReq);
                myRequest.Method 
    = "POST";
                myRequest.ContentType 
    = "application/x-www-form-urlencoded";
                myRequest.ContentLength 
    = postData.Length;
                Stream newStream 
    = myRequest.GetRequestStream();
                
    //向反向订购接口发送数据
                newStream.Write(postData, 0, postData.Length);
                newStream.Close();

                
    //获取反向订购接口返回的结果
                XmlDocument doc = new XmlDocument();
                WebResponse response 
    = myRequest.GetResponse();
                System.IO.Stream resStream 
    = response.GetResponseStream();
                
    if (resStream != null)
                {
                    doc.Load(resStream);
                }
                resStream.Close();
                
    //获取节点值
                XmlElement root = doc.DocumentElement;
                
    foreach (XmlNode node in root.ChildNodes[1].ChildNodes[0])//遍历SubscribeServiceResp节点
                {
                    
    if (node.Name == "hRet")
                    {
                        result 
    = int.Parse(node.InnerText);
                    }
                }
                
    //System.IO.StreamReader sr = new System.IO.StreamReader(resStream, System.Text.Encoding.UTF8))
                
    //string s = sr.ReadToEnd();
                
    //sr.Close();
                return result;
            }

    四、反向取消

            /// <summary>
            
    /// 反向取消接口
            
    /// </summary>
            
    /// <remarks>
            
    /// 该消息编号:TransactionID
            
    /// 版本:Version
            
    /// 消息类型:MsgType
            
    /// 发送方设备类型:Send_Address_DeviceType
            
    /// 发送方设备编号:Send_Address_DeviceID
            
    /// 接收方设备类型:Dest_Address_DeviceType
            
    /// 接收方设备编号:Dest_Address_DeviceID
            
    /// 计费用户类别:FeeUser_ID_UserIDType
            
    /// ■计费用户手机:FeeUser_ID_MSISDN
            
    /// 使用用户类别:DestUser_ID_UserIDType
            
    /// ■使用用户手机:DestUser_ID_MSISDN
            
    /// 服务标识类别:ServiceIDType
            
    /// SP的企业代码:SPID
            
    /// SP的服务代码:SPServiceID
            
    /// 
            
    /// </remarks>
            
    /// <param name="provisionInfo">瘦客户对象</param>
            
    /// <returns>MISC接口返回的hRet值(0成功,其它参考MISC相关文档)</returns>
            public int UnSubscribeServiceReq(ProvisionInfo myPro)
            {
                
    //返回值
                int result = 1;
                StringBuilder xml 
    = new StringBuilder("<?xml version="1.0" encoding="UTF-8" ?>");
                xml.Append(
    "<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns="http://www.monternet.com/dsmp/schemas/">");

                xml.Append(
    "<SOAP-ENV:Header>");
                xml.Append(
    "<TransactionID xmlns="http://www.monternet.com/dsmp/schemas/" xsi:type="xsd:string">" + myPro.TransactionID + "</TransactionID>");//月+日+分+秒+毫秒
                xml.Append("</SOAP-ENV:Header>");

                xml.Append(
    "<SOAP-ENV:Body>");
                xml.Append(
    "<UnSubscribeServiceReq xmlns="http://www.monternet.com/dsmp/schemas/">");

                xml.Append(
    "<Version>" + myPro.Version + "</Version>");//1.5.0
                xml.Append("<MsgType>" + myPro.MsgType + "</MsgType>");//SubscribeServiceReq

                xml.Append(
    "<Send_Address>");
                xml.Append(
    "<DeviceType>" + myPro.Send_Address_DeviceType.ToString() + "</DeviceType>");
                xml.Append(
    "<DeviceID>" + myPro.Send_Address_DeviceID + "</DeviceID>");//web.config
                xml.Append("</Send_Address>");

                xml.Append(
    "<Dest_Address>");
                xml.Append(
    "<DeviceType>" + myPro.Dest_Address_DeviceType.ToString() + "</DeviceType>");//0
                xml.Append("<DeviceID>" + myPro.Dest_Address_DeviceID + "</DeviceID>");//web.config
                xml.Append( "</Dest_Address>");

                xml.Append(
    "<FeeUser_ID>");
                xml.Append(
    "<UserIDType>" + myPro.FeeUser_ID_UserIDType.ToString() + "</UserIDType>");//1
                xml.Append("<MSISDN>" + myPro.FeeUser_ID_MSISDN + "</MSISDN>");
                xml.Append(
    "<PseudoCode />");
                xml.Append(
    "</FeeUser_ID>");

                xml.Append(
    "<DestUser_ID>");
                xml.Append(
    "<UserIDType>" + myPro.DestUser_ID_UserIDType.ToString() + "</UserIDType>");//1
                xml.Append("<MSISDN>" + myPro.DestUser_ID_MSISDN + "</MSISDN>");
                xml.Append(
    "<PseudoCode />");
                xml.Append(
    "</DestUser_ID>");

                xml.Append(
    "<Service_ID>");
                xml.Append(
    "<ServiceIDType>" + myPro.ServiceIDType.ToString() + "</ServiceIDType>");//1
                xml.Append("<SPID>" + myPro.SPID + "</SPID>");//web.config
                xml.Append("<SPServiceID>" + myPro.SPServiceID + "</SPServiceID>");//web.config
                xml.Append("<AccessNo />");
                xml.Append(
    "<FeatureStr />");
                xml.Append(
    "</Service_ID>");

                xml.Append(
    "<FeatureStr />");

                xml.Append(
    "</UnSubscribeServiceReq>");
                xml.Append(
    "</SOAP-ENV:Body>");
                xml.Append(
    "</SOAP-ENV:Envelope>");

                
    byte[] postData = System.Text.Encoding.UTF8.GetBytes(xml.ToString());

                HttpWebRequest myRequest 
    = (HttpWebRequest)WebRequest.Create(this.subscribeServiceReq);
                myRequest.Method 
    = "POST";
                myRequest.ContentType 
    = "application/x-www-form-urlencoded";
                myRequest.ContentLength 
    = postData.Length;
                Stream newStream 
    = myRequest.GetRequestStream();
                
    //向反向订购接口发送数据
                newStream.Write(postData, 0, postData.Length);
                newStream.Close();

                
    //获取反向订购接口返回的结果
                XmlDocument doc = new XmlDocument();
                WebResponse response 
    = myRequest.GetResponse();
                System.IO.Stream resStream 
    = response.GetResponseStream();
                
    if (resStream != null)
                {
                    doc.Load(resStream);
                }
                resStream.Close();
                
    //获取节点值
                XmlElement root = doc.DocumentElement;
                
    foreach (XmlNode node in root.ChildNodes[1].ChildNodes[0])//遍历SubscribeServiceResp节点
                {
                    
    if (node.Name == "hRet")
                    {
                        result 
    = int.Parse(node.InnerText);
                    }
                }
                
    //System.IO.StreamReader sr = new System.IO.StreamReader(resStream, System.Text.Encoding.UTF8))
                
    //string s = sr.ReadToEnd();
                
    //sr.Close();
                return result;
            }
  • 相关阅读:
    android:id="@android:id/tabhost" 、android:id="@+id/llRoot" 、android:id="@id/llRoot" 之间的区别
    android:ellipsize的使用
    PopupWindow为什么要设置setBackgroundDrawable(new BitmapDrawable());
    android中LayoutInflater的3种使用以及getSystemService的API
    context 的理解
    Android 中this、getContext()、getApplicationContext()、getApplication()、getBaseContext() 之间的区别
    android Matrix 使用
    public private protected frientdly 作用域
    pyinstaller参数介绍以及总结
    MongoDB高级查询详细
  • 原文地址:https://www.cnblogs.com/tuyile006/p/2223054.html
Copyright © 2020-2023  润新知