📄 account.jsp
字号:
<%@page contentType="text/html; charset=GBK" %>
<%@page import="com.onewaveinc.portalman.webpro.*"%>
<%@page import="com.onewaveinc.portalman.webpro.entity.*"%>
<%@page import="java.util.Date"%>
<%!
public boolean checkTransactionID(HttpSession session,String newid){
String oldid = (String)session.getAttribute("sessionTransactionId");
if(newid==null){
return true;
}
if(oldid==null){
//用户第一次消费,将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'>非法请求,请退出重试!</font></p>");
return;
}
//用户在ICP上的登陆名,将显示在用户详单中,也可在此写注释
String icpLoginName = "该服务仅供测试";
//ICP在Vnet上发表的产品描述,如没有设空
String productInfo = "测试服务";
//将接收到的结果解析出来
OWAuthentication auth = WebProManager.getOWAuthentication();
OWAuthorizeResult result = auth.getOWAuthorizeResultObject(resultstr);
System.out.println(result);
//检查用户是否复制了授权字符串
if(!checkTransactionID(session,result.getTransactionID())){
out.println("发现错误:授权结果字符串被用户复制再使用");
return;
}
//检查用户是否为套餐用户
String suitename = checkSuite(result);
if(suitename!=null){
//为套餐用户,做相应的处理。
System.out.println("该用户已订购了套餐:"+ suitename);
}
//生成计费Entity
OWAccountingRequest acrequest = new OWAccountingRequest();
//“1” 代表包月 “0” 非包月
acrequest.setAccountingType(0);
//客户ICP登录名, String 类型, 最长64位
acrequest.setIcpLoginName(icpLoginName);
//产品信息, String 类型, 最长64位
acrequest.setProductInfo(productInfo);
//产品计费开始使用时间
acrequest.setStartTime(new Date());
//产品计费结束使用时间
acrequest.setEndTime(new Date());
//全局唯一的交易号。
acrequest.setTransactionId(result.getTransactionID());
//Vnet 客户统一登录名
acrequest.setVnetLoginName(vnetloginname);
try{
//调用收费接口
OWAccountingResult result2 = WebProManager.getOWAccounting().setAccountingInfo(acrequest);
if(!("true".equalsIgnoreCase(result2.getErrorCode()))){
out.println("扣费时发现错误:" + result2.getMessage());
return;
}
}catch(Exception e){
e.printStackTrace();
out.println("扣费时发现错误:" + e.toString());
return;
}
%>
<html><head><title></title></head><body>
收费记录已保存,可以消费服务了。<BR>到互联星空上可以查到本次消费的详单。<BR>
<%
if(suitename!=null){
//为套餐用户,做相应的处理。
out.println("该用户已订购了套餐:"+ suitename);
}
%>
</body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -