C#:dsmp.asmx <%@ WebService Language="c#" Codebehind="dsmp.asmx.cs" Class="Provision.Provision" %> dsmp.asmx.cs using System;using System.Collections;using System.ComponentModel;using System.Data;using System.IO;using System.Text;using System.Diagnostics;using System.Web;using System.Web.Services;using System.Web.SessionState;using System.Web.Services.Protocols;using System.Xml;using System.Xml.Schema;using System.Xml.Serialization;using System.Web.Services.Description;namespace Provision...{ /**//// <summary> /// dsmp 的摘要说明。 /// </summary> [WebService(Namespace="http://www.monternet.com/dsmp/schemas/")] public class Provision : System.Web.Services.WebService ...{ public Provision() ...{ InitializeComponent(); } 组件设计器生成的代码#region 组件设计器生成的代码 //Web 服务设计器所必需的 private IContainer components = null; /**//// <summary> /// 设计器支持所需的方法 - 不要使用代码编辑器修改 /// 此方法的内容。 /// </summary> private void InitializeComponent() ...{ } /**//// <summary> /// 清理所有正在使用的资源。 /// </summary> protected override void Dispose( bool disposing ) ...{ if(disposing && components != null) ...{ components.Dispose(); } base.Dispose(disposing); } #endregion public TransactionID transID; [WebMethod] [SoapHeader("transID", Direction=SoapHeaderDirection.InOut)] [SoapDocumentMethod("sim.SyncOrderRelation",RequestElementName="SyncOrderRelationReq",ResponseElementName="SyncOrderRelationResp",Use=System.Web.Services.Description.SoapBindingUse.Literal)] [return: System.Xml.Serialization.SoapElementAttribute("return")] public void SyncOrderRelation( [XmlElement(Form=XmlSchemaForm.Unqualified)] ref string Version , [XmlElement(Form=XmlSchemaForm.Unqualified)] ref string MsgType, [XmlElement(Form=XmlSchemaForm.Unqualified)] AddressInfo Send_Address, [XmlElement(Form=XmlSchemaForm.Unqualified)] AddressInfo Dest_Address, [XmlElement(Form=XmlSchemaForm.Unqualified)] UserID FeeUser_ID, [XmlElement(Form=XmlSchemaForm.Unqualified)] UserID DestUser_ID, [XmlElement(Form=XmlSchemaForm.Unqualified)] string LinkID, [XmlElement(Form=XmlSchemaForm.Unqualified)] int ActionID, [XmlElement(Form=XmlSchemaForm.Unqualified)] int ActionReasonID, [XmlElement(Form=XmlSchemaForm.Unqualified)] string SPID, [XmlElement(Form=XmlSchemaForm.Unqualified)] string SPServiceID, [XmlElement(Form=XmlSchemaForm.Unqualified)] int AccessMode, [XmlElement(Form=XmlSchemaForm.Unqualified)] byte[] FeatureStr, [XmlElement(Form=XmlSchemaForm.Unqualified)] out int hRet ) ...{ Version="1.5.0"; hRet = 0; MsgType = "SynOrderRelationReq"; } } [XmlRoot(Namespace="http://www.monternet.com/dsmp/schemas/")] public class TransactionID: SoapHeader ...{ [XmlText(typeof(string))] public string ID; } public class UserID ...{ [XmlElement(Form=XmlSchemaForm.Unqualified)] public int UserIDType; [XmlElement(Form=XmlSchemaForm.Unqualified)] public string MSISDN; [XmlElement(Form=XmlSchemaForm.Unqualified)] public byte[] PseudoCode; } public class AddressInfo ...{ [XmlElement(Form=XmlSchemaForm.Unqualified)] public int DeviceType; [XmlElement(Form=XmlSchemaForm.Unqualified)] public string DeviceID; }} JAVA <?xml version="1.0" encoding="UTF-8"?><%@ page import="java.io.*" %><%Connection conn = null;%><%@ include file="inc/page_db.jsp" %><%String miscId = "0999";//MISCint result = -3;try...{ String xmldata = ""; //xmldata = request.getQueryString(); BufferedReader reader = request.getReader(); String s = ""; try...{ while((s=reader.readLine())!=null) ...{ xmldata += (s+" "); } } catch(Exception e)...{} reader.close(); xmldata = xmldata.trim(); log.debug(xmldata); String mid = XMLParser.getXmlValue(xmldata,"mid"); String transId = getXmlValue(strXml,"TransactionID"); log.debug("mid:"+mid); if(mid!=null && mid.trim().length()==14) ...{ mid = mid.trim(); String action = XMLParser.getXmlValue(xmldata,"ActionID"); if(action!=null) ...{ action = action.trim(); int ac = 0; try ...{ ac = Integer.parseInt(action); } catch(Exception e) ...{ } String serviceId = XMLParser.getXmlValue(xmldata,"SPServiceID"); //System.out.println("provision!mid:"+mid+" action_id:"+action+"service:"+serviceId); //miscId = Misc.getUserArea(mid); String mobile = XMLParser.getXmlValue(xmldata,"mobile_id"); if(mobile != null && mobile.length()<11) ...{ mobile = request.getParameter("HTTP_X_UP_CALLING_LINE_ID"); } String accessMode = XMLParser.getXmlValue(xmldata,"AccessMode"); MonterWapUser user = new MonterWapUser(conn,mid,serviceId,miscId); switch(ac)...{ case 1: result = user.register(mobile,accessMode); break; case 2: result = user.unregister(); break; case 3: result = user.activate(); break; case 4: result = user.pause(); break; default: result = -1; break; } user.provLog(ac,accessMode); } }}catch(Exception e)...{}finally...{ closeConn(conn);}String resultStr = result==0 ? "sucess":"fail";%><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/"> <SOAP-ENV:Header> <TransactionID xmlns="http://www.monternet.com/dsmp/schemas/"><%=transId%></TransactionID> </SOAP-ENV:Header> <SOAP-ENV:Body> <SyncOrderRelationResp xmlns="http://www.monternet.com/dsmp/schemas/"> <Version>1.5.0</Version> <MsgType>SyncOrderRelationResp</MsgType> <hRet><%=result%></hRet> </SyncOrderRelationResp> </SOAP-ENV:Body></SOAP-ENV:Envelope> ASP <!--#include file=function.asp--><%url="http://www.monternet.com/dsmp/schemas/" 'dsmp地址strxml=getdata(url)Set objXML = Server.CreateObject("MSXML2.DOMDocument")objXML.load(strxml)'--------取出相关节点值--------'随机串TransactionID = node_value("SOAP-ENV:Header","TransactionID")'用户手机FeeUser_MSISDN = node_value("FeeUser_ID","MSISDN")'根据此值来判断用户的操作:1-开通服务;2-停止服务;3-激活服务;4-暂停服务ActionID = node_value("SyncOrderRelationReq","ActionID")'SP业务代码SPServiceID = node_value("SyncOrderRelationReq","SPServiceID")'服务的访问方式:1-WEB 2-WAP 3-SMS.AccessMode = node_value("SyncOrderRelationReq","AccessMode")'临时订购关系的事务IDLinkID = node_value("SyncOrderRelationReq","LinkID")select case ActionID case 1:result = user_register(SPServiceID,FeeUser_MSISDN)'用户订购服务 case 2:result = user_stop(SPServiceID,FeeUser_MSISDN)'用户停止服务 case 3:result = user_active(SPServiceID,FeeUser_MSISDN)'用户激活服务 case 4:result = user_pause(SPServiceID,FeeUser_MSISDN)'用户暂停服务 case else:result=-1end select'response.write actionidset objXML=nothing%><?xml version="1.0" encoding="utf-8"?><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/"> <SOAP-ENV:Header> <TransactionID xmlns="http://www.monternet.com/dsmp/schemas/"><%=TransactionID%></TransactionID> </SOAP-ENV:Header> <SOAP-ENV:Body> <SyncOrderRelationResp xmlns="http://www.monternet.com/dsmp/schemas/"> <Version>1.5.0</Version> <MsgType>SyncOrderRelationResp</MsgType> <hRet><%=result%></hRet> </SyncOrderRelationResp> </SOAP-ENV:Body></SOAP-ENV:Envelope>//function.asp'--------取得XML流--------function getdata(url) dim Http set Http=server.createobject("MSXML2.XMLHTTP") Http.open "GET",url,false Http.setrequestHeader "Accept-Language","zh-cn" Http.send() if Http.readystate<>4 then exit function end if getdata=Http.responseBody set http=nothing if err.number<>0 then err.Clear end function'---------取得XML节点值,rootnode->父节点,node_name->节点名---------function node_value(rootnode,node_name) node_value="" set recordlist=objXML.getElementsByTagName(rootnode) node_value=recordlist(0).selectSingleNode(node_name).Text set recordlist=nothing end function'------SPServiceID->业务代码,FeeUser_MSISDN->手机号-----------------------------'------PROVISION接口业务处理函数'用户订购服务function user_register(SPServiceID,FeeUser_MSISDN)end function'用户停止服务function user_stop(SPServiceID,FeeUser_MSISDN)end function'用户激活服务function user_active(SPServiceID,FeeUser_MSISDN)end function'用户暂停服务function user_pause(SPServiceID,FeeUser_MSISDN)end function'------------------------------------------------------------------------------%>