分享
 
 
 

SP 短信开发-PROVISION接口实现-反向取消实例代码

王朝other·作者佚名  2006-04-22
窄屏简体版  字體: |||超大  

反向取消接口规范-流程说明

1)SP代替用户,向MISC发起反向取消请求UnSubscribeServiceReq

并等待MISC处理

2)MISC对消息中的来源地址、企业代码进行鉴权,判断是否允许

该SP进行反向取消

3)接入鉴权成功后,再进行用户鉴权和订购关系鉴权,判断用户状

态是否正确以及是否存在订购关系

4)上面鉴权成功后,MISC向SP发送订购关系同步请求包

SyncOrderRelationReq

5)SP收到同步请求后,对订购请求做相应的取消处理,并返

回订购关系同步应答SyncOrderRelationResp

6)MISC收到应答后,判断应答值是否为0。如果应答值为0,则在

MISC中取消订购关系,并给SP返回成功的反向取消处理应答包

UnSubscribeServiceResp;如果应答值不为0,则不取消订购关系,同

时给SP返回不成功的反向取消应答包UnSubscribeServiceResp

7)SP如果收到MISC的错误响应,则说明取消失败,SP必须对这个失

败消息做相应处理,比如把已取消的订购关系恢复等等。

8)如果收到MISC的正确响应,则SP可以不做任何处理

11、反向取消接口消息定义

• 功能描述

此接口用于用户通过SP取消已订购的数据业务的时候,SP先通过该接口向MISC进行用户取消服务订购的请求。MISC进行取消服务订购成功后,SP才取消用户对应的业务订购关系。

消息名

消息类型

消息方向

UnSubscribeServiceReq

Request

SPàMISC

UnSubscribeServiceResp

Response

MISCàSP

• 接口内容描述

UnSubscribeServiceReq消息字段描述:

字段名

重要性

类型

说明

MsgType

必须

string

消息类型

TransactionID

必须

string

该消息编号(不能超过16位)

Version

必须

string

该接口消息的版本号,本次所有的接口消息

的版本都为“1.5.0”

Send_Address

必须

address_info_schema

发送方的地址

Dest_Address

必须

address_info_schema

接收方的地址

FeeUser_ID

必须

user_id_schema

计费用户标识

DestUser_ID

必须

user_id_schema

使用用户标识

当使用用户和计费用户为同一用户的时候,

FeeUser_ID和DestUser_ID的值相同。

Service_ID

必须

service_id_schema

服务标识

UnSubscribeServiceResp消息字段描述:

字段名

重要性

类型

说明

MsgType

必须

string

消息类型

TransactionID

必须

string

该消息编号

Version

必须

string

该接口消息的版本号,本次所有的接口消

息的版本都为“1.5.0”

hRet

必须

integer

返回值。具体定义请参见《MISC系

统短信SP接入指南-接口改造分册》

反向取消实例代码。

以下代码保留所有权。请不要转载。

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

<%@ page language="java" contentType="text/html; charset=gb2312" import="java.sql.*" %>

<%@ include file="../Cos/cos.jsp" %>

<%@ include file="fun.jsp" %>

<%@ page import="java.util.*"%>

<%@ page import="java.net.*"%>

<%@ page import="java.io.*"%>

<%@ page import="com.AAA.appk.*"%>

<%!

private String SendReq(String TransactionID,String sp_id,String dest_mobile,

String fee_mobile,String service,String spnumber,String send_DeviceID,StringBuffer bf){

String sReturn="success";

try

{

//http://dsmp.gd.monternet.com/dsmp/dsmp.wsdl

// ???p://211.136.253.116/dsmp/dsmp.wsdl

String sURL = "http://211.136.253.116/dsmp/dsmp.wsdl";

sURL=sURL.trim();

URL Url = new URL(sURL);

HttpURLConnection connection = (HttpURLConnection) Url.openConnection();//建立连接

connection.setRequestMethod("POST");

connection.setDoInput(true);

connection.setDoOutput(true);

connection.setUseCaches (false);

connection.setRequestProperty("Content-Type", "text/xml;charset=utf-8");

PrintWriter out = new PrintWriter(connection.getOutputStream());//准备输出数据。

//反向取消XML UnSubscribeServiceReq包数据写入STRINGBUFFER中。

StringBuffer xmlStr=new StringBuffer("<?xml version=\"1.0\" encoding=\"utf-8\" ?>");

xmlStr.append("<SOAP-ENV:Envelope");

xmlStr.append(" xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/"");

xmlStr.append(" xmlns:SOAP-ENC=\"http://schemas.xmlsoap.org/soap/encoding/"");

xmlStr.append(" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance"");

xmlStr.append(" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema"");

xmlStr.append("SOAP-ENV:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/"");

xmlStr.append(" xmlns=\"http://www.monternet.com/dsmp/schemas/">");

xmlStr.append("<SOAP-ENV:Header>");

xmlStr.append("<TransactionID xmlns=\"http://www.monternet.com/dsmp/schemas/" xsi:type=\"xsd:string\">0011"+dest_mobile+"</TransactionID>");

xmlStr.append("</SOAP-ENV:Header>");

xmlStr.append("<SOAP-ENV:Body>");

xmlStr.append("<UnSubscribeServiceReq xmlns=\"http://www.monternet.com/dsmp/schemas/">");

xmlStr.append("<Version>1.5.0</Version>");

xmlStr.append("<MsgType>UnSubscribeServiceReq</MsgType>");

xmlStr.append("<Send_Address>");

xmlStr.append("<DeviceType>400</DeviceType>");

xmlStr.append("<DeviceID>"+sp_id+"</DeviceID>");

xmlStr.append("</Send_Address>");

xmlStr.append("<Dest_Address>");

xmlStr.append("<DeviceType>0</DeviceType>");

xmlStr.append("<DeviceID>0011</DeviceID>");

xmlStr.append("</Dest_Address>");

xmlStr.append("<FeeUser_ID>");

xmlStr.append("<UserIDType>1</UserIDType>");

xmlStr.append("<MSISDN>"+fee_mobile+"</MSISDN>");

xmlStr.append("<PseudoCode />");

xmlStr.append("</FeeUser_ID>");

xmlStr.append("<DestUser_ID>");

xmlStr.append("<UserIDType>1</UserIDType>");

xmlStr.append("<MSISDN>"+dest_mobile+"</MSISDN>");

xmlStr.append("<PseudoCode />");

xmlStr.append("</DestUser_ID>");

xmlStr.append("<Service_ID>");

xmlStr.append("<ServiceIDType>1</ServiceIDType>");

xmlStr.append("<SPID>"+sp_id+"</SPID>");

xmlStr.append("<SPServiceID>"+service+"</SPServiceID>");

xmlStr.append("<AccessNo />");

xmlStr.append("<FeatureStr />");

xmlStr.append("</Service_ID>");

xmlStr.append("</UnSubscribeServiceReq>");

xmlStr.append("</SOAP-ENV:Body>");

xmlStr.append("</SOAP-ENV:Envelope>");

//向MISC输出数据

out.println(xmlStr.toString());

//把输出数据保存到BF里,

bf.append("start");

bf.append(xmlStr.toString());

bf.append("end");

out.close();

//读取连接返回的数据。UnSubscribeServiceResp?SyncOrderRelationReq?SyncOrderRelationResp?

BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));

String line;

while ((line = in.readLine()) != null) {

bf.append("rstart");

bf.append(line);

bf.append("rend");

}

in.close();

}

catch (MalformedURLException e)

{

sReturn="fail";

bf.append("wap Connect SP Error1:"+e.toString());

}

catch (IOException e)

{

sReturn="fail";

bf.append("wap Connect SP Error2:"+e.toString());

}

return sReturn;

}

%>

<%

String phoneno=getString(request.getParameter("phoneno"));

int app=getInt(request.getParameter("app"));

if(phoneno==null)phoneno="";

String ServiceID="";

if(app==2){

ServiceID="-OTYX";

}else if(app==1){

ServiceID="-OLBY";

}else if(app==3){

ServiceID="-OTYX";

}else if(app==6){

ServiceID="-OTYX";

}

String res=null;

String command=getString(request.getParameter("command"));

if(command!=null&&command.equals("send")&&phoneno!=null&&phoneno.length()>0){

String TransactionID=System.currentTimeMillis()+"";

String send_DeviceID="10666666";

String FeeUser_ID=phoneno;

String DestUser_ID=phoneno;

String SPServiceID=ServiceID;

String sp_code="456789";

TransactionID=sp_code+TransactionID.substring(sp_code.length()-(15-TransactionID.length()),TransactionID.length());

StringBuffer sb=new StringBuffer("");

String restr=SendReq(TransactionID,sp_code,DestUser_ID,FeeUser_ID,SPServiceID,send_DeviceID,send_DeviceID,sb);

res=restr;

//out.println("res:"+restr+" full:"+sb.toString());//可以读取,发送UnSubscribeServiceReq数据后,MISC返回的数据,

}

Collection apps=null;

if(phoneno.length()>0){

apps=BizUtil.list("select * from UserReg u,accuser a where u.id=a.id and a.phonenum='"+phoneno+"'");

}

%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<link href="style.css" _fcksavedurl=""style.css"" rel="stylesheet" type="text/css">

<title>Untitled Document</title>

</head>

<script language="JavaScript" type="text/JavaScript">

<!--

function send(id) { //v3.0

formI.command.value="send";

formI.app.value=id;

formI.submit();

}

//-->

</script>

<body>

<tabIe width="100%">

<tr>

<td ><table width="100%" >

<form name="form1" method="post" action="cancel.jsp">

<tr>

<td colspan="5" bgcolor="#FFFFCC">

<p>o?? <input type="text" name="phoneno" value="<%=phoneno%>">

<input type="submit" name="Submit2" value="2?">

<input name="command" type="hidden" id="command">

<input name="app" type="hidden" id="app">

</td>

</tr>

<%if(apps!=null&&apps.size()>0){%>

<tr>

<td height="22" bgcolor="#00CCCC" ><strong>

???3?/strong></td>

<td bgcolor="#00CCCC" ><strong>????strong></td>

<td bgcolor="#00CCCC" ><strong>?2?¨·</strong></td>

<td bgcolor="#00CCCC" ><strong>????¨·</strong></td>

<td bgcolor="#00CCCC" ><strong>??</strong></td>

</tr>

<%for (Iterator i=apps.iterator();i.hasNext();) {

HashMap r=(HashMap)i.next();

int proid=getInt(r.get("proid"));

String name="";

String code="";

int flag=getInt(r.get("flag"));

if(proid==1){

name="8¨©???;

code="-LBY";

}else if(proid==2){

name="???¡?

code="-jYX";

}else if(proid==3){

name="???¦?¢;

code="-lYX";

}else if(proid==6){

name="??¡?";

code="-llYX";

}

int prevnum=getInt(r.get("prevnum"));

String registertime=getString(r.get("regtime"));

String unregtime=getString(r.get("unregtime"));

%>

<tr>

<td >

<% = name %>

</td>

<td ><% = code %></td>

<td ><% = regtime; %></td>

<td ><% = unregtime %></td>

<td ><% =(flag=I?"<a href='#' onclick='send("+proid+");'>?¡§??</a>":"????") %></td>

</tr>

<%}%>

<%}%>

</form>

</tabIe></td>

</tr>

</tabIe>

</body>

</html>

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有