?? account.jsp
字號(hào):
<%@page contentType="text/html; charset=GBK" %>
<%@page import="com.onewaveinc.portalman.webpro.*"%>
<%@page import="com.onewaveinc.portalman.webpro.entity.*"%>
<%@page import="java.util.*"%>
<%!
public boolean checkTransactionID(HttpSession session,String newid){
String oldid = (String)session.getAttribute("sessionTransactionId");
if(newid==null){
return true;
}
if(oldid==null){
//用戶第一次消費(fèi),將TransactionId存session以便下次比較
session.setAttribute("sessionTransactionId",newid);
return true;
}
try{
long old_id = Long.parseLong(oldid);
long new_id = Long.parseLong(newid);
if(new_id > old_id){
session.removeAttribute("sessionTransactionId");
session.setAttribute("sessionTransactionId",newid);
return true;
}else{
return false;
}
}catch(Exception e){
return true;
}
}
public String checkSuite(OWAuthorizeResult result){
if("true".equalsIgnoreCase(result.getErrorCode())){
String message=result.getMessage();
if(message!=null && message.indexOf("8000,")!=-1){
return message.substring(5);
}
}
return null;
}
%>
<%
String resultstr = (String)session.getAttribute("sessionAuthorizeResult");
String vnetloginname = (String)session.getAttribute("sessionVnetLoginName");
session.removeAttribute("sessionAuthorizeResult");
if(vnetloginname == null | resultstr==null){
out.println("<p align='center'><font color='#FF0000'>非法請(qǐng)求,請(qǐng)退出重試!</font></p>");
return;
}
//用戶在ICP上的登陸名,將顯示在用戶詳單中,也可在此寫(xiě)注釋
String icpLoginName = "該服務(wù)僅供測(cè)試";
//ICP在Vnet上發(fā)表的產(chǎn)品描述,如沒(méi)有設(shè)空
String productInfo = "測(cè)試服務(wù)";
//ICP在Vnet上的服務(wù)代碼
String serviceCode = "45454";
//ICP產(chǎn)品價(jià)格
int price = 1000;
//包月訂購(gòu)開(kāi)始時(shí)間
Date beginTime = new Date() ;
Calendar cal = Calendar.getInstance() ;
cal.setTime(beginTime) ;
cal.add( Calendar.MONTH,1) ;
//包月訂購(gòu)結(jié)束時(shí)間
Date endTime = cal.getTime() ;
//將接收到的結(jié)果解析出來(lái)
OWAuthentication auth = WebProManager.getOWAuthentication();
OWAuthorizeResult result = auth.getOWAuthorizeResultObject(resultstr);
System.out.println(result);
//檢查用戶是否復(fù)制了授權(quán)字符串
if(!checkTransactionID(session,result.getTransactionID())){
out.println("發(fā)現(xiàn)錯(cuò)誤:授權(quán)結(jié)果字符串被用戶復(fù)制再使用");
return;
}
//檢查用戶是否為套餐用戶
String suitename = checkSuite(result);
if(suitename!=null){
//為套餐用戶,做相應(yīng)的處理。
System.out.println("該用戶已訂購(gòu)了套餐:"+ suitename);
}
//生成計(jì)費(fèi)Entity
OWAccountingRequest acrequest = new OWAccountingRequest();
//“1” 代表包月 “0” 非包月
acrequest.setAccountingType(1);
//客戶ICP登錄名, String 類(lèi)型, 最長(zhǎng)64位
acrequest.setIcpLoginName(icpLoginName);
//產(chǎn)品信息, String 類(lèi)型, 最長(zhǎng)64位
acrequest.setProductInfo(productInfo);
//用戶包月開(kāi)始時(shí)間
acrequest.setStartTime(beginTime);
//用戶包月結(jié)束時(shí)間
acrequest.setEndTime(endTime);
//全局唯一的交易號(hào)。
acrequest.setTransactionId(result.getTransactionID());
//Vnet 客戶統(tǒng)一登錄名
acrequest.setVnetLoginName(vnetloginname);
//生成服務(wù)訂購(gòu)entity
OWSubscriptionFromICP sub = new OWSubscriptionFromICP();
sub.setBeginTime(beginTime);
sub.setEndTime(endTime);
sub.setProductChargeplanDesc(productInfo);
sub.setProductKey(serviceCode);
sub.setProductPriceDesc((price/1000) + "元頻道包月不限次");
sub.setSubTime(new Date());
sub.setVnetLoginName(vnetloginname);
try{
//調(diào)用收費(fèi)接口
OWAccountingResult result2 = WebProManager.getOWAccounting().setAccountingInfo(acrequest);
if(!("true".equalsIgnoreCase(result2.getErrorCode()))){
out.println("扣費(fèi)時(shí)發(fā)現(xiàn)錯(cuò)誤:" + result2.getMessage());
return;
}
//調(diào)用服務(wù)訂購(gòu)接口
OWSubscriptionResult subresult = WebProManager.getOWAuthentication().OWAddSubscriptionFromICP(sub);
if(!("true".equalsIgnoreCase(subresult.getErrorCode()))){
out.println("調(diào)用服務(wù)訂購(gòu)接口時(shí)發(fā)現(xiàn)錯(cuò)誤:" + subresult.getMessage());
return;
}
}catch(Exception e){
e.printStackTrace();
out.println("扣費(fèi)時(shí)發(fā)現(xiàn)錯(cuò)誤:" + e.toString());
return;
}
%>
<html><head><title></title></head><body>
收費(fèi)記錄已保存,可以消費(fèi)包月服務(wù)了。<BR>
到互聯(lián)星空上可以查到本次消費(fèi)的詳單。<BR>
<A href='http://gd.chinavnet.com/selfservice/order/AddorderDetailExtSub.jsp?flag=true'>單擊此處回到Vnet訂購(gòu)頁(yè)面</A><BR>
<%
if(suitename!=null){
//為套餐用戶,做相應(yīng)的處理。
out.println("該用戶已訂購(gòu)了套餐:"+ suitename);
}
%>
</body></html>
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -