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

it2022-05-09  28

一、业务实体模型类 

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

转载于:https://www.cnblogs.com/tuyile006/archive/2011/10/24/2223054.html

相关资源:数据结构—成绩单生成器

最新回复(0)